This project provides an Asciidoctor
extension for converting block and inline
STEM
in TeX notation (latexmath) to HTML using
KaTeX library right during document
conversion (instead of in browser on client-side).
Requirements
Installation
Install asciidoctor-katex from npmjs.com:
npm install --save asciidoctor-katex
Usage
const asciidoctor = require('@asciidoctor/core')()
const asciidoctorKatex = require('asciidoctor-katex')
const options = {
katexOptions: {
macros: {
"\\RR": "\\mathbb{R}",
},
},
}
asciidoctorKatex.register(asciidoctor.Extensions, options)
const content = `
:stem: latexmath
Do some math: stem:[E = mc^2]
`
const html = asciidoctor.convert(content)
console.log(html)
You may also register the extension into a custom extensions registry:
const registry = asciidoctor.Extensions.create()
asciidoctorKatex.register(registry, options)
katex
The katex object to use for rendering. Defaults to require('katex')
.
requireStemAttr
Whether to require stem
attribute to be defined (Asciidoctor’s
standard behaviour). Set to false
to process latexmath even when
stem
attribute is not defined. Default is true
.
Note that the default stem type hard-coded by Asciidoctor is asciimath
(not latexmath
), so [stem]
block and stem:[...]
macro will not be
rendered anyway (only [latexmath]
block and latexmath:[...]
macro).
katexOptions
The default options for katex.render()
. Defaults to empty object.
License
This project is licensed under MIT
License. For the full text of the
license, see the LICENSE file.