[RFC] writing HTML email with notmuch
Brian Sniffen
bts at evenmere.org
Mon Feb 25 10:56:31 PST 2019
I appreciate the signature handling. But perhaps you used it on this message and it ate part of this line?
> (insert "
> ;; remove Markdown <pre> markings
--
Brian Sniffen
> On Feb 24, 2019, at 8:52 PM, Antoine Beaupré <anarcat at orangeseeds.org> wrote:
>
> Hi,
>
> TL;DR: magic recipe to include an HTML version when writing plaintext.
>
> I know, I know, HTML email is "evil"[1]. I mostly never ever use it, in
> fact, I don't remember the last time I consciously sent HTML. Maybe I
> did so back when I was using Netscape Communicator[2][3], but whatever.
>
> The reason I thought about this again is I have been doing more
> photography these days and, well, being allergic to social media, I have
> very few ways of sharing those photographs with families and friends. I
> have tried creating a gallery website with an RSS feed but I'm sure no
> one here will be surprised that the uptake is minimal, if
> non-existent. People expect to have stuff *pushed* to them, like
> Instagram, Facebook, Twitter or Spam does.
>
> So I thought[4] of Email again: the original social network! I figured I
> would just make a mailing list, and write to my people once in a while
> to let them new about my new pictures. And while writing the first
> email, I realized it was pretty silly to not include images, or at least
> *links* to images in the email.
>
> I'm sure you can see where this is going. A link in the email: who's
> going to click that. Who clicks now anyways, with all the tapping[5]
> going on. So the answer comes naturally: just write frigging HTML
> email. Don't be a rms^Wreligious zealot and do the right thing, what
> works basically everywhere[6] (even notmuch!).
>
> So I started Thunderbird and thought "what the heck am I doing! there
> must be a better way!" After searching for "message mode emacs html
> email ktxbye", I found some people already thought about this problem
> and came up with somewhat elegant solutions[7]. I built on that by
> trying to come up with a pure elisp solution, which goes a little like
> this:
>
> (defun anarcat/notmuch-html-convert ()
> """create an HTML part from a Markdown body
>
> This will not work if there are *any* attachments of any form, those should be added after."""
> (interactive)
> (save-excursion
> ;; wrap signature in a <pre>
> (message-goto-signature)
> (setq signature-position (point))
> (forward-line -1)
> ;; GFM markers for pre, used because easier to undo than the
> ;; "prefix by 4 characters" standard
> (insert "```")
> (end-of-buffer)
> (insert "```")
> ;; set region to top of body then end of buffer
> (end-of-buffer)
> (message-goto-body)
> (narrow-to-region (point) (mark))
> ;; run markdown on region
> (setq output-buffer-name "*notmuch-markdown-output*")
> (markdown output-buffer-name)
> (widen)
> (save-excursion
> (set-buffer output-buffer-name)
> (markdown-add-xhtml-header-and-footer ""))
> (insert "
> \n") (insert-buffer output-buffer-name) (insert "
> ;; remove Markdown <pre> markings
> (goto-char signature-position)
> (while (re-search-forward "^```" nil t)
> (replace-match ""))))
>
> For those who can't read elisp for breakfast, this does the following:
>
> 1. parse the current email body as markdown, in a separate buffer
> 2. make the current email multipart/alternative
> 3. add an HTML part
> 4. inject the HTML version in the HTML part
>
> There's some nasty business with formatting the signature correctly by
> wrapping it in a <pre> that's going on there - I took that from
> Thunderbird as well.
>
> (For those who *do* read elisp for breakfast, improvements and comments
> on the coding style are very welcome.)
>
> The idea is that you write your email normally, but in markdown. When
> you're done writing that email, you launch the above function (carefully
> bound to "M-x anarcat/notmuch-html-convert" here) which takes that email
> and adds an equivalent HTML part to it. You can then even tweak that
> part to screw around with the raw HTML if you feel depressed or
> nostalgic.
>
> What do people think? Am I insane? Could this work? Does this belong in
> notmuch? Or maybe in the tips section? Should I seek therapy? Do you
> hate markdown? Expand on the relationship between your parents and text
> editors.
>
> Thanks for any feedback,
>
> A.
>
> PS: the above, naturally, could be adapted to parse the body as RST,
> asciidoc, texinfo, latex or whatever insanity you think would be more
> appropriate, I don't care. The idea is the same.
>
> PPS: I remember reading about someone wanting to declare a text/markdown
> mimetype for email, and remembering it was all backwards and weird and I
> can't find the reference anymore. If some lazyweb magic person could
> forward the link to me I would be grateful.
>
> [1]: one of so many: https://www.georgedillon.com/web/html_email_is_evil_still.shtml
> [2]: https://en.wikipedia.org/wiki/Netscape_Communicator
> [3]: yes my age is showing
> [4]: to be fair, this article encouraged me quite a bit:
> https://blog.chaddickerson.com/2019/01/09/replacing-facebook/
> [5]: not the bass guitar one, unfortunately
> [6]: https://en.wikipedia.org/wiki/HTML_email#Adoption
> [7]: https://trey-jackson.blogspot.com/2008/01/emacs-tip-8-markdown.html
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20190225/3eadcafe/attachment.html>
More information about the notmuch
mailing list