@sciexpr/renderer
多格式渲染器。
安装
bash
npm install @sciexpr/renderer katexKaTeX HTML
typescript
import { KatexRenderer } from '@sciexpr/renderer'
const html = new KatexRenderer().render(ast).valueUnicode
typescript
import { UnicodeRenderer } from '@sciexpr/renderer'
new UnicodeRenderer().render(ast).value
// → "x² + y₂" (Unicode上下标) / "α+β" (希腊字母) / "H₂O" (化学式)MathML
typescript
import { MathMLRenderer } from '@sciexpr/renderer'
new MathMLRenderer().render(ast).value
// → '<math xmlns="..."><mrow>...</mrow></math>'AST → LaTeX
typescript
import { LatexReverseRenderer } from '@sciexpr/renderer'
new LatexReverseRenderer().render(ast).value
// → '\\frac{1}{2}'注册表
typescript
import { RendererRegistry, KatexRenderer, UnicodeRenderer } from '@sciexpr/renderer'
const registry = new RendererRegistry()
registry.register(new KatexRenderer())
registry.register(new UnicodeRenderer())
registry.render(ast, 'html') // KaTeX HTML
registry.render(ast, 'unicode') // Unicode 纯文本自定义渲染器
typescript
class SvgRenderer implements IRenderer {
id = 'svg'; outputFormat = 'svg' as const
render(ast) { return { value: '<svg>...</svg>', format: 'svg' } }
}
registry.register(new SvgRenderer())