I appreciate the signature handling. But perhaps you used it on this message and it ate part of this line? > (insert " > ;; remove Markdown
markings -- Brian Sniffen > On Feb 24, 2019, at 8:52 PM, Antoine Beaupré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 > (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 Markdownmarkings > (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 athat'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@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch