返回Skills库

Markdown和Mermaid写作

MIT
📊 数据知识
K-Dense-AI可视化Markdown

全面的markdown和Mermaid图表写作技能。用于创建任何科学文档、报告、分析或可视化。以文本图表为默认文档标准,包含完整样式指南(markdown + mermaid)、24种图表类型参考和9个文档模板。

Markdown和Mermaid写作

概述

本技能教授并强制执行使用带有嵌入式Mermaid图表的Markdown作为默认和规范格式创建科学文档的标准。

核心观点:在.md文件中用Mermaid图表表达的关系比任何图像都更有价值。它是文本,因此在git中差异清晰。不需要构建步骤。在GitHub、GitLab、Notion、VS Code和任何Markdown查看器中原生渲染。与相同关系的散文描述相比,它使用更少的tokens。并且它总是可以稍后转换为精美的图像——但文本版本仍然是事实的来源。

"你越多地将你的报告和文件放在.md中,以普通文本形式,mermaid也是如此,同时也是一种简单的'脚本语言'。这有助于任何下游渲染,尤其是AI生成的图像(使用mermaid而不是仅使用长文本描述关系 < tokens)。此外,mermaid可以与markdown一起渲染,以便人类或AI几乎在任何地方轻松使用。"
— Clayton Young (@borealBytes), K-Dense Discord, 2026-02-19

何时使用此技能

在以下情况下使用此技能:

  • 创建任何科学文档 — 报告、分析、手稿、方法部分
  • 编写任何文档 — README、操作指南、决策记录、项目文档
  • 制作任何图表 — 工作流程、数据管道、架构、时间线、关系
  • 生成任何将被版本控制的输出 — 如果它要进入git,它应该是markdown
  • 任何其他技能一起工作 — 此技能定义了包装所有其他输出的文档层
  • 有人要求你"添加图表"或"可视化关系" — 始终首选Mermaid

不要为结构或关系图开始使用Python matplotlib、seaborn或AI图像生成。这些是第2阶段和第3阶段 — 仅在Mermaid无法表达所需内容时使用(例如,带有真实数据的散点图、逼真图像)。

🎨 源格式哲学

为什么基于文本的图表胜出

| 重要因素 | Mermaid in Markdown | Python / AI 图像 |

| ----------------------------- | :-----------------: | :---------------: |

| Git 差异可读 | ✅ | ❌ 二进制 blob |

| 无需重新生成即可编辑 | ✅ | ❌ |

| 与散文相比令牌高效 | ✅ 更小 | ❌ 更大 |

| 无需构建步骤即可渲染 | ✅ | ❌ 需要托管 |

| 无需视觉即可被AI解析 | ✅ | ❌ |

| 在 GitHub / GitLab / Notion 中工作 | ✅ | ⚠️ 如果托管 |

| 可访问性(屏幕阅读器) | ✅ accTitle/accDescr | ⚠️ 需要 alt 文本 |

| 稍后可转换为图像 | ✅ 随时 | — 已是图像 |

三阶段工作流

flowchart LR
    accTitle: 三阶段文档工作流
    accDescr: 第1阶段 Mermaid in markdown 始终是必需的,是事实的来源。第2阶段和第3阶段是可选的下游转换,用于精美的输出。

    p1["📄 第1阶段<br/>Mermaid in Markdown<br/>(始终 — 事实的来源)"]
    p2["🐍 第2阶段<br/>Python 生成<br/>(可选 — 数据图表)"]
    p3["🎨 第3阶段<br/>AI 生成视觉效果<br/>(可选 — 润色)"]
    out["📊 最终交付物"]

    p1 --> out
    p1 -.->|"需要时"| p2
    p1 -.->|"需要时"| p3
    p2 --> out
    p3 --> out

    classDef required fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
    classDef optional fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
    classDef output fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d

    class p1 required
    class p2,p3 optional
    class out output

第1阶段是强制性的。 即使你进行到第2阶段或第3阶段,Mermaid 源文件仍需提交。

Mermaid可以表达什么

