Mermaid Diagrams

Polar Sponsor
爱发电 赞助
.NET 9.0

使用Mermaid语法创建软件图表。当用户需要通过类图、时序图、流程图、ER图、C4架构图、状态图、Git图等创建、可视化或记录软件时使用。触发词包括绘制图表、可视化、建模、梳理结构或展示系统流程。

使用美人鱼的文字语法创建专业软件图

功能概述

使用美人鱼的文字语法创建专业软件图是一项面向实际任务的技能,主要用于美人鱼从简单的文字定义中生成图, 使图的版本可控, 容易 u。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Mermaid 图表

使用 Mermaid 的纯文本语法创建专业的软件图表。Mermaid 通过简洁的文本定义渲染图表,使图表具备版本可追踪性、易于更新,并能与代码一同维护。

安装

OpenClaw / Moltbot / Clawbot

npx clawhub@latest install mermaid-diagrams

核心语法

所有 Mermaid 图表均遵循以下结构:

diagramType
  definition content

关键原则:

  • 首行声明图表类型(例如:classDiagram、sequenceDiagram、flowchart)
  • 使用 %% 添加注释
  • 换行与缩进有助于提升可读性,但非必需
  • 未识别的单词会导致图表解析失败;无效参数将静默忽略

图表类型选择

类型 适用场景 参考文档
类图(Class Diagrams) 领域建模、面向对象设计、实体关系表达 references/class-diagrams.md
序列图(Sequence Diagrams) API 流程、认证流程、组件间交互 references/sequence-diagrams.md
流程图(Flowcharts) 业务流程、算法逻辑、决策树、用户旅程 references/flowcharts.md
ERD(实体关系图) 数据库 Schema、表间关系、数据建模 references/erd-diagrams.md
C4 图(C4 Diagrams) 系统上下文、容器、组件、整体架构 references/c4-diagrams.md
状态图(State Diagrams) 状态机、生命周期状态 —
Git 图(Git Graphs) 分支策略 —
甘特图(Gantt Charts) 项目时间线、任务排期 —

关于样式、主题及布局选项:参见 references/advanced-features.md

快速上手示例

类图(领域模型)

classDiagram
    Title -- Genre
    Title *-- Season
    Title *-- Review
    User --> Review : creates

    class Title {
        +string name
        +int releaseYear
        +play()
    }

    class Genre {
        +string name
        +getTopTitles()
    }

序列图(API 流程)

sequenceDiagram
    participant User
    participant API
    participant Database

    User->>API: POST /login
    API->>Database: Query credentials
    Database-->>API: Return user data
    alt Valid credentials
        API-->>User: 200 OK + JWT token
    else Invalid credentials
        API-->>User: 401 Unauthorized
    end

流程图(用户旅程)

flowchart TD
    Start([User visits site]) --> Auth{Authenticated?}
    Auth -->|No| Login[Show login page]
    Auth -->|Yes| Dashboard[Show dashboard]
    Login --> Creds[Enter credentials]
    Creds --> Validate{Valid?}
    Validate -->|Yes| Dashboard
    Validate -->|No| Error[Show error]
    Error --> Login

ERD(数据库 Schema)

erDiagram
    USER ||--o{ ORDER : places
    ORDER ||--|{ LINE_ITEM : contains
    PRODUCT ||--o{ LINE_ITEM : includes

    USER {
        int id PK
        string email UK
        string name
        datetime created_at
    }

    ORDER {
        int id PK
        int user_id FK
        decimal total
        datetime created_at
    }

最佳实践

  1. 从简单开始 — 先绘制核心实体或组件,再逐步补充细节
  2. 使用有意义的名称 — 清晰的标签让图表具备自解释性
  3. 充分添加注释 — 使用 %% 注释说明复杂关系或设计意图
  4. 聚焦单一概念 — 每张图表只表达一个核心概念;大型图表应拆分为多个视角
  5. 纳入版本控制 — 将 .mmd 文件与源码一同提交,便于协同更新
  6. 提供上下文 — 添加标题和说明文字,明确图表用途与范围
  7. 持续迭代 — 随着理解深入不断优化图表内容

配置与主题

可通过 frontmatter 进行图表配置:

---
config:
  theme: base
  themeVariables:
    primaryColor: "#ff6b6b"
---
flowchart LR
    A --> B

可用主题: default、forest、dark、neutral、base

布局选项:

  • layout: dagre(默认)—— 经典均衡布局
  • layout: elk —— 面向复杂图表的高级布局引擎

外观选项:

  • look: classic —— 传统 Mermaid 风格
  • look: handDrawn —— 手绘风格外观

渲染与导出

原生支持平台:

  • GitHub / GitLab —— 在 Markdown 中自动渲染
  • VS Code —— 安装 Markdown Mermaid 扩展后支持
  • Notion、Obsidian、Confluence —— 内置 Mermaid 支持

导出方式:

  • Mermaid Live Editor —— 在线编辑器,支持 PNG/SVG 导出
  • Mermaid CLI —— npm install -g @mermaid-js/mermaid-cli 后执行 mmdc -i input.mmd -o output.png

何时创建图表

务必在以下场景中绘制图表:

  • 启动新项目或新功能时
  • 记录复杂系统行为或结构时
  • 阐述架构决策依据时
  • 设计数据库 Schema 时
  • 规划重构工作时
  • 为新团队成员进行入职培训时

善用图表达成以下目标:

  • 对齐各相关方对关键技术决策的理解
  • 协作式地共同构建并维护领域模型
  • 可视化数据流向与系统间交互关系
  • 编码前先行设计与验证方案
  • 构建随代码演进而同步更新的“活文档”

常见陷阱

  • 非法字符 —— 避免在注释中使用 {};特殊字符需转义
  • 语法错误 —— 拼写错误将导致图表无法渲染;建议在 Mermaid Live Editor 中实时校验
  • 过度复杂 —— 复杂图表应拆解为多个聚焦明确的子图
  • 遗漏关键关系 —— 必须体现所有重要实体间的关联
  • 图表过时 —— 错误的图表比无图表更危险;系统变更后必须同步更新

绝对禁止事项

  1. 禁止创建节点数超过 15 个的图表 —— 此类图表难以阅读;应拆分为多个聚焦明确的子图
  2. 禁止使用无标签的连接线/箭头 —— 每条连线都应注明其代表的关系或数据流向
  3. 禁止创建无标题或无说明文字的图表 —— 缺乏上下文的图表仅对作者本人有意义
  4. 禁止将图表作为唯一文档形式 —— 必须搭配文字说明,阐释设计背后的“为什么”
  5. 禁止放任图表过时 —— 架构变更后必须及时更新图表;过时图表会产生误导
  6. 禁止使用 Mermaid 进行业务数据可视化 —— Mermaid 专用于架构图与流程图,不适用于商业数据图表(如柱状图、折线图等)

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习