Bundle KaTeX font assets

Add every font referenced by the vendored KaTeX stylesheet so math renders without missing local assets. Cover the CSS-to-font contract with a focused regression test and document ownership.

Alessandro committed Jul 14, 2026 at 15:56 UTC 84bc867ec9385e1895f1ad20c2806ebbd6174a79
62 files changed +16
tests/test_webui_katex_assets.py new
+14
@@ -0,0 +1,14 @@
1 +from pathlib import Path
2 +import re
3 +
4 +
5 +PROJECT_ROOT = Path(__file__).resolve().parents[1]
6 +
7 +
8 +def test_katex_css_font_assets_are_complete():
9 + katex = PROJECT_ROOT / "webui" / "vendor" / "katex"
10 + css = (katex / "katex.min.css").read_text(encoding="utf-8")
11 + referenced = set(re.findall(r"fonts/(KaTeX_[^)\"']+\.(?:woff2|woff|ttf))", css))
12 + available = {path.name for path in (katex / "fonts").iterdir() if path.is_file()}
13 +
14 + assert referenced == available
webui/vendor/katex/AGENTS.md
+2
@@ -9,11 +9,13 @@
9 - `katex.min.js` owns core rendering behavior.
10 - `katex.auto-render.min.js` owns auto-render support.
11 - `katex.min.css` owns KaTeX styling.
12 +- `fonts/` owns every font asset referenced by `katex.min.css`.
13
14 ## Local Contracts
15
16 - Do not hand-edit minified vendor files.
17 - Keep markdown/message rendering imports synchronized with asset paths.
18 +- Keep the CSS font references fully available under `fonts/`.
19
20 ## Work Guidance
21
webui/vendor/katex/fonts/KaTeX_AMS-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_AMS-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_AMS-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_AMS-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_AMS-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.ttf differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.ttf differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Main-Bold.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Bold.ttf differ
webui/vendor/katex/fonts/KaTeX_Main-Bold.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Bold.woff differ
webui/vendor/katex/fonts/KaTeX_Main-Bold.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Bold.woff2 differ
webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.ttf differ
webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff differ
webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 differ
webui/vendor/katex/fonts/KaTeX_Main-Italic.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Italic.ttf differ
webui/vendor/katex/fonts/KaTeX_Main-Italic.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Italic.woff differ
webui/vendor/katex/fonts/KaTeX_Main-Italic.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Italic.woff2 differ
webui/vendor/katex/fonts/KaTeX_Main-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Main-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Main-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Main-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.ttf differ
webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff differ
webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 differ
webui/vendor/katex/fonts/KaTeX_Math-Italic.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-Italic.ttf differ
webui/vendor/katex/fonts/KaTeX_Math-Italic.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-Italic.woff differ
webui/vendor/katex/fonts/KaTeX_Math-Italic.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Math-Italic.woff2 differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.ttf differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.ttf differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Script-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Script-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Script-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Script-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Script-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Script-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Size1-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size1-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Size1-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size1-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Size1-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Size2-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size2-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Size2-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size2-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Size2-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Size3-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size3-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Size3-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size3-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Size3-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Size4-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size4-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Size4-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size4-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Size4-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 differ
webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.ttf
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.ttf differ
webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff differ
webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2
Binary files /dev/null and b/webui/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 differ