@@ -9,7 +9,7 @@ export default defineConfig({
99 site : 'https://docs.sharonwang.me' ,
1010 adapter : vercel ( { imageService : true , webAnalytics : { enabled : true } } ) ,
1111 markdown : {
12- remarkPlugins : [ remarkMath ] ,
12+ remarkPlugins : [ remarkMath , remarkMermaidToDiv ] ,
1313 rehypePlugins : [ rehypeKatex ] ,
1414 } ,
1515 integrations : [
@@ -161,7 +161,7 @@ export default defineConfig({
161161 async function renderMermaidDiagrams() {
162162 setupMermaidModal();
163163
164- const codeBlocks = document.querySelectorAll('code.language-mermaid, pre.language-mermaid, pre[data-language="mermaid"]');
164+ const codeBlocks = document.querySelectorAll('.mermaid-raw, code.language-mermaid, pre.language-mermaid, pre[data-language="mermaid"]');
165165 for (let i = 0; i < codeBlocks.length; i++) {
166166 const codeBlock = codeBlocks[i];
167167 if (codeBlock.dataset.mermaidRendered) continue;
@@ -170,15 +170,19 @@ export default defineConfig({
170170 const preOrFigure = codeBlock.closest('.expressive-code') || codeBlock.closest('pre') || codeBlock;
171171
172172 let textContent = '';
173- const copyBtn = preOrFigure.querySelector('button[data-code]');
174- if (copyBtn && copyBtn.dataset.code) {
175- textContent = copyBtn.dataset.code.replace(new RegExp(String.fromCharCode(127), 'g'), String.fromCharCode(10));
173+ if (codeBlock.classList.contains('mermaid-raw')) {
174+ textContent = decodeURIComponent(codeBlock.dataset.raw || '');
176175 } else {
177- const lines = codeBlock.querySelectorAll('.ec-line . code');
178- if (lines.length > 0 ) {
179- textContent = Array.from(lines).map(line => line.textContent).join( String.fromCharCode(10));
176+ const copyBtn = preOrFigure.querySelector('button[data- code] ');
177+ if (copyBtn && copyBtn.dataset.code ) {
178+ textContent = copyBtn.dataset.code.replace(new RegExp(String.fromCharCode(127), 'g'), String.fromCharCode(10));
180179 } else {
181- textContent = codeBlock.textContent || '';
180+ const lines = codeBlock.querySelectorAll('.ec-line .code');
181+ if (lines.length > 0) {
182+ textContent = Array.from(lines).map(line => line.textContent).join(String.fromCharCode(10));
183+ } else {
184+ textContent = codeBlock.textContent || '';
185+ }
182186 }
183187 }
184188
0 commit comments