mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
Add some very rudimentary support for handling html parts
If there is an html mime-part in the message and it's the first part, it gets inlined using `mm-display-part' to convert it to plain text. The HTML content is still available as a non-text part as well.
This commit is contained in:
parent
12c91e8050
commit
ed16edc94d
1 changed files with 32 additions and 9 deletions
41
notmuch.el
41
notmuch.el
|
@ -564,29 +564,52 @@ which this thread was originally shown."
|
||||||
(goto-char end))))))
|
(goto-char end))))))
|
||||||
(forward-line))))
|
(forward-line))))
|
||||||
|
|
||||||
(defun notmuch-show-markup-part (beg end depth)
|
(defun notmuch-show-markup-part (beg end depth mime-message)
|
||||||
(if (re-search-forward notmuch-show-part-begin-regexp nil t)
|
(if (re-search-forward notmuch-show-part-begin-regexp nil t)
|
||||||
(progn
|
(progn
|
||||||
|
(if (eq mime-message nil)
|
||||||
|
(let ((filename (notmuch-show-get-filename)))
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert-file-contents filename nil nil nil t)
|
||||||
|
(setq mime-message (mm-dissect-buffer)))))
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(let ((beg (point-marker)))
|
(let ((part-beg (point-marker)))
|
||||||
(re-search-forward notmuch-show-part-end-regexp)
|
(re-search-forward notmuch-show-part-end-regexp)
|
||||||
(let ((end (copy-marker (match-beginning 0))))
|
|
||||||
(goto-char end)
|
(let ((part-end (copy-marker (match-beginning 0))))
|
||||||
|
(goto-char part-end)
|
||||||
(if (not (bolp))
|
(if (not (bolp))
|
||||||
(insert "\n"))
|
(insert "\n"))
|
||||||
(indent-rigidly beg end depth)
|
(indent-rigidly part-beg part-end depth)
|
||||||
(notmuch-show-markup-citations-region beg end depth)
|
(save-excursion
|
||||||
|
(goto-char part-beg)
|
||||||
|
(forward-line -1)
|
||||||
|
(beginning-of-line)
|
||||||
|
(let ((handle-type (mm-handle-type mime-message))
|
||||||
|
mime-type)
|
||||||
|
(if (sequencep (car handle-type))
|
||||||
|
(setq mime-type (car handle-type))
|
||||||
|
(setq mime-type (car (car (cdr handle-type))))
|
||||||
|
)
|
||||||
|
(if (equal mime-type "text/html")
|
||||||
|
(mm-display-part mime-message))))
|
||||||
|
|
||||||
|
(notmuch-show-markup-citations-region part-beg part-end depth)
|
||||||
; Advance to the next part (if any) (so the outer loop can
|
; Advance to the next part (if any) (so the outer loop can
|
||||||
; determine whether we've left the current message.
|
; determine whether we've left the current message.
|
||||||
(if (re-search-forward notmuch-show-part-begin-regexp nil t)
|
(if (re-search-forward notmuch-show-part-begin-regexp nil t)
|
||||||
(beginning-of-line)))))
|
(beginning-of-line)))))
|
||||||
(goto-char end)))
|
(goto-char end))
|
||||||
|
mime-message)
|
||||||
|
|
||||||
(defun notmuch-show-markup-parts-region (beg end depth)
|
(defun notmuch-show-markup-parts-region (beg end depth)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char beg)
|
(goto-char beg)
|
||||||
(while (< (point) end)
|
(let (mime-message)
|
||||||
(notmuch-show-markup-part beg end depth))))
|
(while (< (point) end)
|
||||||
|
(setq mime-message
|
||||||
|
(notmuch-show-markup-part
|
||||||
|
beg end depth mime-message))))))
|
||||||
|
|
||||||
(defun notmuch-show-markup-body (depth btn)
|
(defun notmuch-show-markup-body (depth btn)
|
||||||
(re-search-forward notmuch-show-body-begin-regexp)
|
(re-search-forward notmuch-show-body-begin-regexp)
|
||||||
|
|
Loading…
Reference in a new issue