Mermaid 涵盖 24 种图表类型。几乎所有科学关系都适合其中一种:

| 使用场景 | 图表类型 | 文件 |

| -------------------------------------------- | ---------------- | ---------------------------------------------------- |

| 实验工作流 / 决策逻辑 | 流程图 | references/diagrams/flowchart.md |

| 服务交互 / API 调用 / 消息传递 | 序列图 | references/diagrams/sequence.md |

| 数据模型 / 模式 | ER 图 | references/diagrams/er.md |

| 状态机 / 生命周期 | 状态图 | references/diagrams/state.md |

| 项目时间线 / 路线图 | 甘特图 | references/diagrams/gantt.md |

| 比例 / 组成 | 饼图 | references/diagrams/pie.md |

| 系统架构(缩放级别) | C4 | references/diagrams/c4.md |

| 概念层次结构 / 头脑风暴 | 思维导图 | references/diagrams/mindmap.md |

| 时间顺序事件 / 历史 | 时间线 | references/diagrams/timeline.md |

| 类层次结构 / 类型关系 | 类图 | references/diagrams/class.md |

| 用户旅程 / 满意度地图 | 用户旅程 | references/diagrams/user_journey.md |

| 双轴比较 / 优先级 | 象限图 | references/diagrams/quadrant.md |

| 需求可追溯性 | 需求图 | references/diagrams/requirement.md |

| 流大小 / 资源分配 | 桑基图 | references/diagrams/sankey.md |

| 数值趋势 / 条形 + 折线图 | XY 图表 | references/diagrams/xy_chart.md |

| 组件布局 / 空间排列 | 方块图 | references/diagrams/block.md |

| 工作项状态 / 任务列 | 看板 | references/diagrams/kanban.md |

| 云基础设施 / 服务拓扑 | 架构图 | references/diagrams/architecture.md |

| 多维比较 / 技能雷达 | 雷达图 | references/diagrams/radar.md |

| 层次比例 / 预算 | 树图 | references/diagrams/treemap.md |

| 二进制协议 / 数据格式 | 数据包图 | references/diagrams/packet.md |

| Git 分支 / 合并策略 | Git 图 | references/diagrams/git_graph.md |

| 代码风格序列(编程语法) | ZenUML | references/diagrams/zenuml.md |

| 多图表组合模式 | 复杂示例 | references/diagrams/complex_examples.md |

💡 选择正确的类型,而不是简单的类型。 不要默认使用流程图来处理所有事情。对于时间顺序事件,时间线优于流程图。对于服务交互,序列图优于流程图。扫描表格并匹配。

🔧 核心工作流

步骤 1:识别文档类型

在从头开始编写之前,检查是否存在模板:

| 文档类型 | 模板 |

| ------------------------------ | ----------------------------------------------- |

| 拉取请求记录 | templates/pull_request.md |

| 问题 / 缺陷 / 功能请求 | templates/issue.md |

| 冲刺 / 项目看板 | templates/kanban.md |

| 架构决策(ADR) | templates/decision_record.md |

| 演示 / 简报 | templates/presentation.md |

| 研究论文 / 分析 | templates/research_paper.md |

| 项目文档 | templates/project_documentation.md |

| 操作指南 / 教程 | templates/how_to_guide.md |

| 状态报告 | templates/status_report.md |

步骤 2:阅读样式指南

在编写任何 .md 文件之前:阅读 references/markdown_style_guide.md

需要内化的关键规则:

  • 每个文档一个 H1 — 标题。永远不要更多。
  • 仅 H2 标题使用表情符号 — 每个 H2 一个表情符号,H3/H4 中不使用
  • 引用所有内容 — 每个外部声明都使用脚注 [^N] 并提供完整 URL
  • 谨慎使用粗体 — 每段最多 2-3 个粗体术语,永远不要整句
  • 每个 `</details>` 后使用水平分隔线 — 强制性
  • 比较、配置、结构化数据使用表格而非散文
  • 图表优于文字墙 — 如果描述流程、结构或关系,添加 Mermaid

