aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-markup.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-markup.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-markup.el26
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