mermaid-diagram-writing
스타12
포크2
업데이트2026년 4월 18일 02:45
Mermaid 图表编写规范与常见陷阱。在编写 mermaid 代码块时激活,避免语法错误和渲染异常。
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SKILL.md
readonly메뉴
Mermaid 图表编写规范与常见陷阱。在编写 mermaid 代码块时激活,避免语法错误和渲染异常。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
GitHub Release 发布操作规范。在需要发布版本、上传安装包到 GitHub Release 时激活,确保使用正确的命令和流程。
确认/删除等交互弹框统一使用 showTolyPopPicker 底部弹出样式。在需要弹出确认框、删除确认、操作选择时激活,确保交互风格一致。
后端服务启动与数据库操作规范。在需要启动后端服务、运行 API 测试、执行数据库迁移或遇到连接错误时激活,确保使用正确的命令和流程。
功能归档规范。在归档功能版本、更新功能网、创建存档快照时激活,确保节点编号正确、网络图完整。
使用 tolyui_mediax 实现媒体预览。适用于图片九宫格展示、全屏预览、手势缩放、视频播放、Hero 动画等场景。
Flutter Widget/Page 组件代码评审技能。在需要审查组件代码质量、发现设计问题时激活,确保输出结构化的问题清单和改进建议。
| name | mermaid-diagram-writing |
| description | Mermaid 图表编写规范与常见陷阱。在编写 mermaid 代码块时激活,避免语法错误和渲染异常。 |
| metadata | {"model":"manual","last_modified":"Sat, 18 Apr 2026 00:00:00 GMT"} |
| 类型 | 语法 | 适用场景 |
|---|---|---|
| 流程图 | graph TB / graph LR | 模块关系、页面跳转、依赖图 |
| 时序图 | sequenceDiagram | 接口调用链路、事件流 |
| ER 图 | erDiagram | 数据库表关系 |
| 状态图 | stateDiagram-v2 | 状态流转 |
| 流程图 | flowchart LR / flowchart TB | 用户操作路径 |
mermaid 解析器对特殊字符敏感,以下字符在节点文字中会导致解析失败:
| 字符 | 问题 | 解法 |
|---|---|---|
() 圆括号 | 被解析为节点形状定义 | 用中文括号 (),或省略 |
[] 方括号 | 被解析为节点 ID 定义 | 用中文括号 【】 |
{} 花括号 | 被解析为菱形节点 | 用 「」 或文字描述 |
> < | 被解析为节点形状或 HTML | 用 → ← 或文字描述 |
" 双引号 | 可能截断字符串 | 用单引号 ' 或省略 |
# 井号 | 被解析为 HTML 实体 | 避免使用 |
& | 被解析为 HTML 实体 | 用 + 或 和 替代 |
: 冒号 | 某些上下文中被解析为子图语法 | 用中文冒号 : |
| 竖线 | 被解析为边标签分隔符 | 避免在节点文字中使用 |
安全做法:节点文字只用中文、英文字母、数字、空格、/、.、_、-、+。
subgraph 必须有对应的 end 闭合|文字| 包裹:A -->|标签| B| 字符-.-> 或 -.->|标签|==> 或 ==>|标签|<br/>,不是 \ngraph TB(从上到下)适合层级关系,graph LR(从左到右)适合流程链路在 mermaid 代码末尾统一添加 style 语句:
style NODE_ID fill:#颜色,stroke:#边框色
推荐配色(柔和不刺眼):
| 用途 | 填充色 | 边框色 | 说明 |
|---|---|---|---|
| 页面/视图 | #E8F5E9 | #4CAF50 | 绿色,用户可见的 UI |
| 状态管理 | #FFF3E0 | #FF9800 | 橙色,Cubit/Bloc/ViewModel |
| 数据层 | #E3F2FD | #2196F3 | 蓝色,Repository/WsClient |
| 共享组件 | #F3E5F5 | #9C27B0 | 紫色,跨模块复用的 Widget |
| API 路由 | #FFEBEE | #F44336 | 红色,HTTP 入口 |
| 服务层 | #FFF8E1 | #FFC107 | 黄色,业务逻辑 Service |
| 数据库 | #ECEFF1 | #607D8B | 灰色,PostgreSQL/存储 |
| 局部组件 | #E0F7FA | #00BCD4 | 青色,弹窗/输入框/列表项等 |
| 事件/动作 | #E8EAF6 | #3F51B5 | 靛蓝,用户操作/回调/错误等 |
linkStyle 可以给特定连线上色:
linkStyle 0 stroke:#2196F3,stroke-width:2px
注意:linkStyle 的序号是连线在代码中出现的顺序(从 0 开始)。
| 现象 | 原因 | 排查 |
|---|---|---|
Parse error | 节点文字中有未转义的特殊字符 | 检查 ()、{}、[]、> |
| 图渲染为空白 | subgraph 未闭合 | 检查每个 subgraph 是否有 end |
| 节点消失 | 节点 ID 和 mermaid 关键字冲突 | 避免用 end、graph、style、class 作为 ID |
| 布局混乱 | 节点太多或连线交叉 | 减少节点数,合并同类项 |
| style 不生效 | 节点 ID 拼写错误 | 确认 style 中的 ID 和定义处完全一致 |
| linkStyle 错位 | 序号算错 | 按代码中连线出现的顺序从 0 数 |
graph TB
A[页面 A] --> B[页面 B]
B --> C[页面 C]
A -.->|HTTP| D[后端 API]
style A fill:#E8F5E9,stroke:#4CAF50
style D fill:#FFEBEE,stroke:#F44336
sequenceDiagram
participant U as 用户
participant FE as 前端
participant API as 后端
U->>FE: T1 点击按钮
FE->>API: POST /groups<br/>{name, member_ids}
API-->>FE: T2 返回结果
FE->>U: T3 跳转页面
erDiagram
users ||--o{ orders : "has"
users {
int id PK
string name
}
orders {
int id PK
int user_id FK
string status
}