mu4e: Fix indentation
This commit is contained in:
146
mu4e/org-mu4e.el
146
mu4e/org-mu4e.el
@ -58,21 +58,21 @@
|
||||
(defun org~mu4e-mime-file (ext path id)
|
||||
"Create a file of type EXT at PATH with ID for an attachment."
|
||||
(format (concat "<#part type=\"%s\" filename=\"%s\" "
|
||||
"disposition=inline id=\"<%s>\">\n<#/part>\n")
|
||||
ext path id))
|
||||
"disposition=inline id=\"<%s>\">\n<#/part>\n")
|
||||
ext path id))
|
||||
|
||||
(defun org~mu4e-mime-multipart (plain html &optional images)
|
||||
"Create a multipart/alternative with PLAIN and HTML alternatives.
|
||||
If the html portion of the message includes IMAGES, wrap the html
|
||||
and images in a multipart/related part."
|
||||
(concat "<#multipart type=alternative><#part type=text/plain>"
|
||||
plain
|
||||
(when images "<#multipart type=related>")
|
||||
"<#part type=text/html>"
|
||||
html
|
||||
images
|
||||
(when images "<#/multipart>\n")
|
||||
"<#/multipart>\n"))
|
||||
plain
|
||||
(when images "<#multipart type=related>")
|
||||
"<#part type=text/html>"
|
||||
html
|
||||
images
|
||||
(when images "<#/multipart>\n")
|
||||
"<#/multipart>\n"))
|
||||
|
||||
(defun org~mu4e-mime-replace-images (str current-file)
|
||||
"Replace images in html files STR in CURRENT-FILE with cid links."
|
||||
@ -90,7 +90,7 @@ and images in a multipart/related part."
|
||||
(ext (file-name-extension path))
|
||||
(id (replace-regexp-in-string "[\/\\\\]" "_" path)))
|
||||
(cl-pushnew (org~mu4e-mime-file
|
||||
(concat "image/" ext) path id)
|
||||
(concat "image/" ext) path id)
|
||||
html-images
|
||||
:test 'equal)
|
||||
id)))
|
||||
@ -102,36 +102,36 @@ and images in a multipart/related part."
|
||||
(unless (fboundp 'org-export-string-as)
|
||||
(mu4e-error "Required function 'org-export-string-as not found"))
|
||||
(let* ((begin
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(search-forward mail-header-separator)))
|
||||
(end (point-max))
|
||||
(raw-body (buffer-substring begin end))
|
||||
(tmp-file (make-temp-name (expand-file-name "mail"
|
||||
temporary-file-directory)))
|
||||
;; because we probably don't want to skip part of our mail
|
||||
(org-export-skip-text-before-1st-heading nil)
|
||||
;; because we probably don't want to export a huge style file
|
||||
(org-export-htmlize-output-type 'inline-css)
|
||||
;; makes the replies with ">"s look nicer
|
||||
(org-export-preserve-breaks t)
|
||||
;; dvipng for inline latex because MathJax doesn't work in mail
|
||||
(org-export-with-LaTeX-fragments
|
||||
(if (executable-find "dvipng") 'dvipng
|
||||
(mu4e-message "Cannot find dvipng, ignore inline LaTeX") nil))
|
||||
;; to hold attachments for inline html images
|
||||
(html-and-images
|
||||
(org~mu4e-mime-replace-images
|
||||
(org-export-string-as raw-body 'html t)
|
||||
tmp-file))
|
||||
(html-images (cdr html-and-images))
|
||||
(html (car html-and-images)))
|
||||
(delete-region begin end)
|
||||
(save-excursion
|
||||
(goto-char begin)
|
||||
(newline)
|
||||
(insert (org~mu4e-mime-multipart
|
||||
raw-body html (mapconcat 'identity html-images "\n"))))))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(search-forward mail-header-separator)))
|
||||
(end (point-max))
|
||||
(raw-body (buffer-substring begin end))
|
||||
(tmp-file (make-temp-name (expand-file-name "mail"
|
||||
temporary-file-directory)))
|
||||
;; because we probably don't want to skip part of our mail
|
||||
(org-export-skip-text-before-1st-heading nil)
|
||||
;; because we probably don't want to export a huge style file
|
||||
(org-export-htmlize-output-type 'inline-css)
|
||||
;; makes the replies with ">"s look nicer
|
||||
(org-export-preserve-breaks t)
|
||||
;; dvipng for inline latex because MathJax doesn't work in mail
|
||||
(org-export-with-LaTeX-fragments
|
||||
(if (executable-find "dvipng") 'dvipng
|
||||
(mu4e-message "Cannot find dvipng, ignore inline LaTeX") nil))
|
||||
;; to hold attachments for inline html images
|
||||
(html-and-images
|
||||
(org~mu4e-mime-replace-images
|
||||
(org-export-string-as raw-body 'html t)
|
||||
tmp-file))
|
||||
(html-images (cdr html-and-images))
|
||||
(html (car html-and-images)))
|
||||
(delete-region begin end)
|
||||
(save-excursion
|
||||
(goto-char begin)
|
||||
(newline)
|
||||
(insert (org~mu4e-mime-multipart
|
||||
raw-body html (mapconcat 'identity html-images "\n"))))))
|
||||
|
||||
;; next some functions to make the org/mu4e-compose-mode switch as smooth as
|
||||
;; possible.
|
||||
@ -140,10 +140,10 @@ and images in a multipart/related part."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let* ((eoh (when (search-forward mail-header-separator)
|
||||
(match-end 0)))
|
||||
(olay (make-overlay (point-min) eoh)))
|
||||
(match-end 0)))
|
||||
(olay (make-overlay (point-min) eoh)))
|
||||
(when olay
|
||||
(overlay-put olay 'face 'font-lock-comment-face)))))
|
||||
(overlay-put olay 'face 'font-lock-comment-face)))))
|
||||
|
||||
(defun org~mu4e-mime-undecorate-headers ()
|
||||
"Don't make the headers visually distinctive.
|
||||
@ -151,7 +151,7 @@ and images in a multipart/related part."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let* ((eoh (when (search-forward mail-header-separator)
|
||||
(match-end 0))))
|
||||
(match-end 0))))
|
||||
(remove-overlays (point-min) eoh))))
|
||||
|
||||
(defvar org-mu4e-convert-to-html nil
|
||||
@ -171,34 +171,34 @@ rich-text version of what is assumed to be an org mode body."
|
||||
or org-mode (when in the body)."
|
||||
(interactive)
|
||||
(let* ((sepapoint
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(search-forward-regexp mail-header-separator nil t))))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(search-forward-regexp mail-header-separator nil t))))
|
||||
;; only do stuff when the sepapoint exist; note that after sending the
|
||||
;; message, this function maybe called on a message with the sepapoint
|
||||
;; stripped. This is why we don't use `message-point-in-header'.
|
||||
(when sepapoint
|
||||
(cond
|
||||
;; we're in the body, but in mu4e-compose-mode?
|
||||
;; if so, switch to org-mode
|
||||
((and (> (point) sepapoint) (eq major-mode 'mu4e-compose-mode))
|
||||
(org-mode)
|
||||
(add-hook 'before-save-hook
|
||||
(lambda ()
|
||||
(mu4e-error "Switch to mu4e-compose-mode (M-m) before saving"))
|
||||
nil t)
|
||||
(org~mu4e-mime-decorate-headers)
|
||||
(local-set-key (kbd "M-m")
|
||||
(lambda (keyseq)
|
||||
(interactive "kEnter mu4e-compose-mode key sequence: ")
|
||||
(let ((func (lookup-key mu4e-compose-mode-map keyseq)))
|
||||
(if func (funcall func) (insert keyseq))))))
|
||||
;; we're in the headers, but in org-mode?
|
||||
;; if so, switch to mu4e-compose-mode
|
||||
((and (<= (point) sepapoint) (eq major-mode 'org-mode))
|
||||
(org~mu4e-mime-undecorate-headers)
|
||||
(mu4e-compose-mode)
|
||||
(add-hook 'message-send-hook 'org~mu4e-mime-convert-to-html-maybe nil t)))
|
||||
;; we're in the body, but in mu4e-compose-mode?
|
||||
;; if so, switch to org-mode
|
||||
((and (> (point) sepapoint) (eq major-mode 'mu4e-compose-mode))
|
||||
(org-mode)
|
||||
(add-hook 'before-save-hook
|
||||
(lambda ()
|
||||
(mu4e-error "Switch to mu4e-compose-mode (M-m) before saving"))
|
||||
nil t)
|
||||
(org~mu4e-mime-decorate-headers)
|
||||
(local-set-key (kbd "M-m")
|
||||
(lambda (keyseq)
|
||||
(interactive "kEnter mu4e-compose-mode key sequence: ")
|
||||
(let ((func (lookup-key mu4e-compose-mode-map keyseq)))
|
||||
(if func (funcall func) (insert keyseq))))))
|
||||
;; we're in the headers, but in org-mode?
|
||||
;; if so, switch to mu4e-compose-mode
|
||||
((and (<= (point) sepapoint) (eq major-mode 'org-mode))
|
||||
(org~mu4e-mime-undecorate-headers)
|
||||
(mu4e-compose-mode)
|
||||
(add-hook 'message-send-hook 'org~mu4e-mime-convert-to-html-maybe nil t)))
|
||||
;; and add the hook
|
||||
(add-hook 'post-command-hook 'org~mu4e-mime-switch-headers-or-body t t))))
|
||||
|
||||
@ -212,12 +212,12 @@ Edit the message body using org mode. DEPRECATED."
|
||||
;; post-command-hook is set; hackish...but a buffer-local variable does not
|
||||
;; seem to survive buffer switching
|
||||
(if (not (member 'org~mu4e-mime-switch-headers-or-body post-command-hook))
|
||||
(progn
|
||||
(org~mu4e-mime-switch-headers-or-body)
|
||||
(mu4e-message
|
||||
(concat
|
||||
"org-mu4e-compose-org-mode enabled; "
|
||||
"press M-m before issuing message-mode commands")))
|
||||
(progn
|
||||
(org~mu4e-mime-switch-headers-or-body)
|
||||
(mu4e-message
|
||||
(concat
|
||||
"org-mu4e-compose-org-mode enabled; "
|
||||
"press M-m before issuing message-mode commands")))
|
||||
(progn ;; otherwise, remove crap
|
||||
(remove-hook 'post-command-hook 'org~mu4e-mime-switch-headers-or-body t)
|
||||
(org~mu4e-mime-undecorate-headers) ;; shut off org-mode stuff
|
||||
|
||||
Reference in New Issue
Block a user