Skip to content

渲染引擎

这个包在同一套 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.jsExcalidraw
解析路径MermaidMermaid 转 Excalidraw
主题表面Mermaid theme variablesExcalidraw app state 与有限转换参数
手绘模式原生 sketch 样式手绘感来自 Excalidraw 本身
字号控制Mermaid theme variablesthemeVariables.fontSize

行内切换引擎

md
```mermaid excalidraw flowchart-curve=basis font-size="18px"
flowchart LR
  Build --> Review --> Ship
```