/hexo-renderer-pandoc

A pandoc-markdown-flavor renderer for hexo.

Primary LanguageJavaScriptMIT LicenseMIT

hexo-renderer-pandoc

npm npm

Yet another markdown renderer plugin for Hexo. It can converts Pandoc's markdown to HTML. If you want, it can also be a renderer for textile, reStructedText, etc.

Installation

  1. Firstly, make sure you have installed pandoc.
  2. Secondly, cd into your hexo root folder and execute the following command:
$ npm install hexo-renderer-pandoc --save

This will install hexo-renderer-pandoc.

Customization

hexo-renderer-pandoc can not only render markdown, but also supports textile, reStructedText and many other formats, due to the strong capability of pandoc.

By default, it only renders Pandoc-markdown. But if you want to make it be a textile renderer instead of a markdown renderer, simply modify the args from the index.js as:

var args = [ '-f', 'textile', '-t', 'html', '--mathjax', '--smart'];

and change the register line as:

hexo.extend.renderer.register('textile', 'html', pandoc);

You can pass additional arguments to pandoc through _config.yml. The default configuration is:

pandoc:
  filters:
  extra:
  meta:
  mathEngine:
  • filters is a list of any pandoc filter installed on your path.
  • extra is a list of mappings:
extra:
  - key: value

passed to pandoc as --key value.

  • meta is a list of anything you wish to be sent to pandoc as meta:
meta:
  - key: value1
  - value2

would be passed as -M key=value1 -M value2.

pandoc-citeproc for example can be configured as:

pandoc:
  filters:
    - pandoc-citeproc
  extra:
    bibliography: "/path/to/bibfile.bib"
  meta:
    - suppress-bibliography
  • mathEngine is an option for choosing math engine. By default, mathEngine is mathjax.

For example, if you want to use KaTeX, you can pass katex to the mathEngine option:

pandoc:
  mathEngine: katex

Then, the args of pandoc is this: [..., "--katex", ...] .

Credits

I'd like to thank John MacFarlane for creating Pandoc and John Gruber for developing Markdown. Also, this work is based on @pvorb (Paul Vorbach) 's node-pdc wrapper for pandoc.