shr-tag-pre-highlight

Homepage: https://github.com/xuchunyang/shr-tag-pre-highlight.el

Author: Chunyang Xu

Updated:

Summary

Syntax highlighting code block in HTML

Commentary

[![MELPA](https://melpa.org/packages/shr-tag-pre-highlight-badge.svg)](https://melpa.org/#/shr-tag-pre-highlight)

This package adds syntax highlighting support for code block in
HTML, rendered by `shr.el'.  The probably most famous user of
`shr.el' is EWW (the Emacs Web Wowser).

Example:

| Before               | After                                 |
| ------               | -----                                 |
| ![](eww-default.png) | ![](eww-with-syntax-highlighting.png) |

In above, I am using EWW to visit
https://emacs-china.org/t/eww/2949. And the color theme is
sanityinc-tomorrow-eighties, from Steve Purcell's
color-theme-sanityinc-tomorrow package

Installation:

This package is available from MELPA. If you use
[use-package](https://github.com/jwiegley/use-package) to manage the init
file, use something like the following:

(use-package shr-tag-pre-highlight
  :ensure t
  :after shr
  :config
  (add-to-list 'shr-external-rendering-functions
               '(pre . shr-tag-pre-highlight))
  (when (version< emacs-version "26")
    (with-eval-after-load 'eww
      (advice-add 'eww-display-html :around
                  'eww-display-html--override-shr-external-rendering-functions))))

Why is `eww-display-html' advised for Emacs version older than 26:

Unfortunately, EWW always overrides
`shr-external-rendering-functions' until
[this commit](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=45ebbc0301c8514a5f3215f45981c787cb26f915)
(2015-12), but Emacs 25.2 (latest release - 2017-4) doesn't include
this commit.  Thus if you want syntax highlighting in EWW, you have
to use devel version of Emacs (also know as emacs-26 at this
moment) or advice `eww-display-html' as above.

Dependencies