Skip to content

Mermaid代码转图表

超级流程图:博客部署全链路 (Flowchart)

演示亮点

  • 子图 (Subgraph):把不同环境(本地、云端)框起来。
  • 样式定制:给关键节点上色。
  • 不同形状:数据库圆柱、判断菱形、圆角矩形。

代码段

graph TD
    %% 定义样式类
    classDef plain fill:#fff,stroke:#333,stroke-width:1px;
    classDef highlight fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
    classDef success fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
    classDef error fill:#ffebee,stroke:#c62828,stroke-width:2px;

    %% 修复点:标题加了双引号 "..."
    subgraph Local ["💻 本地开发环境 (Local)"]
        direction TB
        A([开始写作]) --> B[Typora 编辑 Markdown]
        B --> C{是否包含图片?}
        C -- YES --> D[存入 R2 图床]
        C -- NO --> E[Git Commit]
        D --> E
        E --> F[Git Push to GitHub]
    end

    %% 修复点:标题加了双引号 "..."
    subgraph Cloud ["☁️ 云端构建环境 (Cloud)"]
        direction TB
        F --> G(GitHub Webhook)
        G --> H[Cloudflare Pages 触发]
        H --> I{构建检查}
        
        I -- 成功 --> J[拉取历史 git fetch]
        I -- 失败 --> K[发送邮件报警]
        
        J --> L[VitePress Build]
        L --> M[(静态文件 Dist)]
    end

    %% 最终发布
    M --> N{{发布上线 pandac-blog.com}}

    %% 应用样式
    class A,N highlight;
    class M success;
    class K error;
    class B,D,F plain;

演示效果

复杂时序图:私密日记访问逻辑 (Sequence Diagram)

演示亮点

  • 生命线激活activate/deactivate 显示处理时间。
  • 逻辑分支alt/else 处理成功和失败的情况。
  • 注释Note right of 添加额外说明。

代码段

复杂时序图:私密日记访问逻辑 (Sequence Diagram)
演示亮点:

生命线激活:activate/deactivate 显示处理时间。

逻辑分支:alt/else 处理成功和失败的情况。

注释:Note right of 添加额外说明。

代码段

sequenceDiagram
    autonumber
    actor User as 访客(你)
    participant CF as Cloudflare Zero Trust
    participant Email as Gmail 邮箱
    participant Blog as 博客服务器

    Note over User, Blog: 访问私密页面流程

    User->>CF: 访问 /docs/private/
    activate CF
    
    CF->>CF: 检查本地 Cookie
    
    alt Cookie 有效
        CF-->>User: 200 OK (直接放行)
    else Cookie 过期/不存在
        CF-->>User: 302 重定向到登录页
        deactivate CF
        
        User->>CF: 输入邮箱地址
        activate CF
        CF->>Email: 发送 6 位验证码
        deactivate CF
        
        Email-->>User: 收到验证码 (123456)
        User->>CF: 输入验证码提交
        
        activate CF
        alt 验证码正确
            CF->>CF: 生成 Session Token
            CF-->>User: 验证成功,跳转回原链接
        else 验证码错误
            CF-->>User: 提示错误,禁止访问 🚫
        end
        deactivate CF
    end

    User->>Blog: 获取日记内容
    activate Blog
    Blog-->>User: 返回 Markdown 渲染页面
    deactivate Blog

演示效果

项目管理甘特图:毕业设计进度 (Gantt)

演示亮点

  • 状态标记done (已完成), active (进行中), crit (关键路径)。
  • 依赖关系after a1 表示必须等上一项做完。
  • 多板块:分为调研、开发、论文三个阶段。

代码段

gantt
    title 2026 毕业设计进度计划表
    dateFormat  YYYY-MM-DD
    axisFormat  %m-%d
    excludes    weekends

    section前期调研
    选题确定           :done,    des1, 2025-11-01, 2025-11-10
    文献综述           :done,    des2, after des1, 5d
    开题报告撰写       :active,  des3, after des2, 5d

    section 系统开发
    数据库设计         :crit, active, dev1, 2025-12-01, 3d
    后端 API 开发      :         dev2, after dev1, 10d
    前端 Vue3 搭建     :         dev3, after dev1, 10d
    联调与测试         :         dev4, after dev2, 5d

    section 论文撰写
    初稿撰写           :         doc1, after dev4, 7d
    论文润色           :         doc2, after doc1, 3d
    最终答辩           :crit,    2026-03-01, 1d

演示效果

你的技能树思维导图 (Mindmap)

演示亮点

  • 图标支持:使用 ::icon(fa fa-xxx) 添加图标(需网页端支持 FontAwesome,如果没图标就是纯文字)。
  • 层级展开:展示你的多维能力。

代码段

mindmap
  root((PandaC))
    💻 CS 专业
      Web 开发
        Vue3 / VitePress
        HTML / CSS
      后端基础
        Java
        Python (Excel自动化)
    📷 摄影师
      器材
        Action 5
        ZVE10
      后期
        Lightroom
        Photoshop
    🇬🇧 语言能力
      新概念英语
        翻译训练
        背诵
    🚀 个人成长
      博客搭建
      时间管理

演示效果

面向对象类图:电商系统设计 (Class Diagram)

