tutorialhow-toflowchart-softwareautomationdevops

Mermaid 轉流程圖:將 Mermaid 程式碼轉換為可視覺化、可編輯的圖表

將 Mermaid 圖表語法轉換為可視覺化、可編輯的流程圖。了解文字型圖表的不足之處,以及如何兼得兩者的優點。

2 分鐘閱讀

Mermaid 之所以廣受歡迎有其充分的理由。直接在 Markdown 檔案中撰寫圖表語法、將其與程式碼一起提交到版本控制系統,並在 GitHub 或 Confluence 中自動渲染——這個工作流程符合開發人員既有的工作方式。文字型圖表避免了那種透過電子郵件四處傳遞、立即過時的 PowerPoint 檔案問題。

但文字型圖表有其限制。超過一定複雜度後,Mermaid 語法會變得難以管理。渲染的輸出無法互動式編輯。將圖表分享給非技術利害關係人意味著需要設定渲染器,或匯出一張他們無法修改的圖片。當圖表需要從版本控制文件走向簡報、工作坊或協作編輯會議時,Mermaid 的文字格式就成了限制而非優勢。

本指南介紹 Mermaid 的工作原理、何時從 Mermaid 轉移到視覺編輯器,以及如何有效率地將 Mermaid 圖表轉換為可編輯的流程圖。

什麼是 Mermaid

Mermaid 是一個基於 JavaScript 的圖表庫,從文字語法生成圖表。你用純文字撰寫圖表描述,Mermaid 在瀏覽器中將其渲染為 SVG。核心吸引力在於圖表來源與你的文件存在於同一個檔案中,使版本控制變得輕而易舉。

基本的 Mermaid 流程圖如下所示:

flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E

這渲染為一個從上到下的流程圖,帶有起始節點、決策菱形、兩個分支和一個共同終點。語法的可讀性足夠好,熟悉該流程的人無需渲染即可驗證圖表。

Mermaid 支援流程圖以外的多種圖表類型:循序圖、實體關係圖、甘特圖、狀態圖等。流程圖類型(flowchartgraph)是最常用的。

開發人員為什麼使用 Mermaid

文件即程式碼。 工程團隊越來越多地將文件視為程式碼:儲存在同一個代碼庫中,在拉取請求中審查,並與其描述的程式碼一起版本化。Mermaid 圖表原生符合這個工作流程。.md 檔案中的架構圖與其所記錄的程式碼獲得相同的審查流程。

GitHub 原生渲染。 GitHub 自動在 Markdown 檔案中渲染 Mermaid 語法。README 中的 Mermaid 程式碼區塊在代碼庫頁面上顯示為圖表,無需任何額外設定。這使 Mermaid 成為公開或私有代碼庫中圖表的最省力方式。

Confluence 和 Notion 支援。 大多數企業文件平台現在支援 Mermaid 渲染。這將覆蓋範圍從 GitHub 延伸到團隊撰寫內部文件的任何地方。

程式化生成。 Mermaid 語法很容易從程式碼生成。CI 管道可以將依賴關係圖輸出為 Mermaid 語法。腳本可以從設定生成狀態機圖表。這種自動化能力在拖放式圖表工具中很難或根本不可能實現。

可差異比較。 當圖表改變時,文字差異精確顯示了什麼改變了。添加了一個節點、移除了一條邊、更新了一個標籤。視覺圖表工具通常不產生可讀的差異;Mermaid 檔案可以。

Mermaid 語法基礎

了解 Mermaid 語法有助於將圖表轉換為視覺編輯器,因為你需要了解每個元素代表什麼。

節點類型

語法 形狀 使用場景
A[Label] 矩形 流程步驟、動作
A(Label) 圓角矩形 起始/終止(軟邊緣)
A([Label]) 體育場/藥丸形 終結符節點
A{Label} 菱形 決策點
A[(Label)] 圓柱體 資料庫
A((Label)) 圓形 事件、連接符
A>Label] 不對稱形 標籤/注釋

邊類型

| 語法 | 含義 | | ---------- | -------------- | --- | ---------- | | A --> B | 箭頭(開放頭) | | A --- B | 線條,無箭頭 | | A --> | Label | B | 帶標籤箭頭 | | A -.-> B | 虛線箭頭 | | A ==> B | 粗箭頭 | | A --o B | 圓形末端 | | A --x B | 交叉末端 |

子圖

