Syntax Highlighting

In order to enable syntax highlighting, you must use a client-side JavaScript highlighter, such as highlight.js by adding it to page.headHtml of YAML configuration or Markdown frontmatter. Emanote already provides a snippet, so you may directly include the following in your index.yaml (assuming you are enabling it on all routes):

page:
  headHtml: |
    <snippet var="js.highlightjs" />
Warning

Bear in mind that when using highlight.js you must manually add language support. The above snippet includes Haskell and Nix by default; otherwise, it is normally added as:

page:
  headHtml: |
    <snippet var="js.highlightjs" />
    <with var="js">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/${value:highlightjs-ver}/languages/haskell.min.js"></script>
    </with>

(The highlightjs-ver variable comes from the default index.yaml.)

Example (highlight.js)

Python

def fib(n):
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()
fib(1000)

Haskell

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)

Prism

A predefined snippet also exists for another syntax highlighter called Prism. To use it add the following to page.headHtml of YAML configuration or Markdown frontmatter.

page:
  headHtml: |
    <snippet var="js.prism" />
Prism does not cooperate well with Emanote’s live preview mode.
Links to this page