Add a marked extension that tokenizes math delimiters and renders them with KaTeX: `$$ ... $$` / `\[ ... \]` as block, `$ ... $` / `\( ... \)` and mid-paragraph `$$ ... $$` as inline. Inline `$ ... $` requires a non-space after the opening `$`, no newline inside, and a non-digit after the closing `$`, so prose like "$100 から $200" is left alone; `\$` still escapes a literal dollar sign. Parse errors fall back to KaTeX's red inline message instead of throwing, and math whose closing delimiter has not streamed in yet stays plain text. DOMPurify strips `semantics` and `annotation` by default, which would leak the raw TeX out of KaTeX's MathML output, so both are allowed explicitly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
585 B
JSON
28 lines
585 B
JSON
{
|
|
"name": "playchat-frontend",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vue-tsc && vite build",
|
|
"preview": "vite preview",
|
|
"type-check": "vue-tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"dompurify": "^3.1.0",
|
|
"katex": "^0.16.47",
|
|
"marked": "^12.0.0",
|
|
"pinia": "^2.1.7",
|
|
"vue": "^3.4.0",
|
|
"vue-router": "^4.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/dompurify": "^3.0.5",
|
|
"@vitejs/plugin-vue": "^5.0.4",
|
|
"typescript": "^5.4.0",
|
|
"vite": "^6.0.0",
|
|
"vue-tsc": "^2.0.6"
|
|
}
|
|
}
|