渲染引擎
这个包在同一套 wrapper 下面支持两种渲染器
Mermaid.js
renderEngine: 'mermaidjs' 是默认路径
适合场景
- 标准 Mermaid 输出
- 完整主题能力
- Sketch 模式与
sketchFont - 高频迭代的编写场景
ts
md.use(markdownItMermaidEnhanced, {
renderEngine: 'mermaidjs',
theme: 'auto',
})Excalidraw
renderEngine: 'excalidraw' 会先把 Mermaid 兼容源码转成 Excalidraw 元素,再导出 SVG
适合场景
- 更粗粝的视觉语气
- 手绘风格输出
- 评审材料或方案稿
ts
md.use(markdownItMermaidEnhanced, {
renderEngine: 'excalidraw',
excalidrawConfig: {
flowchart: { curve: 'basis' },
themeVariables: { fontSize: '18px' },
},
})一个必须记住的边界
Excalidraw 是渲染器,不是新的解析器,源码依然必须是 Mermaid 兼容输入
保持不变的部分
- Wrapper 结构
- 工具栏动作
- 复制与导出按钮
- 原地重渲染策略
- 配置刷新时的缩放状态
会变化的部分
| 关注点 | Mermaid.js | Excalidraw |
|---|---|---|
| 解析路径 | Mermaid | Mermaid 转 Excalidraw |
| 主题表面 | Mermaid theme variables | Excalidraw app state 与有限转换参数 |
| 手绘模式 | 原生 sketch 样式 | 手绘感来自 Excalidraw 本身 |
| 字号控制 | Mermaid theme variables | themeVariables.fontSize |
行内切换引擎
md
```mermaid excalidraw flowchart-curve=basis font-size="18px"
flowchart LR
Build --> Review --> Ship
```