DevToy

Mermaid 圖表

Mermaid 流程圖:節點、決策、標籤與方向

透過穩定的節點 ID、明確的方向、決策標籤、子圖與實用語法檢查,建立更易讀的 Mermaid 流程圖。

發佈於 2026年7月11日 · 更新於 2026年7月11日

Mermaid 流程圖是節點和連線的文字模型。第一行決定圖表類型和方向。flowchart TD 表示由上往下;flowchart LR 表示由左往右。方向應該根據敘事方式選擇,而不是根據螢幕寬度隨意決定。

把節點身分和顯示文字分開

用簡短、穩定的 ID,把人能讀懂的文字放在方括號裡:

flowchart LR
  request[收到請求] --> validate{輸入有效嗎?}
  validate -->|是| process[處理訂單]
  validate -->|否| reject[返回驗證錯誤]

validate 是邊連接使用的 ID;輸入有效嗎? 是顯示標籤。標籤之後可以改,而不會把所有連線一起重寫。穩定的 ID 也更方便後續樣式調整和 diff 審閱。

為分支加上標籤

如果一個菱形節點沒有分支標籤,讀者就要自己猜哪條線是 yes,哪條線是 no。使用 -->|標籤| 為外向邊加上簡短標籤,並保持整張圖裡的術語一致。不要在同一張圖裡混用 true/falseyes/nosuccess/failure

使用子圖表示邊界

子圖可以用來表示責任邊界或執行階段邊界:

flowchart LR
  subgraph Browser
    edit[編輯原始碼] --> render[渲染圖表]
  end
  subgraph LocalStorage
    draft[(草稿)]
  end
  edit --> draft

不要把每兩個節點都包成一個子圖。只有當邊界能傳達責任、信任、部署或生命週期時,它才有價值。

避免常見解析陷阱

Mermaid 的語法會演進,但有幾類錯誤很容易定位。先從最小圖開始,再一次加一條語句。遇到包含標點的標籤時,必要時給標籤加上引號。流程圖裡小寫的 end 具有特殊含義,因此要麼首字母大寫,要麼換個節點文字。另外要注意某些邊的特殊尾部字元,因為 ox 在某些位置會被當作特殊邊形。

為變化而設計

圖太大往往在「變得難維護」之前就已經難以閱讀。最好把系統總覽和細節流程拆開,盡量減少交叉線,並保持抽象層級一致。一個叫「系統」的節點和一堆具體函式節點放在一起,通常表示模型混用了不同層級。

可以在 本地 Mermaid 編輯器 中測試並匯出原始碼。編輯器使用的是站點內建的 Mermaid 版本,所以只要能渲染,就表示在這個執行環境裡確實可用。

相關指南