# Rendering maths without JavaScript Established 2026-08-02 by searching, then querying the Go module proxy directly. Re-check before relying on the library situation; the browser facts are stable. ## The shape of the problem KaTeX and MathJax are JavaScript. A site that refuses client-side script cannot use them at runtime, so the only no-JS route is **TeX → MathML at render time**. MathML is native browser markup: Firefox and Safari have supported it for years, Chromium since 2023 (MathML Core). No script, no font loading, no layout pass of our own. ## Go libraries, as of August 2026 | Module | State | Verdict | |---|---|---| | `git.sr.ht/~mekyt/latex2mathml` | Pure Go, a port of the Python library of the same name. **No tagged release** — latest resolves to `v0.0.0-20231214134936-808832af73fc`, a bare commit from December 2023. sourcehut returned a 502 while this was checked | The only real candidate, and the weakest dependency this project would have taken | | `codeberg.org/go-latex/latex` | Properly versioned (v0.3.0), maintained | **Wrong output** — it draws equations, MathJax-style, rather than emitting MathML | | `jgm/texmath` | Mature, well maintained | Haskell. Usable only as a service, which fails the sovereignty test | `go list -m -versions git.sr.ht/~mekyt/latex2mathml` prints the module path with no versions after it, which is how an untagged module reports. ## The option that costs nothing Since raw HTML renders for site-root content (ADR-0060), **MathML can be written straight into a bundle**. Verbose by hand, no dependency, no script, correct output. `$…$` sugar can be added later over the same output without changing anything downstream, so choosing this now forecloses nothing.