SYZOJ's renderer for markdown, math and highlight.
let { markdown, highlight } = require('syzoj-renderer');
console.log(await markdown(text));
console.log(await highlight(code, language));text is the Markdown text to be rendered.
cache is null or a object with two functions to manipulate a Key-Value store (key is hashed before passing to cache):
async get(string key)async set(string key, string value)
filterFunction(html) is a function to filter rendered HTML. It can be used to prevent XSS attack. Should return filtered HTML.
options is a object, may contain:
markdownIt: Overrides default options innew MarkdownIt(options). (See markdown-it)markdownItMath: Overrides default options inmarkdownIt.use(MathdownItMath, options). (See markdown-it-math-loose)markdownItMergeCells: Set to false to disable markdown-it-merge-cells in markdown tables, which will merge adjacent cells with same content in tableshighlight: Same ashighlight'soptionsparameter, used when highlighting code in markdown.
Return rendered HTML. Won't throw.
Highlight some code with syntect.
code is the code to be highlighted. language is code's language.
cache is same as the parameter in markdown().
options is a object, may contain:
highlighter: Pass a functionasync function (code, language)to replace the defualt highlighter.wrapper: An array[before, after]. Highlighted code's HTML will be wrapped bybeforeandafter. Defaults to['<pre><code>', '</code></pre>'].
Return highlighted code in HTML. Won't throw.
- Markdown backend is markdown-it.
- GFM is supported.
- By default,
linkifyandhtmlare enabled,typographerandbreaksare disabled.
- By default, code highlight's backend is syntect.
- A theme CSS is required to display highlighted code properly. See syntect-js's Usage. The default prefix is
hl-.
- A theme CSS is required to display highlighted code properly. See syntect-js's Usage. The default prefix is
- Math backend is MathJax 3.
- Maths with spaces within dollar sign like
$ a+b $will work. - Complex maths like
$ \sum\limits_{i=0}^na_i $won't be broken by Markdown. - To ensure each document's math rendering state isolated,
\requireis disabled. - Maths that failed to render would result in displaying error message.
- Maths with spaces within dollar sign like