演示亮点

  • 关系表达:继承 (<|--)、聚合 (o--)、关联 (-->)。
  • 方法可见性+ (public), - (private)。
  • 泛型List<Item>

代码段

classDiagram
    %% 用户与订单的关系
    User "1" --> "*" Order : 下单
    Order "1" o-- "*" OrderItem : 包含
    
    %% 类的定义
    class User {
        +String username
        -String password
        +login()
        +logout()
    }

    class Order {
        +int orderId
        +Date createTime
        +float totalAmount
        +pay()
    }

    class Product {
        <<Interface>>
        +String name
        +float price
    }

    class Book {
        +String author
        +String isbn
    }

    class Camera {
        +String sensorType
        +int megapixels
    }

    %% 继承关系
    Product <|-- Book
    Product <|-- Camera

演示效果

日常生活“轻量级”图表

不做项目的时候,我们也可以用 Mermaid 来做决策辅助、状态记录、简单计划。这些图不需要复杂的逻辑,主打一个“清晰直观”。

决策树:今天中午吃什么?(Flowchart)

这是最简单的逻辑图,治好选择困难症

代码段

graph TD
    Start((饿了...)) --> Check{兜里有钱吗?}
    
    Check -- 有钱 --> Rich[吃顿好的!]
    Rich --> Choice1{想吃辣吗?}
    Choice1 -- 想 --> A[重庆火锅]
    Choice1 -- 不想 --> B[日式烤肉]
    
    Check -- 没钱 --> Poor[省吃俭用]
    Poor --> Choice2{想出门吗?}
    Choice2 -- 懒得动 --> C[泡面/外卖]
    Choice2 -- 能动 --> D[去食堂]

演示效果


状态机:大学生的一天精神状态 (State Diagram)

用来描述一个不断循环的过程,或者不同状态之间的切换

代码段

stateDiagram-v2
    [*] --> 睡觉
    睡觉 --> 起床困难: 闹钟响了
    起床困难 --> 早八上课: 被舍友拖走
    早八上课 --> 困迷糊: 听不懂
    困迷糊 --> 精神焕发: 下课干饭!
    精神焕发 --> 玩手机
    玩手机 --> 只是玩一小会儿
    只是玩一小会儿 --> 玩手机: 循环
    玩手机 --> 睡觉: 凌晨2点

演示效果


购物纠结图:要不要买新镜头?(Mindmap)

用思维导图列出利弊,这在写“好物分享”或“购物决策”类文章时非常好用

代码段

mindmap
  root((要买索尼新镜头吗?))
    😇 买! (Pros)
      画质提升
      大光圈虚化爽
      可以拍私房(划掉)
      督促自己出门
    😈 不买! (Cons)
      太贵了 (5000+)
      下个月要吃土
      现在的狗头也能用
      背着太重

演示效果


旅行路线图:周末特种兵旅游 (Journey)

Mermaid 专门有一个 journey 类型,用来画用户体验旅程,拿来画旅游计划也意外地合适! (注:评分 1-5 代表心情指数)

代码段

journey
    title 重庆特种兵一日游计划
    section 上午
      高铁抵达: 5: 兴奋
      解放碑打卡: 4: 人有点多
      吃火锅: 5: 爽!
    section 下午
      爬十八梯: 2: 腿断了
      坐长江索道: 3: 排队2小时
    section 晚上
      洪崖洞夜景: 5: 出片!
      回酒店修图: 4: 累并快乐着

演示效果


饼图 (Pie Chart) - 你的手机存储空间

语法极其简单,特别适合展示“占比”

代码段

pie title 📱 手机 256G 存储空间分布
    "照片 & 视频" : 120
    "原神/王者荣耀" : 45
    "微信聊天记录" : 30
    "学习资料(PDF)" : 5
    "系统占用" : 20
    "剩余空间" : 36

演示效果


柱状图 (XY Chart) - 一周代码行数统计

注意: 这是 xychart-beta 语法,如果 Typora 没显示出来,说明本地 Mermaid 版本还不够新,但在你的博客网页上应该能显示

代码段

xychart-beta
    title "💻 本周代码编写量 (行)"
    x-axis ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
    y-axis "Lines of Code" 0 --> 1000
    bar [150, 300, 800, 200, 600, 50, 0]

演示效果


折线图 (Line Chart) - 博客访问量趋势

同样属于 xychart-beta,只需把 bar 改成 line

代码段

xychart-beta
    title "📈 博客每日访问量 (PV)"
    x-axis ["1月1日", "1月2日", "1月3日", "1月4日", "1月5日"]
    y-axis "Views" 0 --> 500
    line [50, 120, 260, 340, 480]

演示效果


Git 分支图 (GitGraph) - 项目开发历史

作为 CS 学生,这个图简直是神器!用来在文档里讲解 Git 操作流程(比如 Merge, Cherry-pick)非常直观,不用截图了。

代码段

gitGraph
    commit id: "初始化"
    commit id: "搭建框架"
    branch dev
    checkout dev
    commit id: "开发首页"
    commit id: "开发关于页"
    checkout main
    merge dev id: "v1.0 发布"
    commit id: "修复 Bug"

演示效果

基于 VitePress 搭建 | 记录生活与代码