diff options
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-markup.el')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-markup.el | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-markup.el b/emacs/.emacs.d/lisp/my/my-markup.el index 2b1c7f6..2901f13 100644 --- a/emacs/.emacs.d/lisp/my/my-markup.el +++ b/emacs/.emacs.d/lisp/my/my-markup.el @@ -64,5 +64,31 @@ (when-let ((text (dom-text (my-xml-get-first-child node tag)))) (replace-regexp-in-string "\n" " " (string-trim text)))) +(defun my-html-render (arg) + (interactive "P") + (if arg + (browse-url-of-buffer) + (let ((show-trailing-whitespace nil)) + (call-interactively 'shr-render-buffer) + (view-mode)))) + +(defvar-keymap htmlv-mode-map + "." #'htmlv-reopen-as-html + ) + +(define-derived-mode htmlv-mode special-mode "HTML View" + "Major mode for viewing HTML documents." + (let ((inhibit-read-only t)) + (shr-render-region (point-min) (point-max))) + (set-buffer-modified-p nil) + (goto-char (point-min))) + +(defun htmlv-reopen-as-html () + (interactive) + (with-current-buffer + (cl-letf (((symbol-function 'y-or-n-p) #'always)) + (find-file-literally buffer-file-name)) + (mhtml-mode))) + (provide 'my-markup) ;;; my-markup.el ends here |