Mermaid 支援將節點分組到子圖中,這在視覺編輯器中對應到泳道或分組區域:

flowchart LR
    subgraph Frontend
        A[User Input] --> B[Validation]
    end
    subgraph Backend
        C[API Handler] --> D[Database]
    end
    B --> C

版面配置方向

Mermaid 支援四種版面配置方向:

  • TDTB:從上到下(預設)
  • BT:從下到上
  • LR:從左到右
  • RL:從右到左

這些直接對應視覺編輯器中的版面配置方向設定。

Mermaid 渲染的限制

Mermaid 的文字本質創造了視覺編輯器所解決的特定限制。

無互動式編輯。 你無法點擊節點並拖動它。如果自動版面配置將節點放在看起來令人困惑的地方,你必須重寫語法以影響版面配置。Mermaid 提供有限的版面配置控制——子圖有所幫助,但複雜的圖表通常渲染出帶有交叉邊和尷尬節點位置的結果,你無法直接修復。

複雜圖表的版面配置是不確定的。 Mermaid 使用自動圖形版面配置演算法。對於簡單的圖表,結果是可預測的。對於帶有許多節點和邊的複雜圖表,渲染的版面配置可能難以控制,即使語法正確也可能產生視覺上令人困惑的輸出。

渲染需要工具。 要與不具技術背景或無法存取 Mermaid 渲染器的人分享 Mermaid 圖表,你必須先將其匯出為圖片。圖表的動態、源碼連結性質就此消失。

協作有限。 兩個人無法同時編輯 Mermaid 圖表並即時看到彼此的更改。基於 Git 的協作透過拉取請求非同步進行,而不像視覺編輯器協作那樣同步。

複雜圖表難以維護。 20 個節點的 Mermaid 流程圖是可管理的。帶有許多子圖和邊標籤的 60 個節點圖表,作為文字變得難以閱讀和修改。尋找特定邊進行更新需要在腦海中將語法映射到視覺結構。

樣式有限。 Mermaid 透過 classDefstyle 指令支援基本樣式,但專用圖表工具中可用的視覺自訂——自訂節點顏色、字體、間距、線條樣式——受到更多限制。

何時需要視覺編輯器

Mermaid 是當圖表存在於文件中、由開發人員維護並在受支援的環境中渲染時的正確工具。視覺編輯器更適合以下情況:

呈現給非技術受眾。 利害關係人簡報、高層審查和面向客戶的文件需要精美的視覺效果。視覺編輯器提供 Mermaid 無法匹配的版面配置、樣式和視覺層次的控制。

協作工作坊。 在技術和非技術參與者混合的流程規劃會議中,視覺工具效果更好。每個人都可以看到圖表並做出貢獻,而不需要了解 Mermaid 語法。

具有自訂版面配置的複雜圖表。 當自動版面配置產生令人困惑的結果,而你需要精確控制節點放置時,視覺編輯器提供了 Mermaid 無法提供的功能。

與非開發人員快速迭代。 如果流程負責人需要審查和標注流程圖,發送 Mermaid 檔案是行不通的。帶有匯出和分享功能的視覺編輯器更為實用。

要列印或嵌入 Word/PDF 的圖表。 視覺編輯器在這些情境中比 Mermaid 的 SVG 輸出產出更高品質的匯出。

轉換工作流程

將 Mermaid 語法轉換為視覺流程圖遵循可預測的流程:

步驟一:驗證你的 Mermaid 語法

轉換前,確認語法有效且渲染正確。無效語法可能導致部分或不正確的轉換。將 Mermaid 程式碼貼入渲染器以驗證圖表看起來是預期的樣子。

步驟二:識別圖表結構

注意關鍵元素:

  • 節點類型(矩形、菱形、圓柱體)
  • 邊標籤及其意義
  • 子圖分組
  • 版面配置方向

這有助於你驗證轉換後的輸出與原始內容匹配。

步驟三:使用轉換工具進行轉換

將 Mermaid 語法貼入支援 Mermaid 匯入的工具。工具解析語法並生成視覺圖表。

步驟四:調整版面配置

自動轉換保留了圖表結構(節點、邊、標籤),但可能不能完全複現你原有的視覺版面配置。為清晰度調整節點位置——對相關節點分組、減少邊交叉、對齊代表並行流程的節點。

