Latest gnus provides a new HTML renderer entirely in lisp. It requires some minor but ugly scaffolding to allow use with notmuch. --- This is pretty horrible, but works in the cases that I tested. It would be useful if a few other people could test. Note that `cid:' images included with a text/html part are not inserted in the correct place, but that also appears to be the case for gnus. This should be tagged `notmuch::wip' in the new world order! emacs/notmuch-show.el | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 63b01e5..f52f233 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -320,6 +320,13 @@ message at DEPTH in the current thread." ;; ange-ftp, which is reasonable to use here. (mm-write-region (point-min) (point-max) file nil nil nil 'no-conversion t))))) +;; Nonsense required to have the new gnus `shr' HTML display code +;; work. +(defvar gnus-summary-buffer) +(defvar gnus-inhibit-images) +(if (not (fboundp 'gnus-blocked-images)) + (defun gnus-blocked-images () nil)) + (defun notmuch-show-mm-display-part-inline (msg part nth content-type) "Use the mm-decode/mm-view functions to display a part in the current buffer, if possible." @@ -331,7 +338,12 @@ current buffer, if possible." (let ((content (notmuch-show-get-bodypart-content msg part nth))) (insert content) (set-buffer display-buffer) - (mm-display-part handle) + + ;; Nonsense required to have the new gnus `shr' HTML + ;; display code work. + (let ((gnus-inhibit-images nil)) + (makunbound 'gnus-summary-buffer) ; Blech. + (mm-display-part handle)) t) nil))))) -- 1.7.7.3