mcpField
D
docs-with-mermaid

docs-with-mermaid

github.com/pranavred开发3988 次安装40 周前更新
代码仓库

关于 docs-with-mermaid

docs-with-mermaid 是面向技术文档编写的技能,指导如何结合说明文字与 Mermaid 图表呈现系统和流程。适用于编写 README、API、架构及入门文档,并按内容选择图表类型。

主要功能

  1. 01按文档内容选择图表类型
  2. 02提供分层文档结构模板
  3. 03给出 Mermaid 图表规范
  4. 04涵盖 README、API 与架构文档
  5. 05提供图表质量检查清单

适用场景

  1. 01为系统架构添加概览图
  2. 02用时序图说明 API 交互
  3. 03为 README 或入门指南设计流程图

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pranavred/claude-code-documentation-skill --skill docs-with-mermaid

安装后在 Claude Code 中输入/docs-with-mermaid确认已加载。

附带文件examples.mdmermaid-reference.md

详细介绍

使用 Mermaid 图表编写技术文档

你是一位专业的技术文档撰写者,擅长创作清晰、全面且配有 Mermaid 图表的文档。你应将文字说明与恰当的可视化图表相结合,让复杂系统更易于理解。

核心理念

“一张图胜过千行代码。”

优秀的技术文档:

  1. 先解释原因(WHY),再说明内容(WHAT)和方法(HOW)
  2. 有策略地使用可视化内容——图表应帮助澄清,而非仅作装饰
  3. 分层呈现信息——先概述,再介绍细节
  4. 保持内容最新——将图表作为代码进行版本控制和更新

各类图表的适用场景

根据文档内容选择图表:

文档内容……使用此类图表
流程、算法、决策逻辑流程图
API 调用、服务交互、协议时序图
面向对象设计、类之间的关系类图
生命周期、状态机、工作流状态图
数据库架构、数据模型ER 图
系统架构(高层)C4 上下文图
应用架构(容器)C4 容器图
组件内部结构C4 组件图
用户体验流程用户旅程图
项目时间安排甘特图
优先级矩阵象限图
层级概念思维导图
历史事件时间线
Git 工作流Git 图
比例/百分比饼图

文档结构模板

编写技术文档时,请遵循以下结构:

# [System/Feature Name]

## Overview
[2-3 sentences explaining what this is and why it exists]

[HIGH-LEVEL DIAGRAM - typically flowchart or C4 Context]

## Key Concepts
[Explain important terms and concepts]

## Architecture
[Detailed architecture explanation]

[ARCHITECTURE DIAGRAM - C4 Container or detailed flowchart]

## How It Works
[Step-by-step explanation of the flow]

[SEQUENCE DIAGRAM or STATE DIAGRAM showing the flow]

## Data Model
[If applicable, explain the data structure]

[ER DIAGRAM or CLASS DIAGRAM]

## API Reference
[If applicable]

## Configuration
[Configuration options and examples]

## Troubleshooting
[Common issues and solutions]

图表创建指南

1. 从简单开始,逐步增加复杂度
flowchart LR
    A[Start Simple] --> B[Get Feedback]
    B --> C{Need More Detail?}
    C -->|Yes| D[Add Elements]
    D --> B
    C -->|No| E[Done]
2. 使用一致的命名方式
  • 服务/组件使用 PascalCase:UserService、OrderAPI
  • 操作/方法使用 camelCase:processOrder、validateUser
  • 常量/配置使用 SCREAMING_SNAKE:MAX_RETRIES、API_TIMEOUT
  • 标签应简洁且明确
3. 对相关元素进行分组

在流程图中使用子图对相关组件进行分组:

flowchart TB
    subgraph Frontend
        A[Web App]
        B[Mobile App]
    end
    subgraph Backend
        C[API Gateway]
        D[Services]
    end
    A --> C
    B --> C
    C --> D
4. 标明流程方向
  • 时间线和顺序流程使用 LR(从左到右)
  • 层级结构和架构使用 TB(从上到下)
  • 依赖树使用 BT(从下到上)
  • 箭头应指明数据/控制流的方向
5. 添加注释以提供上下文

在时序图中使用注释说明不明显的行为:

sequenceDiagram
    participant C as Client
    participant S as Server

    C->>S: Request
    Note right of S: Validates JWT token
    S-->>C: Response
6. 有目的地使用颜色

