A simple pandoc filter that uses KaTeX to render math equations at build time. It makes possible to display equations without any JavaScript execution in the browser.
$ cat math.md
# A title and whatnot.
This is inline $\log(\frac{1}{2})$ and this is display:
$$
\int_{-\infty}^{+\infty}\LambdaLamda(x)dx
$$
$ pandoc -s math.md --filter pandoc-static-katex --to html5 --css https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.8.3/katex.min.css -o math.html
Note that the --katex
option of pandoc
option doesn't add the styles since
pandoc
doesn't see any math element after the filter pass.
The script can be installed by pip:
python3 -m pip install pandoc_static_katex
The filter runs in Python 3.7+.
When the filter is run, KaTeX needs to be installed with nodejs; the command
npx katex
must work on the current path. The filter has been developed with version 0.10.2 of KaTeX.
Additionally, pandoc
is needed for most usages.
It requires flit to be installed from source in development mode.
flit install --symlink
If pandoc
, katex
and the filter have all been installed correctly, the
command:
python3 run_test.py
should produce rendered results in the test_results
folder.