┌──────────────────────┐
│   Paste Mermaid code │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│  AI parses syntax,   │
│  generates nodes     │
│  and edges           │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│  Visual diagram      │
│  appears in editor   │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│  Adjust layout,      │
│  refine styling,     │
│  add missing context │
└──────────────────────┘

步驟五:豐富視覺圖表

Mermaid 圖表通常只攜帶最少的視覺資訊——基本節點形狀和邊標籤。在視覺編輯器中,添加 Mermaid 無法顯示的內容:

  • 按流程階段或團隊所有權進行顏色編碼
  • 解釋決策標準的注釋
  • 顯示泳道的分組
  • 清晰的起始和終止終結符

步驟六:匯出或分享

將完成的圖表匯出為 PNG 用於簡報,或直接在文件中嵌入可分享的連結。

往返編輯

常見的工作流程是使用 Mermaid 進行初始圖表建立和版本控制,然後轉換為視覺編輯器用於演示或利害關係人審查,並可能轉回 Mermaid 以繼續在文件中維護。

當視覺編輯器支援 Mermaid 匯出時,這種往返是可行的:

程式碼 → Mermaid 語法 → 視覺編輯器 → 精緻圖表
                                    → Mermaid 匯出 → 回到文件中

並非每個視覺編輯器都支援 Mermaid 匯出。當往返編輯很重要時,在決定使用它之前,驗證工具是否可以匯出回 Mermaid 語法。否則,維護兩個獨立的表示——代碼庫中的 Mermaid,演示工具中的視覺圖表——會產生同步問題。

常見的轉換挑戰

節點 ID 變得無關緊要。 Mermaid 使用確定連接端點的節點識別符(ABuserInput 等)。視覺編輯器不需要這些識別符——連接是在視覺元素之間繪製的。轉換正確地將識別符映射到節點,但你不再需要追蹤它們。

子圖邊界可能不對應泳道。 Mermaid 子圖是一種分組機制;視覺編輯器可能根據其實現將它們渲染為帶邊框的區域、泳道或組。審查子圖的視覺表示是否與預期含義相符。

邊標籤需要驗證。 帶標籤的邊(Mermaid 中的 |Label| 語法)通常攜帶關鍵的決策標準——「是/否」、「已批准/已拒絕」、「成功/失敗」。驗證這些標籤是否被保留並在轉換後的圖表中清晰可見。

複雜的邊路由。 Mermaid 使用自動邊路由。在大型圖表中,邊有時以難以閱讀的方式交叉。視覺編輯器讓你可以手動重新路由邊,這通常會發現你需要重新組織版面配置而不只是重新路由個別邊。

Classdefs 和樣式。 Mermaid 的 classDef 樣式規則不直接映射到視覺編輯器樣式。你需要在視覺編輯器的格式中重新套用樣式。將此視為建立更有思維的視覺層次的機會,而不是試圖精確複製 Mermaid 樣式。

使用 Flowova 轉換 Mermaid 圖表

Flowova 的 Mermaid 轉流程圖工具處理語法解析和視覺生成:

  1. 將你的 Mermaid flowchartgraph 語法貼入工具
  2. Flowova 解析語法,識別節點和邊,並渲染視覺圖表
  3. 圖表在編輯器中開啟,你可以在那裡調整版面配置、修改標籤並添加樣式
  4. 將其匯出為 PNG 用於分享,或匯出為 Mermaid 語法用於往返文件更新

編輯器支援所有標準 Mermaid 節點形狀和邊類型。子圖渲染為你可以重新定位和調整大小的分組區域。邊標籤被保留且可編輯。

結語

Mermaid 和視覺流程圖編輯器解決不同的問題。Mermaid 擅長於存在於版本控制中、由開發人員維護並在文件平台中自動渲染的圖表。視覺編輯器擅長於協作建立、利害關係人演示和需要精確版面配置控制的複雜圖表。

在兩者之間轉換現在已經足夠快速,你不必永久選擇其中一個。當 Mermaid 是自然環境時從 Mermaid 開始,當出現演示或協作需求時轉換為視覺編輯器,如果持續的文件維護需要則匯出回 Mermaid。目標是在圖表生命週期的每個階段使用合適的工具。

相關資源

相關文章:

工具:

相關文章

準備好試用 AI 流程圖產生器了嗎?

加入數萬名使用 Flowova 視覺化想法的專業人士。幾秒鐘內開始用 AI 建立流程圖。

免費開始