步骤 3:选择图表类型并阅读其指南

在创建任何 Mermaid 图表之前:阅读 references/mermaid_style_guide.md

然后打开特定类型文件(例如 references/diagrams/flowchart.md)获取示例、提示和复制粘贴模板。

每个图表的强制性规则:

accTitle: 简短名称 3-8 字
accDescr: 一两个句子解释此图表显示的内容。
  • 不使用 `%%{init}` 指令 — 破坏 GitHub 暗色模式
  • 不使用内联 `style` — 仅使用 classDef
  • 每个节点最多一个表情符号 — 在标签开始处
  • `snake_case` 节点 ID — 与标签匹配

步骤 4:编写文档

从模板开始。应用 Markdown 样式指南。将图表与相关文本内联放置 — 而不是在单独的“图”部分。

步骤 5:作为文本提交

带有嵌入式 Mermaid 的 .md 文件是要提交的内容。如果您还生成了 PNG 或 AI 图像,这些是补充性的 — Markdown 是源。


⚠️ 常见陷阱

雷达图语法 (radar-beta)

错误:

radar
title Example
x-axis ["A", "B", "C"]
"Series" : [1, 2, 3]

正确:

radar-beta
title Example
axis a["A"], b["B"], c["C"]
curve series["Series"]{1, 2, 3}
max 3
  • 使用 `radar-beta` 而不是 radar(裸关键字不存在)
  • 使用 `axis` 定义维度, 使用 x-axis
  • 使用 `curve` 定义数据系列, 使用带冒号的引用标签
  • 没有 `accTitle`/`accDescr` — radar-beta 不支持可访问性注释;始终在图表上方添加描述性斜体段落

XY 图表与雷达图混淆

| 图表 | 关键字 | 轴语法 | 数据语法 |

| ------- | ------- | ----------- | ----------- |

| XY 图表(条形/折线) | xychart-beta | x-axis ["Label1", "Label2"] | bar [10, 20]line [10, 20] |

| 雷达图(蜘蛛/网络) | radar-beta | axis id["Label"] | curve id["Label"]{10, 20} |

忘记在支持的类型上使用 accTitle/accDescr

只有部分图表类型支持 accTitle/accDescr。对于不支持的类型,始终在代码块正上方放置描述性斜体段落:

_雷达图比较三种方法在五个性能维度上的表现。注意:雷达图不支持 accTitle/accDescr。_
radar-beta
...

🔗 与其他技能的集成

scientific-schematics 集成

scientific-schematics 生成 AI 驱动的出版质量图像(PNG)。使用 Mermaid 图表作为示意图的简报

工作流:
1. 在 .md 中创建 Mermaid 概念(此技能 — 第 1 阶段)
2. 向 scientific-schematics 描述相同概念以获取精美的 PNG(第 3 阶段)
3. 提交两者 — .md 作为源,PNG 作为补充图

scientific-writing 集成

scientific-writing 生成手稿时,所有图表和结构图形应使用此技能的标准。写作技能处理散文和引用;此技能处理视觉结构。

工作流:
1. 使用 scientific-writing 起草手稿
2. 对于显示工作流、架构或关系的每个图:
   - 用遵循此技能指南的 Mermaid 图表替换占位符
3. 仅对真正需要逼真/复杂渲染的图使用 scientific-schematics

literature-review 集成

文献综述产生包含大量关系数据的摘要。使用此技能:

  • 创建文献景观的概念图(思维导图)
  • 显示出版物时间线(时间线或甘特图)
  • 比较方法(象限图或雷达图)
  • 绘制论文中描述的数据流(序列图或流程图)

与产生输出文档的任何技能集成

在最终确定任何技能的任何文档之前,应用此技能的清单:

  • [ ] 文档是否使用模板?如果是,我是否从正确的模板开始?
  • [ ] 所有图表是否都在 Mermaid 中并带有 accTitle + accDescr
  • [ ] 没有 %%{init},没有内联 style,只有 classDef
  • [ ] 所有外部声明是否都用 [^N] 引用?
  • [ ] 一个 H1,仅 H2 使用表情符号?
  • [ ] 每个 </details> 后有水平分隔线?

