Mermaid
Mermaid diagram plugin, supporting Mermaid chart rendering in Markdown.
Installation
sh
pnpm add vitepress-plugin-mermaid-tucksh
npm install vitepress-plugin-mermaid-tucksh
bun add vitepress-plugin-mermaid-tucksh
deno add vitepress-plugin-mermaid-tucksh
yarn add vitepress-plugin-mermaid-tuckUsage
vitepress-tuck Mode Recommended
ts
import { defineConfig } from 'vitepress-tuck'
import mermaid from 'vitepress-plugin-mermaid-tuck'
export default defineConfig({
plugins: [
mermaid(),
],
})Learn more about vitepress-tuck
Native Mode
ts
import { defineConfig } from 'vitepress'
import { mermaidMarkdownPlugin, mermaidVitePlugin } from 'vitepress-plugin-mermaid-tuck'
export default defineConfig({
vite: {
plugins: [mermaidVitePlugin({
options: { theme: 'default' },
})],
},
markdown: {
config: (md) => {
md.use(mermaidMarkdownPlugin)
},
},
})ts
import type { Theme } from 'vitepress'
import { enhanceAppWithMermaid } from 'vitepress-plugin-mermaid-tuck/client'
import DefaultTheme from 'vitepress/theme'
export default {
extends: DefaultTheme,
enhanceApp(ctx) {
enhanceAppWithMermaid(ctx)
},
} satisfies ThemeSyntax
Use code blocks with the mermaid language tag:
md
```mermaid
flowchart LR
Start --> Stop
```md
```mermaid
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice->>John: See you later!
```Configuration
MermaidPluginOptions
ts
interface MermaidPluginOptions {
/**
* Mermaid configuration (excluding startOnLoad and themeVariables)
*/
options?: Omit<MermaidConfig, 'startOnLoad' | 'themeVariables'> & {
themeVariables?: MermaidThemeVariables
}
/**
* Locale configuration
*/
locales?: Record<string, MermaidLocaleData>
}MermaidThemeVariables
Supports custom theme variables for various Mermaid diagram types, covering:
- Basic variables (background, text color, line color, etc.)
- C4, Class, ER diagram variables
- Flowchart variables
- Gantt chart variables
- Git graph variables
- Journey diagram variables
- Pie chart variables
- Requirement diagram variables
- State diagram variables
- Sequence diagram variables
MermaidLocaleData
ts
interface MermaidLocaleData {
chart?: string // Default 'Chart'
source?: string // Default 'Source'
fullscreen?: string // Default 'Fullscreen'
download?: string // Default 'Download'
}Built-in Languages
The plugin includes built-in support for the following languages:
- English (en, en-US)
- 简体中文 (zh, zh-CN)
- 日本語 (ja)
- 한국어 (ko)
- Español (es)
- Français (fr)
- Русский (ru)
- Deutsch (de)
- Português (pt)