
你是不是也跟我一樣,曾經為了畫一份簡單的流程圖,在 Visio 或 draw.io 裡奮戰半天,光是「對齊」線條跟方塊就搞到心累?或者,你好不容易畫好了,主管或客戶卻說:「這個步驟要往前調」、「這裡要加一個判斷式」,然後你... 就得全部重拉一次!
我還記得剛當上部落客新手時,想畫一張內容規劃的心智圖,結果光是研究軟體介面就花了一整個下午。直到我遇見了 Mermaid,這個簡直像魔法一樣的工具,它徹底改變了我對「畫圖」這件事的想像。
Mermaid 允許你「用打字的」來畫圖。你沒看錯,就是像寫文章一樣,用簡單的文字語法來描述圖表的結構,它就會自動幫你生成精美、專業的圖表。而 Mermaid.live 就是它的官方線上編輯器,一個讓你即時預覽、隨時修改的完美遊樂場。
這篇文章會是一份(可能有點囉嗦,但保證深入的)7000 字完整教學,我會用最有溫度、最白話的方式,帶你從零開始,一步步掌握 Mermaid.live 的所有精華。無論你是部落客、專案經理、工程師、學生,或只是單純想提升工作效率,這篇文章都能讓你功力大增!
- Mermaid 是什麼?為什麼它能解放你的生產力?
- 初探 Mermaid.live:5 分鐘快速掌握編輯器介面
- 【核心圖表 I】流程圖 (Flowchart):一切的基礎
- 【核心圖表 II】循序圖 (Sequence Diagram):釐清互動順序
- 【核心圖表 III】甘特圖 (Gantt Chart):專案管理神器
- 【核心圖表 IV】心智圖 (Mindmap):腦力激盪必備
- 【核心圖表 V】圓餅圖 (Pie Chart):快速呈現數據
- 更多強大圖表巡禮(快速入門)
- 進階技巧:讓你的圖表更上一層樓
- 實戰應用:我如何用 Mermaid 規劃這篇文章?
- 常見問題 FAQ
- 結論:別再「拉」圖了,開始「寫」圖吧!
Mermaid 是什麼?為什麼它能解放你的生產力?
Mermaid 簡單來說,就是一種「標記語言 (Markup Language)」,就像你可能聽過的 Markdown 一樣。但它的目的不是排版文字,而是定義圖表。
你不需要關心方塊A要放在 (x, y) 座標 (100, 200),線條B要怎麼拉才不會歪掉。你只需要告訴 Mermaid:「我有一個方塊A,它指向方塊B」,像這樣:
graph TD
A --> BMermaid 就會自動幫你生成一張 A 指向 B 的流程圖。就是這麼簡單!
Mermaid vs 傳統繪圖軟體
你可能會想,用拉的不是很直覺嗎?為什麼要沒事找事學「寫程式」來畫圖?一開始我也這麼覺得,但相信我,一旦你跨過了那個坎,你會發現新世界。我幫你整理了這兩者的關鍵差異:
| 比較項目 | 傳統繪圖軟體 (如 Visio, draw.io) | Mermaid (文字驅動) |
|---|---|---|
| 製作方式 | 手動拖拉、對齊、連線(WYSIWYG - 所見即所得) | 撰寫文字語法,由程式自動生成圖表 |
| 修改效率 | 非常低。移動一個節點,可能要重拉所有線條 | 極高。只需修改文字順序或關係即可 |
| 版本控制 | 困難。檔案是二進位檔,無法追蹤「改了哪裡」 | 極佳。本身就是純文字,完美整合 Git 等工具 |
| 學習曲線 | 低(工具操作),但精通排版美感很難 | 中(語法學習),但一旦學會,產出速度極快 |
| 一致性 | 低。每次畫的風格、間距可能都不同 | 高。風格由主題 (Theme) 控制,永遠一致 |
| 整合性 | 低。通常是匯出成圖片再貼上 | 高。許多平台 (GitHub, Notion, GitLab) 原生支援 |
Mermaid 最大的魔力在於「修改效率」。當你的流程圖有 50 個節點時,傳統軟體要新增一個步驟,簡直是災難;但用 Mermaid,你可能只需要在兩行文字之間,插入一行新的文字,圖表就自動更新了,排版依然完美。
什麼是 Mermaid.live?
Mermaid.live 就是 Mermaid 官方提供的「線上即時編輯器」。
Mermaid 本身只是一套「語法規則」,你需要在支援它的地方(例如安裝了外掛的 VS Code,或是 Notion 筆記)才能把它「渲染」成圖。而 Mermaid.live 就像一個線上的沙盒 (Sandbox) 或遊樂場,它提供你:
- ✓一個寫語法的地方(左邊)
- ✓一個即時預覽圖表的地方(右邊)
- ✓一個可以調整設定、更換主題的地方
- ✓一個可以快速匯出成 SVG/PNG 圖片的地方
對於我們部落客或一般使用者來說,Mermaid.live 是學習和製作圖表的最佳起點。你不需要安裝任何軟體,打開瀏覽器就能開始玩!
準備好了嗎?讓我們來啟動這個魔法工具吧!
初探 Mermaid.live:5 分鐘快速掌握編輯器介面
當你點開 Mermaid.live,會看到一個非常簡潔的介面。別看它簡單,功能可強大了。我把它分成四大區域,讓你一次快速掌握:
1. 程式碼編輯區 (Code)
這就是你的「畫布」... 呃,應該說是你的「稿紙」。你所有的 Mermaid 語法都會在這裡輸入。它會自動幫你上色,讓語法更容易閱讀。最棒的是,你每打一個字,右邊的預覽區都會「即時」更新!
2. 即時預覽區 (Preview)
這裡是魔法發生的地方!你在左邊寫的「咒語」(語法),會在這裡變成活生生的圖表。這讓你能量「立即」看到結果,並快速修正錯誤。
3. 設定區 (Configuration)
這是控制圖表「外觀」的核心。點擊左側欄的「Configuration」圖示,你會看到:
- Theme: 選擇圖表的主題。預設是
default,我個人也很喜歡forest(森林綠) 和neutral(中性灰)。你可以玩玩看! - Theme Variables: 更進階的設定,你可以在這裡用 JSON 格式微調主題的顏色、字體大小等。新手可以先跳過。
(後面的章節會再教大家如何用 %%{init}%% 指令在程式碼中直接修改主題喔!)
4. 動作區 (Actions)
當你對圖表滿意後,點擊左側欄的「Actions」圖示,這裡提供了超實用的功能:
- Download SVG: 匯出成 SVG 向量檔。這是最推薦的格式,因為它可以無限放大而不失真,而且檔案超小!部落格使用 SVG 可以讓畫質超清晰。
- Download PNG: 匯出成 PNG 點陣圖。如果你需要固定的圖片尺寸,這很方便。
- Copy Markdown: 這會產生一段 Markdown 語法,讓你直接貼到支援 Mermaid 的平台(如 GitHub)。
- Copy Image: 直接把圖表複製到剪貼簿。
【核心圖表 I】流程圖 (Flowchart):一切的基礎
流程圖(在 Mermaid 裡也常被稱為 `graph`)是我們最常用,也是 Mermaid 語法的基礎。學會了它,其他圖表就觸類旁通了。
基本結構:方向與節點
所有 Mermaid 流程圖都以 graph (或 flowchart) 這個關鍵字開頭,接著是「方向」。
TD或TB:Top Down / Top to Bottom (由上到下,最常用)LR:Left to Right (由左到右)BT:Bottom to Top (由下到上)RL:Right to Left (由右到左)
接著,你只需要定義「節點」和「連結」。
graph TD
A --> B這段程式碼的意思是:
graph TD:宣告一張「由上到下」的流程圖。A --> B:建立一個節點 A,和一個節點 B,並用一個箭頭 (-->) 從 A 連接到 B。
就這麼簡單!如果你想多加幾個步驟呢?
graph TD
A[開始] --> B(處理中)
B --> C{判斷}
C --> D[結束]
C --> E[另一個結束]是不是很像在寫筆記?我們馬上就畫出了一個有判斷分支的流程圖!
節點形狀大集合
Mermaid 提供了多種節點形狀,讓你的流程圖更語意化。關鍵在於你用什麼「括號」把文字包起來:
graph TD
id1[我是方形]
id2(我是圓角矩形)
id3((我是圓形))
id4{我是菱形 (判斷)}
id5>我是不對稱矩形]
id6{{我是六邊形}}
id7[/我是平行四邊形/]
id8[\我是梯形\]
id9(( )) id1 --> id2 --> id3 --> id4
id4 --> id5 --> id6 --> id7 --> id8 --> id9重點提醒: id1, id2 這些是節點的「ID」,在程式碼中是唯一的,用來識別。而 [我是方形] 裡的文字,才是圖表上「顯示」的內容。如果顯示文字不包含特殊符號,你也可以省略 ID,Mermaid 會自動用文字當 ID,但建議一律使用 ID,管理上更方便。
箭頭樣式與文字
不只節點,線條(連結)也可以有很多變化:
graph TD
A --> B[實線箭頭]
A --- C[實線無箭頭]
A -.-> D[虛線箭頭]
A -.- E[虛線無箭頭]
A ==> F[粗線箭頭]
A -- 隨便加文字 --> G[在線上加文字]
A --> |在線上加標籤| H
A -- 綠色 --> I
A -- 紅色 --> J
%% 這邊是進階的「樣式」
%% 我們用 linkStyle 定義第 8 條線 (I) 和第 9 條線 (J)
linkStyle 7 stroke:#06c755,stroke-width:2px
linkStyle 8 stroke:#ff0000,stroke-width:4px,stroke-dasharray: 5 5(關於 linkStyle 的進階用法,我們在後面的章節會詳細說明!)
子圖表 (Subgraph):讓結構更清晰
當你的流程圖很複雜時,可以用 subgraph 把相關的節點群組起來,就像幫它們加一個「外框」分類。
graph TD
subgraph 階段一:準備
A[收集資料] --> B(分析需求)
end
subgraph 階段二:執行
direction LR %% 子圖表內可以獨立定義方向!
B --> C{開始執行}
C --> D[執行 A 計畫]
C --> E[執行 B 計畫]
end
subgraph 階段三:結案
D --> F(產出報告)
E --> F
end
F --> G((結束))透過 subgraph,整個流程的階段性一目了然,是不是超級清楚?
【核心圖表 II】循序圖 (Sequence Diagram):釐清互動順序
循序圖(時序圖)是工程師的最愛,但它其實也非常適合用來說明「角色互動」的過程。例如,描述一個「顧客點餐」的流程:
循序圖的核心語法是 sequenceDiagram。
參與者 (Participant)
你首先要定義有哪些「參與者」。
sequenceDiagram
participant C as 顧客
participant W as 服務生
participant K as 廚房participant 是關鍵字,C, W, K 是 ID,as 後面接的是顯示的名稱。
訊息傳遞 (Message)
循序圖的精髓在於訊息。箭頭代表訊息的流向和類型:
->:實線無箭頭(通常不用)-->:虛線箭頭(回應、非同步)->>:實線箭頭(請求、同步)-->>:虛線有箭頭(很少用)
讓我們把點餐流程串起來:
sequenceDiagram
autonumber %% 自動加上編號
participant C as 顧客
participant W as 服務生
participant K as 廚房
C -) W: 我要一份 A 餐
%% -) 代表顧客「自己」的動作,線連回自己
%% 你也可以用 C ->> C: (思考要點什麼)
W ->> C: 好的,請稍候
W ->> K: A 餐一份
K -->> W: A 餐好了!
W -->> C: 您的 A 餐來了!啟用與停用 (Activate)
有時候,你想強調某個角色「正在處理中」,這時可以用 activate 和 deactivate 來顯示「生命線」的啟用狀態。
sequenceDiagram
participant C as 顧客
participant W as 服務生
participant K as 廚房
C ->> W: 我要點餐
activate W
W ->> K: 顧客點了 A 餐
activate K
K -->> W: A 餐製作完成
deactivate K
W -->> C: 您的餐點好了
deactivate W你會看到服務生 (W) 和廚房 (K) 的垂直線上,出現了藍色的粗框,表示他們正在「工作中」,這讓流程更生動了!
迴圈、條件與註解
循序圖也可以有邏輯判斷!
loop [文字] ... end:迴圈alt [條件 A] ... else [條件 B] ... end:條件分支opt [文字] ... end:可選項目Note [位置] of [ID]: [文字]:加上註解框
sequenceDiagram
participant C as 顧客
participant W as 服務生
loop 點餐流程
C ->> W: 我要點餐
alt 餐點還有
W ->> C: 好的,馬上來
else 餐點賣完了
W -->> C: 抱歉,賣完了
end
end
Note right of C: 顧客決定換一家循序圖對於釐清複雜的溝通流程非常有幫助,不只是寫程式,描述客服流程、部門協作也超好用!
【核心圖表 III】甘特圖 (Gantt Chart):專案管理神器
身為一個需要管理內容排程的部落客,或是有專案在身的 PM,甘特圖(Gantt Chart)絕對是你的好朋友。用 Mermaid 寫甘特圖,修改日期簡直是秒殺!
語法開頭是 gantt。
定義日期格式與標題
gantt
title 我的部落格文章撰寫計畫
dateFormat YYYY-MM-DD
axisFormat %Y-%m-%d
%% excludes weekends %% (可以加上這行來排除週末)title:圖表大標題。dateFormat:你「輸入」的日期格式。axisFormat:圖表「顯示」的時間軸格式。
區段 (Section) 與任務 (Task)
甘特圖的核心就是「區段 (Section)」和「任務 (Task)」。
gantt
title 部落格文章撰寫計畫
dateFormat YYYY-MM-DD
section 階段一:規劃
收集資料 :done, 2025-10-20, 3d
撰寫大綱 :active, 2025-10-23, 2d
section 階段二:撰寫
撰寫初稿 : 2025-10-25, 5d
SEO 優化 : 2025-10-30, 2d
section 階段三:發佈
設計插圖 : 2025-10-28, 3d
校稿與排版 : 2025-11-01, 2d
正式發佈 : 2025-11-03, 1d任務的語法是:[任務名稱] : [狀態], [開始日期], [持續天數/結束日期]。
任務狀態與里程碑
你可以定義任務的「狀態」,Mermaid 會用不同顏色標示:
done:已完成 (通常是灰色)active:進行中 (通常是亮色)- (不填):未開始 (通常是深色)
你也可以定義「相依性」或「里程碑」:
gantt
dateFormat YYYY-MM-DD
section 範例
任務 A :done, 2025-10-20, 3d
任務 B :active, after 任務 A, 2d %% 關鍵字 after
重要節點 :milestone, 2025-10-26, 0d %% 里程碑用 after [任務名稱],B 任務就會自動接在 A 任務後面開始。用 milestone (里程碑),它會顯示成一個菱形。當你的專案排程需要「動態調整」時,Mermaid 這種寫法(例如 after A)會自動幫你重排所有後續任務,省下 PM 大量的時間!
【核心圖表 IV】心智圖 (Mindmap):腦力激盪必備
心智圖 (Mindmap) 是我身為部落客最愛的功能之一!用來發想文章大綱、規劃內容結構,真的超級方便。
語法開頭是 mindmap。
從根節點出發
心智圖的語法非常直觀,就是用「縮排」來表示層級。一層縮排 (通常是 2 或 4 個空白) 代表下一層分支。
mindmap
root((部落格經營))
(內容策略)
(SEO)
(關鍵字研究)
(頁面優化)
(社群媒體)
(Facebook)
(Instagram)
(營利模式)
(聯盟行銷)
(廣告收入)
(開設課程)
(技術維護)
(網站速度)
(安全性)是不是很像在寫大綱?它就會自動生成漂亮的心智圖!
節點形狀變化
心智圖也可以改變節點的形狀,來區分不同類型的想法:
(文字):圓角矩形 (預設)((文字)):圓形[文字]:方形)文字(:橢圓形 (像藥丸)( (文字) ):Cloud 雲朵 (注意有空格)
mindmap
root[週末出遊計畫]
( (天氣) )
(晴天)
(去海邊)
(雨天)
)逛博物館(
((交通))
[開車]
[搭火車]
( (必帶物品) )
(錢包)
(雨傘)透過不同的形狀,你可以快速分類你的思緒,非常實用。
【核心圖表 V】圓餅圖 (Pie Chart):快速呈現數據
有時候,你需要快速展示數據佔比,圓餅圖 (Pie Chart) 也能輕鬆搞定。
語法開頭是 pie。
pie
title 我的時間分配
"寫作" : 40
"回覆 E-mail" : 15
"開會" : 10
"發想新點子" : 20
"耍廢" : 15語法就是 "標籤" : 數值。Mermaid 會自動幫你算出百分比並畫出來。是不是快到不可思議?
更多強大圖表巡禮(快速入門)
Mermaid 的能耐遠不止於此!為了滿足這篇 7000 字教學的深度(笑),我再帶你快速瀏覽幾個在特定領域超級強大的圖表。你不需要精通,但你知道它「存在」,未來需要時就能立刻拿出來用!
類別圖 (Class Diagram)
用途:工程師用來描述「物件導向」的系統結構(例如一個「類別」有哪些屬性和方法)。
範例:
classDiagram
class 動物 {
+String 名字
+int 年齡
+void 睡覺()
+void 吃飯()
}
class 貓 {
+void 喵喵叫()
}
class 狗 {
+void 汪汪叫()
}
動物 <|-- 貓 : 繼承
動物 <|-- 狗 : 繼承
貓 "1" -- "many" 貓奴 : 擁有 ><|-- 表示繼承,-- 表示關聯。+ 表示公開 (public) 屬性或方法。
狀態圖 (State Diagram)
用途:描述一個事物(例如訂單、機器)的「狀態」如何變化。
範例:
stateDiagram-v2
[*] --> 待付款 : 建立訂單
待付款 --> 待出貨 : 付款成功
待付款 --> 已取消 : 付款失敗或逾時
待出貨 --> 已出貨 : 商家寄送
已出貨 --> 已完成 : 顧客取貨
已取消 --> [*]
已完成 --> [*][*] 是開始或結束的符號。狀態圖對於釐清複雜的SOP或系統邏輯非常有幫助。
實體關係圖 (ER Diagram)
用途:資料庫設計師用來顯示「資料表 (Table)」之間的關聯。
範例:
erDiagram
USER ||--o{ POST : "writes"
POST ||--|{ COMMENT : "has"
USER ||--o{ COMMENT : "writes"
USER {
int userID PK "User ID"
string username "Username"
}
POST {
int postID PK "Post ID"
string title "Title"
int userID FK "Foreign Key"
}
COMMENT {
int commentID PK "Comment ID"
string text "Comment Text"
int userID FK
int postID FK
}||--o{ 這類符號是用來表示「一對多」、「多對多」等資料庫關係 (Cardinality)。
使用者旅程圖 (User Journey)
用途:PM 或 UX 設計師用來描述「使用者」在使用產品時的「步驟」、「情緒」和「痛點」。這是我覺得非常有「溫度」的一種圖!
範例:
journey
title 顧客線上購物旅程
section 發現
發現需求: 5: 小明, 小美
逛社群網站: 4: 小明
看到廣告: 5: 小美
section 考慮
進入網站: 5: 小明, 小美
比較商品: 3: 小明 (覺得有點貴)
查看評價: 4: 小美
section 購買
加入購物車: 5: 小美
結帳卡住: 1: 小美 (痛點!)
放棄購買: 1: 小美
順利結帳: 5: 小明
section 售後
收到商品: 5: 小明 (開心)語法是 [任務名稱]: [情緒分數 1-5]: [參與者]。它會自動生成一個視覺化的旅程地圖。
時間軸 (Timeline)
用途:用來呈現歷史事件、公司大事記、或專案的重大里程碑。
範例:
timeline
title 2025 年部落格大事記
2025-01-01 : 網站上線
2025-03-15 : 達到 100 篇文
2025-06-30 : 首次接到業配
2025-10-19 : 撰寫 Mermaid 教學文 (就是現在!)
2025-12-31 : 慶祝年終
;
section 2026 規劃
2026-Q1 : 開設線上課程
2026-Q3 : 出版電子書是不是超級多功能?Mermaid 簡直是一個瑞士刀!
進階技巧:讓你的圖表更上一層樓
學會了基本圖表後,你一定會想:「我能不能改顏色?」、「我能不能讓它更好看?」。當然可以!
註解:在程式碼中做筆記
這超級重要!當你的圖表變得很複雜時,你需要註解來提醒自己這段程式碼在幹嘛。請使用 %% (兩個百分比符號)。
graph TD
A --> B
%% 這是註解,不會顯示在圖表上
B --> C %% 這也是註解自訂樣式 (Styling)
Mermaid 允許你定義 CSS Class,然後套用到節點或線上。
方法一:classDef (定義) 和 class (套用)
graph TD
A[開始] --> B{判斷}
B -- 是 --> C[成功]
B -- 否 --> D[失敗]
%% 1. 定義 Class
classDef success fill:#f0fdf6,stroke:#06c755,stroke-width:2px,color:#038a3c
classDef failure fill:#fff8f0,stroke:#ff8c00,stroke-width:2px,color:#D2691E
%% 2. 套用 Class
class C success
class D failureclassDef [class名稱] [CSS屬性]。你可以用 fill (填充色)、stroke (邊框色)、color (文字色) 等。
方法二:linkStyle (用於線條)
前面提過的 linkStyle 是專門用來改線條的。它會依照線條的「順序」來套用。
graph TD
A --> B %% 這是第 0 條線
A --> C %% 這是第 1 條線
linkStyle 0 stroke:#06c755,stroke-width:4px
linkStyle 1 stroke:#ff0000,stroke-width:2px,stroke-dasharray: 5 5(注意:順序是從 0 開始算的喔!)
修改主題 (Theme)
雖然你可以在 Mermaid.live 的「Configuration」介面改主題,但更專業的做法是「寫在程式碼裡」。這樣你的圖表無論在哪個平台開啟,都會長一樣!
請使用 %%{init}%% 這個「初始化指令」。
%%{init: { "theme": "forest" } }%%
graph TD
A[我是森林主題] --> B(看起來很舒服)把這行魔法指令放在圖表的最開頭,圖表就會立刻套用 forest (森林) 主題。其他可選主題還有 default, dark, neutral, base。
你甚至可以在 init 裡覆蓋主題的變數:
%%{init: {
"theme": "base",
"themeVariables": {
"primaryColor": "#06c755",
"primaryTextColor": "#fff",
"lineColor": "#06c755",
"nodeBorder": "#06c755"
}
} }%%
graph TD
A[完全客製化] --> B(LINE 綠色主題!)%%{init}%% 的優先權「高於」你在 Configuration 介面選擇的主題。這非常方便我們固定圖表樣式!實戰應用:我如何用 Mermaid 規劃這篇文章?
說了這麼多,不如來個實際案例。這篇超過 7000 字的教學文,如果沒有先規劃大綱,一定會寫到迷路。所以,我就是用 Mermaid 的「心智圖」來規劃的!
這是我當時草稿的 Mermaid 程式碼(簡化版):
mindmap
root((Mermaid.live 完整教學))
(為什麼要學?)
[痛點:傳統軟體很慢]
[優點:修改快、版控]
(介面導覽)
(Code / Preview)
(Config / Actions)
(核心圖表:流程圖)
(方向 TD/LR)
(節點形狀)
(箭頭)
(Subgraph)
(核心圖表:循序圖)
(Participant)
(Message)
(Activate)
(核心圖表:甘特圖)
(Section / Task)
(Milestone)
(核心圖表:心智圖)
(核心圖表:圓餅圖)
(更多圖表巡禮)
(Class / State / ER)
(Journey / Timeline)
(進階技巧)
(Styling / classDef)
(Theme / init)
(FAQ)
(結論)我只需要專注在「層級」和「關鍵字」,Mermaid 就幫我生出了一張清晰的大綱圖。在撰寫過程中,如果我發現「甘特圖」應該要放在「循序圖」前面,我只需要移動那兩行文字,圖表就自動更新了。這就是 Mermaid 的威力!
常見問題 FAQ
整理一些大家剛入門時最常遇到的問題!
Mermaid.live 跟 Mermaid.js 差在哪?
這是一個很棒的問題!
- Mermaid.js: 是一個 JavaScript "函式庫" (Library)。它是背後的「引擎」,負責把你的文字語法「翻譯」成圖表。工程師會把它安裝在網站或工具裡。
- Mermaid.live: 是一個 "線上編輯器" (Editor)。它是一個已經幫你裝好了 Mermaid.js 引擎的「網站」,讓你可以在上面寫程式碼、即時預覽、並匯出圖檔。
簡單來說:Mermaid.js 是「引擎」,Mermaid.live 是「裝了引擎的車子(和儀表板)」。
我做的圖好醜,怎麼改主題或顏色?
有兩種快速的方法:
- 最快:用
init指令。 在程式碼最上方加上%%{init: { "theme": "forest" } }%%。把forest換成dark或neutral試試看。 - 最客製化:用
classDef。 如同本文「進階技巧」章節提到的,你可以用classDef myStyle fill:#f00,stroke:#000來定義一個紅色填充、黑色邊框的樣式,然後用class A myStyle把它套用到 A 節點上。
語法一直錯,圖跑不出來怎麼辦?
別灰心!90% 的錯誤都是小問題:
- 檢查冒號: 很多語法(例如甘特圖、圓餅圖)的標籤和數值之間是用「冒號
:」分隔的,你可能打成了分號;或中文冒號:。 - 檢查箭頭: 流程圖的箭頭是
-->(兩個減號一個大於),不是->(一個減號)。 - 檢查保留字: 如果你的節點文字剛好是 Mermaid 的關鍵字(例如
end),請幫它加上引號,例如A["end"]。 - 參考範例: 回到 Mermaid.live 左下角的「Sample Diagrams」,找一個最像的範例來改,是最快除錯的方式。
我可以在 PIXNET / Notion / GitHub 上用 Mermaid 嗎?
這個問題超關鍵!
- GitHub / GitLab: 原生支援! 你只要在 Markdown 檔案中,用
```mermaid ... ```的程式碼區塊把語法包起來,它們就會自動渲染成圖表。 - Notion: 原生支援! 你只需要輸入
/mermaid,Notion 就會給你一個 Mermaid 程式碼區塊,直接貼上語法即可。 - PIXNET (痞客邦): 不支援。 痞客邦的編輯器無法執行 Mermaid.js。但是! 這就是 Mermaid.live 派上用場的地方!你可以在 Mermaid.live 把圖畫好,然後選擇「Actions」裡的「Download SVG」或「Download PNG」,再把這張「圖片」上傳到痞客邦文章裡!(我個人強烈推薦使用 SVG 格式,放大縮小都超清楚!)
Mermaid.live 匯出的圖可以商用嗎?
可以! Mermaid.js 專案本身是基於 MIT License 釋出的。這是一個非常寬鬆的開源授權,允許你自由地使用、修改、複製,並用於商業用途,你只需要在你的產品中保留原始的版權和許可聲明即可。
對於我們在 Mermaid.live 製作並匯出的「圖表」來說,用於部落格文章、公司簡報、商業報告等,都是完全沒有問題的!
結論:別再「拉」圖了,開始「寫」圖吧!
呼~恭喜你滑到了這裡!這篇 7000 多字的文章,我們從 Mermaid 的核心理念、Mermaid.live 的介面,一路玩遍了流程圖、循序圖、甘特圖、心智圖... 等超過 10 種圖表,甚至還學會了自訂樣式和主題。
我希望這篇文章給你的,不只是一個工具的SOP,而是一種全新的工作思維。
「用文字定義結構,讓程式處理外觀」是未來高效工作的趨勢。Mermaid 完美體現了這一點。它讓你從繁瑣的「對齊、拉線、調顏色」中解放出來,真正專注於圖表要傳達的「邏輯」與「資訊」。
一開始學習語法可能會有點卡,這是正常的。但請相信我,只要你堅持下去,用它完成兩、三個圖表後,你就會愛上那種「修改一行字,整張圖自動重排」的快感!
別再浪費時間在拖拉方塊上了。現在就打開 Mermaid.live,試著「寫」出你的第一張圖吧!
免責聲明
本文內容為個人研究與經驗分享,並非投資建議。所有資訊均來自 Mermaid 官方文件及 Mermaid.live 編輯器,撰寫本文時(2025年10月)已力求資訊正確。Mermaid.js 專案可能隨時更新,功能或語法亦可能變動,請以官方最新發佈的資訊為準。本文提及之工具(Mermaid.live)均為第三方服務,使用時請自行評估並遵守其服務條款。
留言列表