Skip to content

Commit 8e6309d

Browse files
authored
⚡feat: update mermaid plugin (#54)
1 parent be0d5d7 commit 8e6309d

File tree

7 files changed

+42
-183
lines changed

7 files changed

+42
-183
lines changed

components.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
/* eslint-disable */
22
// @ts-nocheck
33
// Generated by unplugin-vue-components
44
// Read more: https://github.com/vuejs/core/pull/3399

eslint.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import globals from 'globals'
2-
import { defineFlatConfig } from 'eslint-define-config'
2+
import { defineConfig } from 'eslint/config'
33

44
import * as parserTypeScript from '@typescript-eslint/parser'
55
import pluginTypeScript from '@typescript-eslint/eslint-plugin'
@@ -22,7 +22,7 @@ function renameRules(rules, map) {
2222
)
2323
}
2424

25-
export default defineFlatConfig([
25+
export default defineConfig([
2626
{
2727
ignores: [
2828
'public',

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@
2727
"url": "https://github.com/pdsuwwz/chatgpt-vue3-light-mvp/issues"
2828
},
2929
"dependencies": {
30+
"@nzoth/markdown-it-mermaid-sse": "^0.0.1",
3031
"@vueuse/core": "^13.0.0",
3132
"axios": "1.8.4",
3233
"dompurify": "^3.2.4",
3334
"js-cookie": "^3.0.5",
3435
"lodash-es": "^4.17.21",
3536
"marked": "^15.0.7",
36-
"mermaid": "^11.6.0",
3737
"naive-ui": "^2.41.0",
3838
"nprogress": "^0.2.0",
3939
"pinia": "^3.0.1",
@@ -67,7 +67,6 @@
6767
"cross-env": "^7.0.3",
6868
"crypto-js": "^4.2.0",
6969
"eslint": "^9.23.0",
70-
"eslint-define-config": "^2.1.0",
7170
"eslint-plugin-html": "8.1.2",
7271
"eslint-plugin-import": "^2.31.0",
7372
"eslint-plugin-vue": "^10.0.0",

pnpm-lock.yaml

Lines changed: 22 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/MarkdownPreview/plugins/highlight.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,13 @@ function hljsDefineVue() {
4848

4949
hljs.registerLanguage('vue', hljsDefineVue)
5050

51+
52+
const hljsDefineMermaid = () => {
53+
return {
54+
name: 'Mermaid',
55+
contains: []
56+
}
57+
}
58+
hljs.registerLanguage('mermaid', hljsDefineMermaid)
59+
5160
export default hljs

src/components/MarkdownPreview/plugins/markdown.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ import splitAtDelimiters from 'katex/contrib/auto-render/splitAtDelimiters'
99
import 'katex/dist/katex.min.css'
1010
import 'katex/dist/contrib/mhchem.min.js'
1111

12-
import { mermaidPlugin, processMermaid } from './mermaid'
12+
import {
13+
markdownItMermaidPlugin,
14+
renderMermaidSSE,
15+
transformMermaid
16+
} from '@nzoth/markdown-it-mermaid-sse'
1317

1418
const md = new MarkdownIt({
1519
html: true,
@@ -24,12 +28,7 @@ md.use(markdownItHighlight, {
2428
hasSingleTheme: true
2529
})
2630
.use(markdownItKatex)
27-
.use(mermaidPlugin)
28-
29-
30-
const transformMermaid = (content: string): string => {
31-
return content.replace(/(```mermaid)(?![^]*?```)/g, '```')
32-
}
31+
.use(markdownItMermaidPlugin)
3332

3433

3534
const transformMathMarkdown = (markdownText: string) => {
@@ -118,11 +117,7 @@ export const renderMarkdownText = (content: string) => {
118117
return md.render(mermaidTransformed)
119118
}
120119

121-
const debounceRenderMermaid = _.debounce((callback = () => {}) => {
122-
processMermaid.fn(callback)
123-
}, 10)
124-
125120
// 触发 Mermaid 渲染
126121
export const renderMermaidProcess = (callback = () => {}) => {
127-
debounceRenderMermaid(callback)
122+
renderMermaidSSE(callback)
128123
}

src/components/MarkdownPreview/plugins/mermaid.ts

Lines changed: 0 additions & 143 deletions
This file was deleted.

0 commit comments

Comments
 (0)