📚 参考索引

样式指南

| 指南 | 路径 | 行数 | 涵盖内容 |

| ----------------------- | ------------------------------------------- | ----- | -------------------------------------------------- |

| Markdown 样式指南 | references/markdown_style_guide.md | ~733 | 标题、格式、引用、表格、Mermaid 集成、模板、质量清单 |

| Mermaid 样式指南 | references/mermaid_style_guide.md | ~458 | 可访问性、表情符号集、颜色类、主题中性、类型选择、复杂度级别 |

图表类型指南(24 种类型)

每个文件包含:生产质量示例、特定于该类型的提示和复制粘贴模板。

references/diagrams/ — architecture, block, c4, class, complex\_examples, er, flowchart, gantt, git\_graph, kanban, mindmap, packet, pie, quadrant, radar, requirement, sankey, sequence, state, timeline, treemap, user\_journey, xy\_chart, zenuml

文档模板(9 种类型)

templates/ — decision\_record, how\_to\_guide, issue, kanban, presentation, project\_documentation, pull\_request, research\_paper, status\_report

示例

assets/examples/example-research-report.md — 完整的科学研究报告,展示了正确的标题层次结构、多种图表类型(流程图、序列图、甘特图)、表格、脚注引用、可折叠部分以及所有样式指南规则的应用。


📝 归因

本技能中的所有样式指南、图表类型指南和文档模板均从 SuperiorByteWorks-LLC/agent-project 存储库移植,在 Apache-2.0 许可下。

  • 来源:https://github.com/SuperiorByteWorks-LLC/agent-project
  • 作者:Clayton Young / Superior Byte Works, LLC (@borealBytes)
  • 许可:Apache-2.0

此技能(作为 scientific-agent-skills 的一部分)在 MIT 许可下分发。包含的 Apache-2.0 内容兼容下游使用,保留归因,如本技能中文件头中所保存。


[^1]: GitHub Blog. (2022). "Include diagrams in your Markdown files with Mermaid." https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/

[^2]: Mermaid. "Mermaid Diagramming and Charting Tool." https://mermaid.js.org/

工具和编辑器

Mermaid Live Editor

Mermaid Live Editor是一个在线编辑器,允许您实时预览Mermaid图表。

  • 访问:https://mermaid.live
  • 在左侧编辑器中输入Mermaid代码
  • 在右侧预览图表
  • 导出为SVG、PNG等格式

Markdown编辑器

许多Markdown编辑器支持Mermaid语法:

  • Obsidian:原生支持Mermaid
  • Typora:原生支持Mermaid
  • VS Code:通过插件支持Mermaid
  • GitHub:原生支持Mermaid
  • GitLab:原生支持Mermaid

最佳实践

  1. 保持简单:避免过于复杂的图表
  2. 使用清晰的标签:使用描述性的节点和边标签
  3. 保持一致性:在整个文档中使用一致的样式
  4. 测试图表:在Mermaid Live Editor中测试图表
  5. 文档化图表:为图表添加标题和描述
  6. 使用子图:对于复杂图表,使用子图进行组织
  7. 考虑可访问性:为图表提供文本描述

常见问题

Q: Mermaid支持哪些图表类型?

A: Mermaid支持流程图、序列图、类图、状态图、ER图、甘特图、饼图、思维导图、时序图、Git图、用户旅程图、C4图等。

Q: 如何在Markdown中使用Mermaid?

A: 使用 ```mermaid 代码块包围Mermaid代码。

Q: Mermaid图表可以导出吗?

A: 是的,可以使用Mermaid Live Editor将图表导出为SVG、PNG等格式。

Q: Mermaid支持自定义样式吗?

A: 是的,Mermaid支持自定义样式,包括颜色、字体、大小等。

资源

  • Mermaid官方文档:https://mermaid.js.org/intro/
  • Mermaid Live Editor:https://mermaid.live
  • Mermaid GitHub:https://github.com/mermaid-js/mermaid

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明