myst-to-html
Version:
Export from MyST mdast to HTML
23 lines (22 loc) • 1.06 kB
JavaScript
import { toHTML } from './utils.js';
export const renderMath = (math, block, target) => {
const { id, number } = target !== null && target !== void 0 ? target : {};
const [html] = toHTML([
block ? 'div' : 'span',
{
class: target ? ['math', 'numbered'] : 'math',
id,
number,
children: block ? `\\[\n${math}\n\\]` : `\\(${math}\\)`,
},
], { inline: true });
return block ? `${html}\n` : html;
};
export function addMathRenderers(md) {
const { renderer } = md;
renderer.rules.math_inline = (tokens, idx) => renderMath(tokens[idx].content, false);
// Note: this will actually create invalid HTML
renderer.rules.math_inline_double = (tokens, idx) => renderMath(tokens[idx].content, true);
renderer.rules.math_block = (tokens, idx) => renderMath(tokens[idx].content, true);
renderer.rules.math_block_label = (tokens, idx) => { var _a; return renderMath(tokens[idx].content, true, (_a = tokens[idx].meta) === null || _a === void 0 ? void 0 : _a.target); };
}