forsooth!

By necessity, by proclivity, and by delight, we all quote.

Better HTML rendering for spacemail


Problem

The rendering of HTML emails is rather ugly, with white/brown backgrounds, totally breaking with the theme. It also is surprisingly slow, especially for long threads and emails containing a lot of quoting in HTML.

Solution

There’s a variable mm-text-html-renderer, which by default is set to shr. I prefer using the value w3m, which uses w3m and is much faster and prettier. It displays everything in the current theme, highlights links, and displays styles, e.g. strong/bold.

It also can be set up to honour a fill-column while rendering.

Setup

As already pointed out: w3m needs to be installed. Via your favourite packet manager (e.g. pacman, apt, yum, brew).

(setq mm-text-html-renderer 'w3m)
(setq w3m-fill-column 72)

For more information try SPC h d v and type mm-text-html-renderer and RET. There are other renderers available, which might work even better for you.

#+TITLE: Better HTML rendering for spacemail
#+DATE: <2017-12-12 Tue>
#+AUTHOR: @or
#+CATEGORY: tech
#+SUMMARY: Optimize HTML rendering for emails
#+SLUG: spacemail-better-html-rendering
#+TAGS: spacemacs, email, notmuch

** Problem
The rendering of HTML emails is rather ugly, with white/brown backgrounds,
totally breaking with the theme. It also is surprisingly slow, especially for
long threads and emails containing a lot of quoting in HTML.

** Solution
There's a variable =mm-text-html-renderer=, which by default is set to =shr=. I
prefer using the value =w3m=, which uses =w3m= and is much faster and
prettier. It displays everything in the current theme, highlights links, and
displays styles, e.g. strong/bold.

It also can be set up to honour a fill-column while rendering.

** Setup
As already pointed out: =w3m= needs to be installed. Via your favourite packet
manager (e.g. =pacman=, =apt=, =yum=, =brew=).

#+begin_src emacs-lisp
(setq mm-text-html-renderer 'w3m)
(setq w3m-fill-column 72)
#+end_src

For more information try =SPC h d v= and type =mm-text-html-renderer= and =RET=.
There are other renderers available, which might work even better for you.