Math Rendering

Build-time LaTeX math to MathML

sukr renders LaTeX math expressions at build time to MathML. The output is browser-native — no client-side JavaScript required.

Inline Math

Use single dollar signs for inline math:

The quadratic formula is $x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$.

Renders as: The quadratic formula is x=b±b24ac2a.

Display Math

Use double dollar signs for display (block) math:

$$
E = mc^2
$$

Or fence with math language:

```math
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
```

Supported Features

pulldown-latex supports a broad subset of LaTeX math:

Feature Syntax Rendered
Greek letters \alpha, \beta, \gamma α,β,γ
Fractions \frac{a}{b} ab
Subscripts/superscripts x_i^2 xi2
Summations \sum_{i=1}^{n} i i=1ni
Integrals \int_a^b f(x)\,dx abf(x)dx
Square roots \sqrt{x^2 + y^2} x2+y2
Matrices \begin{pmatrix} a & b \\ c & d \end{pmatrix} (abcd)

Display Math Examples

The Gaussian integral:

ex2dx=π

Euler's identity:

eiπ+1=0

The Schrödinger equation:

itΨ=H^Ψ

How It Works

  1. Math delimiters ($...$, $$...$$) are detected during parsing
  2. pulldown-latex converts the expression to MathML
  3. Browsers render MathML natively — no fonts or JavaScript needed
  4. Output is pure HTML with embedded <math> elements

Error Handling

Invalid LaTeX math syntax triggers a compilation error and halts the build. This ensures that any rendered formula on the published site is syntactically valid.

If the parser encounters malformed LaTeX, sukr outputs the error message and the path to the console:

render error: math render error in `\invalid{command}`: ...