From: Lars Magne Ingebrigtsen Date: Sat, 2 Oct 2010 15:36:17 +0000 (+0200) Subject: Switch to using shr.el for HTML rendering. X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=8d4b3338a773203ff8f9efab717225ccd0941b91;ds=sidebyside Switch to using shr.el for HTML rendering. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1d1c39fbf..e67522a47 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2010-10-02 Lars Magne Ingebrigtsen + + * shr.el (shr-insert-document): Autoload. + (shr-img): Be silent. + + * mm-decode.el (mm-text-html-renderer): Default to shr.el rendering, if + possible. + (mm-shr): New function. + 2010-10-02 Julien Danjou * gnus-gravatar.el (gnus-gravatar-insert): Adjust character where we diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 7562e57ca..e98d66683 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -105,7 +105,8 @@ ,disposition ,description ,cache ,id)) (defcustom mm-text-html-renderer - (cond ((executable-find "w3m") 'gnus-article-html) + (cond ((fboundp 'libxml-parse-html-region) 'mm-shr) + ((executable-find "w3m") 'gnus-article-html) ((executable-find "links") 'links) ((executable-find "lynx") 'lynx) ((locate-library "w3") 'w3) @@ -1674,6 +1675,14 @@ If RECURSIVE, search recursively." (and (eq (mm-body-7-or-8) '7bit) (not (mm-long-lines-p 76)))))) +(defun mm-shr (handle) + (let ((article-buffer (current-buffer))) + (unless handle + (setq handle (mm-dissect-buffer t))) + (shr-insert-document + (mm-with-part handle + (libxml-parse-html-region (point-min) (point-max)))))) + (provide 'mm-decode) ;;; mm-decode.el ends here diff --git a/lisp/shr.el b/lisp/shr.el index 2b26a79fa..f7f9205e0 100644 --- a/lisp/shr.el +++ b/lisp/shr.el @@ -66,9 +66,9 @@ fit these criteria." (push (shr-transform-dom sub) result))) (nreverse result))) +;;;###autoload (defun shr-insert-document (dom) - (setq dom (shr-transform-dom dom)) - (shr-descend dom)) + (shr-descend (shr-transform-dom dom))) (defun shr-descend (dom) (let ((function (intern (concat "shr-" (symbol-name (car dom))) obarray))) @@ -139,7 +139,8 @@ fit these criteria." (t (insert alt) (url-retrieve url 'shr-image-fetched - (list (current-buffer) start (point-marker))))) + (list (current-buffer) start (point-marker)) + t))) (insert " ")))) (defun shr-image-fetched (status buffer start end)