用途:在 Quarto revealjs 幻灯片中创建和调试 Mermaid 图表(sequenceDiagram、flowchart、pie 等),并处理 mmdc 与 revealjs 渲染不一致的问题。
主要能力与要点:
- 渲染差异:%%{init}%% 的 themeVariables 在 mmdc 生成的 PNG 中生效,但 revealjs 渲染时会被其 CSS 覆盖。Quarto revealjs 通过 mermaid-init.js 的 defaultCSS 注入变量,如 --mermaid-edge-color(信号/循环文字,默认 #999)、--mermaid-label-fg-color(参与者名称,默认 #2a76dd)、--mermaid-node-fg-color(alt/else 标签,默认 #000)。
- 文字颜色修复:在 .qmd 的 YAML include-in-header 中加入 CSS 覆盖,例如 .mermaid text { fill: #000000 !important; } 与 .mermaid .label { color: #000000 !important; };资料同时指出更可靠的做法是在 :root 层覆盖上述 CSS 变量并加 !important,因为 revealjs 客户端渲染时 CSS 变量优先于静态 SVG fill。
- 验证方式:仅用 mmdc 不够,需执行 mise exec -- quarto render slides/xxx.qmd --to revealjs,检查 _site/slides/xxx.html 中的 mermaid SVG 与 fill 属性,或用 webapp-testing(Playwright)截图。
- sequenceDiagram 技巧:可用 %%{init: {'theme': 'base', 'themeVariables': {'textColor': '#000000'}, 'sequence': {'mirrorActors': false}}}%% 隐藏底部重复参与者行;1920x1080 且 scrollable: true 的幻灯片约容纳 20 行图表内容。
- mmdc 命令:, mmdc -i input.mmd -o output.png;需系统 Chrome 时设置 PUPPETEER_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"。注意去掉代码围栏标记,mmdc 需要原始 Mermaid 语法。
- 配色限制:alt 与 loop 块共用 .loopLine 类,无法在不做更侵入式 CSS 的情况下分别着色;actor 框为 rect.actor,alt/loop 标签框为 .labelBox。
限制:资料未提供安装方式、收费、平台支持范围等更多信息。