Skip to content

Commit 0eb7a19

Browse files
committed
fix:解决Mermaid图绘制时报错的问题
1 parent 92f13c3 commit 0eb7a19

File tree

2 files changed

+29
-25
lines changed

2 files changed

+29
-25
lines changed

src/resources/chatPanel.css

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -97,26 +97,6 @@ button {
9797
border: none;
9898
cursor: pointer;
9999
}
100-
#mermaid-toggle-container {
101-
position: absolute;
102-
top: 10px;
103-
right: 80px;
104-
}
105-
#mermaid-toggle {
106-
cursor: pointer;
107-
}
108-
.mermaid {
109-
margin: 10px 0;
110-
}
111-
.mermaid-raw {
112-
display: none;
113-
}
114-
.mermaid-rendered .mermaid-raw {
115-
display: block;
116-
}
117-
.mermaid-rendered .mermaid {
118-
display: none;
119-
}
120100
.top-right-flex-container {
121101
position: absolute;
122102
top: 10px;
@@ -142,6 +122,31 @@ button {
142122
overflow-x: auto;
143123
padding: 5px 0;
144124
}
125+
.fixed-width-btn {
126+
flex-shrink: 0;
127+
width: 120px;
128+
}
129+
130+
#mermaid-toggle-container {
131+
position: absolute;
132+
top: 10px;
133+
right: 80px;
134+
}
135+
#mermaid-toggle {
136+
cursor: pointer;
137+
}
138+
.mermaid {
139+
margin: 10px 0;
140+
}
141+
.mermaid-raw {
142+
display: none;
143+
}
144+
.mermaid-rendered .mermaid-raw {
145+
display: block;
146+
}
147+
.mermaid-rendered .mermaid {
148+
display: none;
149+
}
145150
.mermaid-wrapper {
146151
display: flex;
147152
align-items: center;
@@ -154,7 +159,3 @@ button {
154159
text-overflow: ellipsis;
155160
max-width: 200px;
156161
}
157-
.fixed-width-btn {
158-
flex-shrink: 0;
159-
width: 120px;
160-
}

src/resources/chatPanelScript.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,14 @@ function fnRenderDisplayMath(webviewDiv) {
7676
// 渲染 Mermaid 图表
7777
async function renderMermaid(webviewDiv) {
7878
const codeBlocks = webviewDiv.querySelectorAll('pre code.language-mermaid');
79+
let counter = 0; // 使用计数器确保唯一性
80+
7981
for (const codeBlock of codeBlocks) {
8082
const parentPre = codeBlock.closest('pre');
8183
const mermaidCode = codeBlock.textContent;
8284
try {
83-
const { svg } = await mermaid.render('mermaid-diagram-' + Date.now(), mermaidCode);
85+
const diagramId = `mermaid-diagram-${counter++}-${performance.now()}`;
86+
const { svg } = await mermaid.render(diagramId, mermaidCode);
8487
const mermaidDiv = document.createElement('div');
8588
mermaidDiv.className = 'mermaid';
8689
mermaidDiv.innerHTML = svg;

0 commit comments

Comments
 (0)