This commit is contained in:
Sidharth Vinod
2022-11-14 22:14:27 +05:30
parent beab2278d8
commit a88a467d45
3 changed files with 24 additions and 35 deletions

View File

@@ -31,17 +31,10 @@ ${highlight}
</div>`;
} else if (token.info.trim() === 'mermaid') {
const key = index;
return ` ${key}
<Suspense>
<template #default>
return `
${key}
<Mermaid id="mermaid-${key}" graph="${encodeURIComponent(token.content)}"></Mermaid>
</template>
<!-- loading state via #fallback slot -->
<template #fallback>
Loading...
</template>
</Suspense>
`;
`;
}
if (token.info.trim() === 'warning') {
return `<div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>${token.content}}</p></div>`;

View File

@@ -5,11 +5,7 @@
<script setup>
import { onMounted, onUnmounted, ref, toRaw } from 'vue';
import mermaid from 'mermaid';
import mindmap from '@mermaid-js/mermaid-mindmap';
import { useData } from 'vitepress';
try {
await mermaid.registerExternalDiagrams([mindmap]);
} catch (e) {}
const props = defineProps({
graph: {
@@ -36,7 +32,7 @@ let mermaidConfig = {
onMounted(async () => {
mut = new MutationObserver(() => renderChart());
mut.observe(document.documentElement, { attributes: true });
await renderChart();
renderChart();
//refresh images on first render
const hasImages = /<img([\w\W]+?)>/.exec(decodeURIComponent(props.graph))?.length > 0;
@@ -63,7 +59,7 @@ onMounted(async () => {
onUnmounted(() => mut.disconnect());
const renderChart = async () => {
const renderChart = () => {
console.log('rendering chart' + props.id + props.graph);
let hasDarkClass = document.documentElement.classList.contains('dark');
mermaidConfig.theme = mermaidPageTheme || mermaidConfig.theme;
@@ -73,6 +69,6 @@ const renderChart = async () => {
...mermaidConfig,
theme: hasDarkClass ? 'dark' : mermaidPageTheme,
});
svg.value = await mermaid.renderAsync(props.id, decodeURIComponent(props.graph));
svg.value = mermaid.render(props.id, decodeURIComponent(props.graph));
};
</script>