UNPKG

myst-to-html

Version:
35 lines (33 loc) 959 B
import { unified } from 'unified'; import rehypeStringify from 'rehype-stringify'; import type { Handlers } from 'mdast-util-to-hast'; import type { GenericParent } from 'myst-common'; import { formatHtml } from './format.js'; import { mystToHast } from './schema.js'; import { State } from './state.js'; import { transform } from './transforms.js'; export function mystToHtml( tree: GenericParent, opts?: { formatHtml?: boolean; hast?: { clobberPrefix?: 'm-'; allowDangerousHtml?: boolean; handlers?: Handlers; }; stringifyHtml?: { closeSelfClosing?: boolean; allowDangerousHtml?: boolean; }; }, ) { const state = new State(); const pipe = unified() .use(transform, state) .use(mystToHast, opts?.hast) .use(formatHtml, opts?.formatHtml) .use(rehypeStringify, opts?.stringifyHtml); const result = pipe.runSync(tree); const html = pipe.stringify(result); return html.trim(); }