(defun btv/notmuch-browse-html () (interactive "") (let ((html-part (seq-find (lambda (elt) (pcase-let ((`(,begin ,end ,props) elt)) (let* ((part (plist-get props :notmuch-part)) (type (or (plist-get part :computed-type) (plist-get part :content-type)))) (and (equal type "text/html") begin)))) (object-intervals (current-buffer))))) (when html-part (save-excursion (goto-char (1+ (car html-part))) (notmuch-show-view-part))))) (add-hook 'notmuch-show-mode-hook (lambda () (define-key notmuch-show-stash-map "v" 'btv/notmuch-browse-html)))