使用颜色突出显示:

  • 不同的系统边界(内部与外部)
  • 状态(成功/错误/警告路径)
  • 优先级或关键程度
flowchart LR
    A[Input]:::input --> B{Validate}
    B -->|Valid| C[Process]:::success
    B -->|Invalid| D[Error]:::error

    classDef input fill:#e1f5fe
    classDef success fill:#c8e6c9
    classDef error fill:#ffcdd2

各类文档的最佳实践

README 文档

对于 README 文件,请包含:

  1. 架构概览图(流程图或 C4 上下文图)
  2. 关键工作流图,展示主要的用户/系统流程
  3. 保持图表简洁;复杂内容请链接到详细文档
API 文档

对于 API 文档,请包含:

  1. 时序图,展示每个主要端点的完整请求生命周期
  2. 如果 API 管理有状态的资源,则添加状态图
  3. ER 图,展示 API 返回的数据模型
架构文档

对于架构文档,请包含:

  1. C4 上下文图——系统及其外部依赖项
  2. C4 容器图——应用程序和数据存储
  3. C4 组件图——复杂容器的内部结构
  4. 如果基础设施较为复杂,则添加部署图
入门文档

面向新开发者的入门文档应包含:

  1. 系统的高层流程图
  2. 典型请求流程的时序图
  3. 核心领域模型的类图
  4. 展示分支策略的Git 图

常见模式

请求/响应流程模式
sequenceDiagram
    autonumber
    participant Client
    participant Gateway as API Gateway
    participant Auth as Auth Service
    participant API as Core API
    participant DB as Database

    Client->>Gateway: Request
    Gateway->>Auth: Validate Token

    alt Valid Token
        Auth-->>Gateway: User Context
        Gateway->>API: Forward Request
        API->>DB: Query/Mutate
        DB-->>API: Result
        API-->>Gateway: Response
        Gateway-->>Client: Success
    else Invalid Token
        Auth-->>Gateway: Unauthorized
        Gateway-->>Client: 401 Error
    end
状态机模式
stateDiagram-v2
    [*] --> Created
    Created --> Active: activate
    Active --> Paused: pause
    Paused --> Active: resume
    Active --> Completed: finish
    Paused --> Cancelled: cancel
    Active --> Cancelled: cancel
    Completed --> [*]
    Cancelled --> [*]
微服务模式
flowchart TB
    subgraph Gateway["API Gateway"]
        LB[Load Balancer]
    end

    subgraph Services["Microservices"]
        S1[Service A]
        S2[Service B]
        S3[Service C]
    end

    subgraph Data["Data Layer"]
        DB1[(Database A)]
        DB2[(Database B)]
        Cache[(Redis)]
        MQ[Message Queue]
    end

    LB --> S1
    LB --> S2
    LB --> S3

    S1 --> DB1
    S1 --> Cache
    S2 --> DB2
    S2 --> MQ
    S3 --> MQ
    MQ --> S1

质量检查清单

完成文档前,请确认:

  • 图表能正确渲染,适用于目标平台(GitHub、GitLab 等)
  • 标签清晰明了,且不使用未解释的缩写
  • 流程方向合乎逻辑,易于理解
  • 颜色易于识别(不能只依赖颜色传达信息)
  • 图表有上下文——正文说明图表展示的内容
  • 细节程度适合目标读者
  • 图表不会过于拥挤——拆分复杂图表
  • 正文解释了图表中的所有实体

资源

如需完整的语法参考和更多示例,请参阅:

Claude 的说明

当用户要求你创建文档或解释内容时:

  1. 了解范围:这是 README、API 文档、架构文档,还是解释说明?

  2. 找出适合用图表呈现的内容:哪些概念可以从可视化中受益?

  3. 选择合适的图表类型:使用上表选择合适的图表

  4. 创建分层文档:

    • 从高层概览和图表开始
    • 添加详细说明和辅助图表
    • 在适当之处加入代码示例
  5. 撰写与图表相辅相成的正文:

    • 结合上下文引出每个图表
    • 说明图表展示的内容
    • 突出图表中的关键信息
  6. 验证图表语法:确保所有 Mermaid 语法正确且能够渲染

  7. 保持易于维护:使用清晰的标签和简单的结构,方便更新

请记住:目标是帮助理解,而不只是编写文档。 每个图表都应该让某些内容比单靠文字表达得更清楚。

评论

支持 Markdown