mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-12-04 19:44:11 +01:00
@@ -268,15 +268,15 @@ A relationship is a general term covering the specific types of logical connecti
|
|||||||
There are eight different types of relations defined for classes under UML which are currently supported:
|
There are eight different types of relations defined for classes under UML which are currently supported:
|
||||||
|
|
||||||
| Type | Description |
|
| Type | Description |
|
||||||
| ------- | ------------- |
|
| ---- | ------------- | ----------- |
|
||||||
| `<\|--` | Inheritance |
|
| < | -- | Inheritance |
|
||||||
| `\*--` | Composition |
|
| \*-- | Composition |
|
||||||
| `o--` | Aggregation |
|
| o-- | Aggregation |
|
||||||
| `-->` | Association |
|
| --> | Association |
|
||||||
| `--` | Link (Solid) |
|
| -- | Link (Solid) |
|
||||||
| `..>` | Dependency |
|
| ..> | Dependency |
|
||||||
| `..\|>` | Realization |
|
| .. | > | Realization |
|
||||||
| `..` | Link (Dashed) |
|
| .. | Link (Dashed) |
|
||||||
|
|
||||||
```mermaid-example
|
```mermaid-example
|
||||||
classDiagram
|
classDiagram
|
||||||
@@ -373,13 +373,13 @@ Here is the syntax:
|
|||||||
Where `Relation Type` can be one of:
|
Where `Relation Type` can be one of:
|
||||||
|
|
||||||
| Type | Description |
|
| Type | Description |
|
||||||
| ----- | ----------- |
|
| ---- | ----------- | ----------- |
|
||||||
| `<\|` | Inheritance |
|
| < | | Inheritance |
|
||||||
| `\*` | Composition |
|
| \* | Composition |
|
||||||
| `o` | Aggregation |
|
| o | Aggregation |
|
||||||
| `>` | Association |
|
| > | Association |
|
||||||
| `<` | Association |
|
| < | Association |
|
||||||
| `\|>` | Realization |
|
| | > | Realization |
|
||||||
|
|
||||||
And `Link` can be one of:
|
And `Link` can be one of:
|
||||||
|
|
||||||
|
|||||||
@@ -34,9 +34,16 @@ const MermaidExample = async (md: MarkdownRenderer) => {
|
|||||||
</div>`;
|
</div>`;
|
||||||
} else if (token.info.trim() === 'mermaid') {
|
} else if (token.info.trim() === 'mermaid') {
|
||||||
const key = index;
|
const key = index;
|
||||||
return `
|
return ` ${key}
|
||||||
${key}
|
<Suspense>
|
||||||
|
<template #default>
|
||||||
<Mermaid id="mermaid-${key}" graph="${encodeURIComponent(token.content)}"></Mermaid>
|
<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') {
|
if (token.info.trim() === 'warning') {
|
||||||
|
|||||||
@@ -5,7 +5,11 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, onUnmounted, ref, toRaw } from 'vue';
|
import { onMounted, onUnmounted, ref, toRaw } from 'vue';
|
||||||
import mermaid from 'mermaid';
|
import mermaid from 'mermaid';
|
||||||
|
import mindmap from '@mermaid-js/mermaid-mindmap';
|
||||||
import { useData } from 'vitepress';
|
import { useData } from 'vitepress';
|
||||||
|
try {
|
||||||
|
await mermaid.registerExternalDiagrams([mindmap]);
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
graph: {
|
graph: {
|
||||||
@@ -32,7 +36,7 @@ let mermaidConfig = {
|
|||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
mut = new MutationObserver(() => renderChart());
|
mut = new MutationObserver(() => renderChart());
|
||||||
mut.observe(document.documentElement, { attributes: true });
|
mut.observe(document.documentElement, { attributes: true });
|
||||||
renderChart();
|
await renderChart();
|
||||||
|
|
||||||
//refresh images on first render
|
//refresh images on first render
|
||||||
const hasImages = /<img([\w\W]+?)>/.exec(decodeURIComponent(props.graph))?.length > 0;
|
const hasImages = /<img([\w\W]+?)>/.exec(decodeURIComponent(props.graph))?.length > 0;
|
||||||
@@ -59,7 +63,7 @@ onMounted(async () => {
|
|||||||
|
|
||||||
onUnmounted(() => mut.disconnect());
|
onUnmounted(() => mut.disconnect());
|
||||||
|
|
||||||
const renderChart = () => {
|
const renderChart = async () => {
|
||||||
console.log('rendering chart' + props.id + props.graph);
|
console.log('rendering chart' + props.id + props.graph);
|
||||||
let hasDarkClass = document.documentElement.classList.contains('dark');
|
let hasDarkClass = document.documentElement.classList.contains('dark');
|
||||||
mermaidConfig.theme = mermaidPageTheme || mermaidConfig.theme;
|
mermaidConfig.theme = mermaidPageTheme || mermaidConfig.theme;
|
||||||
@@ -69,6 +73,6 @@ const renderChart = () => {
|
|||||||
...mermaidConfig,
|
...mermaidConfig,
|
||||||
theme: hasDarkClass ? 'dark' : mermaidPageTheme,
|
theme: hasDarkClass ? 'dark' : mermaidPageTheme,
|
||||||
});
|
});
|
||||||
svg.value = mermaid.render(props.id, decodeURIComponent(props.graph));
|
svg.value = await mermaid.renderAsync(props.id, decodeURIComponent(props.graph));
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user