docs: bundle mermaid locally for offline diagram rendering

This commit is contained in:
kyasuda
2026-02-10 13:24:05 -08:00
committed by sudacode
parent a37ab476dd
commit 9d49e9eaa8
3 changed files with 935 additions and 19 deletions

View File

@@ -1,16 +1,14 @@
import DefaultTheme from 'vitepress/theme'; import DefaultTheme from 'vitepress/theme';
import { useRoute } from 'vitepress'; import { useRoute } from 'vitepress';
import { nextTick, onMounted, watch } from 'vue'; import { nextTick, onMounted, watch } from 'vue';
import mermaid from 'mermaid';
import '@catppuccin/vitepress/theme/macchiato/mauve.css'; import '@catppuccin/vitepress/theme/macchiato/mauve.css';
let mermaidLoader: Promise<any> | null = null; let mermaidLoader: Promise<any> | null = null;
async function getMermaid() { async function getMermaid() {
if (!mermaidLoader) { if (!mermaidLoader) {
mermaidLoader = import( mermaidLoader = Promise.resolve().then(() => {
/* @vite-ignore */ 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs'
).then((mod) => {
const mermaid = mod.default ?? mod;
mermaid.initialize({ mermaid.initialize({
startOnLoad: false, startOnLoad: false,
securityLevel: 'loose', securityLevel: 'loose',

View File

@@ -41,10 +41,11 @@
"author": "", "author": "",
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"dependencies": { "dependencies": {
"@catppuccin/vitepress": "^0.1.2",
"axios": "^1.13.5", "axios": "^1.13.5",
"jsonc-parser": "^3.3.1", "jsonc-parser": "^3.3.1",
"ws": "^8.19.0", "mermaid": "^11.12.2",
"@catppuccin/vitepress": "^0.1.2" "ws": "^8.19.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^25.2.2", "@types/node": "^25.2.2",

943
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff