Skip to content

Commit f5af788

Browse files
Algorithm5838github-actions[bot]
authored andcommitted
perf: move marked.use() calls to a singleton config module
1 parent 24f4447 commit f5af788

2 files changed

Lines changed: 29 additions & 26 deletions

File tree

src/lib/components/chat/Messages/Markdown.svelte

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
<script>
22
import { onDestroy } from 'svelte';
3-
import { marked } from 'marked';
3+
import { marked } from '$lib/utils/marked/config';
44
import { replaceTokens, processResponseContent } from '$lib/utils';
55
import { user } from '$lib/stores';
66
7-
import markedExtension from '$lib/utils/marked/extension';
8-
import markedKatexExtension from '$lib/utils/marked/katex-extension';
9-
import { disableSingleTilde } from '$lib/utils/marked/strikethrough-extension';
10-
import { mentionExtension } from '$lib/utils/marked/mention-extension';
11-
127
import MarkdownTokens from './Markdown/MarkdownTokens.svelte';
13-
import footnoteExtension from '$lib/utils/marked/footnote-extension';
14-
import citationExtension from '$lib/utils/marked/citation-extension';
158
169
export let id = '';
1710
export let content;
@@ -39,24 +32,6 @@
3932
let lastContent = '';
4033
let lastParsedContent = '';
4134
42-
const options = {
43-
throwOnError: false,
44-
breaks: true
45-
};
46-
47-
marked.use(markedKatexExtension(options));
48-
marked.use(markedExtension(options));
49-
marked.use(citationExtension(options));
50-
marked.use(footnoteExtension(options));
51-
marked.use(disableSingleTilde);
52-
marked.use({
53-
extensions: [
54-
mentionExtension({ triggerChar: '@' }),
55-
mentionExtension({ triggerChar: '#' }),
56-
mentionExtension({ triggerChar: '$' })
57-
]
58-
});
59-
6035
const parseTokens = () => {
6136
if (content === lastContent) return;
6237
lastContent = content;

src/lib/utils/marked/config.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { marked } from 'marked';
2+
3+
import markedExtension from './extension';
4+
import markedKatexExtension from './katex-extension';
5+
import { disableSingleTilde } from './strikethrough-extension';
6+
import { mentionExtension } from './mention-extension';
7+
import footnoteExtension from './footnote-extension';
8+
import citationExtension from './citation-extension';
9+
10+
const options = {
11+
throwOnError: false,
12+
breaks: true
13+
};
14+
15+
marked.use(markedKatexExtension(options));
16+
marked.use(markedExtension(options));
17+
marked.use(citationExtension());
18+
marked.use(footnoteExtension());
19+
marked.use(disableSingleTilde);
20+
marked.use({
21+
extensions: [
22+
mentionExtension({ triggerChar: '@' }),
23+
mentionExtension({ triggerChar: '#' }),
24+
mentionExtension({ triggerChar: '$' })
25+
]
26+
});
27+
28+
export { marked };

0 commit comments

Comments
 (0)