summaryrefslogtreecommitdiffstats
path: root/assets
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-12-06 07:36:16 +0800
committerGitHub <noreply@github.com>2024-12-06 07:36:16 +0800
commit5f7edc0ded187d86712639f3f7c48e6e4d72927b (patch)
tree4a882dca20bc139027900503271f92cb0d9073c7 /assets
parent4399faf5ee89b6980bd0a1029d41d8f705da383d (diff)
downloadaichat-5f7edc0ded187d86712639f3f7c48e6e4d72927b.tar.gz
feat: webui supports math in markdown (#1039)
Diffstat (limited to 'assets')
-rw-r--r--assets/arena.html30
-rw-r--r--assets/playground.html30
2 files changed, 34 insertions, 26 deletions
diff --git a/assets/arena.html b/assets/arena.html
index 8590cd0..7adad83 100644
--- a/assets/arena.html
+++ b/assets/arena.html
@@ -6,13 +6,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<title>AIChat LLM Arena</title>
+ <link rel="stylesheet" href="//unpkg.com/katex@0.16.11/dist/katex.min.css">
<link rel="stylesheet" href="//unpkg.com/github-markdown-css@5.8.1/github-markdown.css">
<link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.10.0/styles/github-dark.min.css"
media="screen and (prefers-color-scheme: dark)">
<link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.10.0/styles/github.min.css"
media="screen and (prefers-color-scheme: light)">
- <script src="//unpkg.com/@highlightjs/cdn-assets@11.10.0/highlight.min.js"></script>
- <script src="//unpkg.com/marked@12.0.2/lib/marked.umd.js" defer></script>
+ <script src="//unpkg.com/@highlightjs/cdn-assets@11.10.0/highlight.min.js" defer></script>
+ <script src="//unpkg.com/marked@15.0.3/lib/marked.umd.js" defer></script>
+ <script src="//unpkg.com/katex@0.16.11/dist/katex.min.js" defer></script>
+ <script src="//unpkg.com/@sigodenjs/marked-katex-extension@1.0.0/lib/index.umd.js" defer></script>
<script src="//unpkg.com/alpinejs@3.14.6/dist/cdn.min.js" defer></script>
<style>
:root {
@@ -989,24 +992,25 @@
}
function setupMarked() {
- const renderer = new marked.Renderer();
- renderer.code = (code, language) => {
- const validLang = !!(language && hljs.getLanguage(language));
-
- const highlighted = validLang
- ? hljs.highlight(code, { language }).value
- : escapeForHTML(code);
-
- return `<div class="code-block">
- <pre><code class="hljs ${language}">${highlighted}</code></pre>
+ const renderer = {
+ code({ text, lang }) {
+ const validLang = !!(lang && hljs.getLanguage(lang));
+ const highlighted = validLang
+ ? hljs.highlight(text, { language: lang }).value
+ : escapeForHTML(text);
+
+ return `<div class="code-block">
+ <pre><code class="hljs ${lang}">${highlighted}</code></pre>
<div class="copy-code-btn" @click="handleCopyCode" title="Copy code">
<svg fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1z"/>
</svg>
</div>
</div>`;
+ }
};
- marked.setOptions({ renderer });
+ marked.use({ renderer });
+ marked.use(markedKatex({ throwOnError: false, inlineTolerantNoSpace: true }));
}
function escapeForHTML(input) {
diff --git a/assets/playground.html b/assets/playground.html
index 30f2b50..e7b8e11 100644
--- a/assets/playground.html
+++ b/assets/playground.html
@@ -6,13 +6,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<title>AIChat LLM Playground</title>
+ <link rel="stylesheet" href="//unpkg.com/katex@0.16.11/dist/katex.min.css">
<link rel="stylesheet" href="//unpkg.com/github-markdown-css@5.8.1/github-markdown.css">
<link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.10.0/styles/github-dark.min.css"
media="screen and (prefers-color-scheme: dark)">
<link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.10.0/styles/github.min.css"
media="screen and (prefers-color-scheme: light)">
- <script src="//unpkg.com/@highlightjs/cdn-assets@11.10.0/highlight.min.js"></script>
- <script src="//unpkg.com/marked@12.0.2/lib/marked.umd.js" defer></script>
+ <script src="//unpkg.com/@highlightjs/cdn-assets@11.10.0/highlight.min.js" defer></script>
+ <script src="//unpkg.com/marked@15.0.3/lib/marked.umd.js" defer></script>
+ <script src="//unpkg.com/katex@0.16.11/dist/katex.min.js" defer></script>
+ <script src="//unpkg.com/@sigodenjs/marked-katex-extension@1.0.0/lib/index.umd.js" defer></script>
<script src="//unpkg.com/alpinejs@3.14.6/dist/cdn.min.js" defer></script>
<style>
:root {
@@ -1470,24 +1473,25 @@
}
function setupMarked() {
- const renderer = new marked.Renderer();
- renderer.code = (code, language) => {
- const validLang = !!(language && hljs.getLanguage(language));
-
- const highlighted = validLang
- ? hljs.highlight(code, { language }).value
- : escapeForHTML(code);
-
- return `<div class="code-block">
- <pre><code class="hljs ${language}">${highlighted}</code></pre>
+ const renderer = {
+ code({ text, lang }) {
+ const validLang = !!(lang && hljs.getLanguage(lang));
+ const highlighted = validLang
+ ? hljs.highlight(text, { language: lang }).value
+ : escapeForHTML(text);
+
+ return `<div class="code-block">
+ <pre><code class="hljs ${lang}">${highlighted}</code></pre>
<div class="copy-code-btn" @click="handleCopyCode" title="Copy code">
<svg fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1z"/>
</svg>
</div>
</div>`;
+ }
};
- marked.setOptions({ renderer });
+ marked.use({ renderer });
+ marked.use(markedKatex({ throwOnError: false, inlineTolerantNoSpace: true }));
}
function escapeForHTML(input) {