Markdown 中的 mermaid 语法
· 阅读需 3 分钟
注释: %%
Flowchart 流程图
-
TD表示 "top-down" -
LR表示 "left-right"
节点形状
[矩形](圆角矩形){菱形}用于判断条件((圆))
连接线
-->带箭头的实线---实线==>加粗-.->带箭头的虚线|文字|,在线上添加文字, 或--text--><-->双向箭头
Sequence Diagram 时序图
参与者
participant 名字参与者actor 名字将参与者显示为小人图标
消息交互
A->>B: 文字实现箭头 请求B-->>A: 文字虚线剪头 响应
生命周期
activate A激活deactivate A取消激活 表示一个参与者处于“处理中”的状态->>+激活-->>-取消激活
注释
Note right of A: 文字在 A 的右侧添加注释
扫码登录
flowchart TD
Start((开始)) --> GetQR[PC端请求登录]
GetQR --> ShowQR[展示二维码]
subgraph Mobile [手机端操作]
Scan[用户打开App扫码] --> Auth{是否授权?}
Auth -->|是| AppConfirm[点击确认登录]
Auth -->|否| AppCancel[点击取消]
end
ShowQR -- 轮询/Scoket --> CheckState{检查二维码状态}
Scan -.-> CheckState
AppConfirm -.-> CheckState
CheckState -->|wait| ShowQR
CheckState -->|scan| Prompt[请在手机端确认]
Prompt --> CheckState
CheckState -->|过期| Expired[二维码失效]
Expired --> Refresh[点击刷新] --> GetQR
CheckState -->|登录成功| Success[获取 token/跳转首页]
Success --> End((结束))
subgraph ... end 表示把这一块逻辑框在一起,在视觉上把他们看成一个整体。
sequenceDiagram
autonumber
participant PC as 浏览器
participant Server as 服务器
participant Phone as 手机APP
Note over PC,Server: 阶段一:初始化二维码
PC->>Server: 1. 请求生成二维码(GET /qrcode)
Server-->>PC: 2. 返回二维码ID(UUID)
Note over PC,Server: 阶段二:轮询检测状态
loop 每隔2秒查询一次
PC->>Server: 3. 询问 UUID状态(GET /check?uuid=xyz)
alt 状态: 已扫码(WAITING)
Server-->>PC: keep waiting
else 状态: 已扫码(SACNNED)
Phone->>Server: 4. 扫码请求(POST /scan)
Server-->>PC: scanned(PC显示用户头像)
else 状态:已确认(CONFIRMED)
Phone->>Server: 5. 登录确认(POST /confirm)
Server-->>PC: token(登录凭证)
end
end
Note over PC: 阶段三: 登录完成
PC->>PC: 写入token并跳转首页
- autonumber 表示自动给箭头添加序号
- loop...end 表示循环块
- alt...else...end 表示
if -else if - else - Note over ... 跨越多个参与者的注释,用于划分流程/阶段。