Mermaid 是什麼
Mermaid 是一個基於 Markdown 和 JavaScript 的圖表繪製工具,而繪製方式類似於寫程式碼,也就是在鍵盤上敲敲打打就可以做出各式圖表,下面的範例圖就是用 Mermaid 繪製出來的,跟著下面的教學就能輕鬆學會呦,做出專屬自己的圖表~
哪裡可以使用 Mermaid
有支援 markdown 的地方都可以使用喔,像是 Notion, HackMD 等等都有支援,使用方式為建立一個程式碼區塊,並將語言指定為 Mermaid 即可。
Mermaid Flowchar 語法
讓我們從簡單的流程圖開始教學,其他圖表語法可以參考官方網站的教學
起手式
由 flowchart 開頭,也可以在上方加上標題(選用)
---
title: 第一個 flowchat
---
flowchart
--- title: 第一個 flowchat --- flowchart
流程圖方向
指定你的流程圖要往哪個方向長
- TB:由上到下(預設)
 - BT:由下到上
 - RL:由右到左
 - LR:由左到右
 
flowchart TB
  A --> B
flowchart TB
    A --> B
flowchart RL
  A --> B
flowchart RL A --> B
定義節點
沒錯剛剛的例子可以看到有兩個長方形 A 和 B,我們稱它為節點,透過不同的語法可以製造出更多不同形狀的節點。
直接打上文字 (id) 就可以建造出節點,再用方括號等表示語法去決定形狀和顯式的文字,如果不指定則會用長方形和 id 顯示
flowchart
  id
  id1[方形]
  id2(圓角方形)
  id3([體育場形])
  id4[[子例程]]
  id5[(圓柱)]
  id6((圓形))
flowchart
    id
    id1[方形]
    id2(圓角方形)
    id3([體育場形])
    id4[[子例程]]
    id5[(圓柱)]
    id6((圓形))
flowchart 
  id7>非對稱]
  id8{菱形}
  id9{{六邊形}}
  id10[/平行四邊形/]
  id11[\平行四邊形\]
  id12[/梯形\]
  id13[\梯形/]
flowchart 
  id7>非對稱]
  id8{菱形}
  id9{{六邊形}}
  id10[/平行四邊形/]
  id11[\平行四邊形\]
  id12[/梯形\]
  id13[\梯形/]
串聯節點
有了節點之後可以用直線、箭頭等符號將流程表示出來
flowchart
  A --- B
  C -.- D
  E === F
  G --> H
  I -.-> J
  K ==> L
flowchart A --- B C -.- D E === F G --> H I -.-> J K ==> L
線上也可以加入敘述文字(有下列兩種寫法)
flowchart 
  A -- 文字 --- B
  C -. 文字 .- D
  E == 文字 === F
  G -- 文字 --> H
  I -. 文字 .-> J
  K == 文字 ==> L
flowchart 
  A --- |文字| B
  C -.- |文字| D
  E === |文字| F
  G --> |文字| H
  I -.-> |文字| J
  K ==> |文字| L
flowchart A --- |文字| B C -.- |文字| D E === |文字| F G --> |文字| H I -.-> |文字| J K ==> |文字| L
線還可以加長
flowchart 
  A --- B
  C -.- D
  E ---- F
  G -..- H
flowchart A --- B C -.- D E ---- F G -..- H
自由組合
知道如建立節點和連接就可以自由的去組合流程圖,下面給大家一個範例,記得自己動手玩玩,可以更快上手喔
flowchart LR
  A[Start] --> B{Is it?}
  B --> |Yes| C[OK]
  C --> D[Rethink]
  D --> B
  B ----> |No| E[End]
flowchart LR
  A[Start] --> B{Is it?}
  B --> |Yes| C[OK]
  C --> D[Rethink]
  D --> B
  B ----> |No| E[End]
其他小技巧
兩個百分號代表註解,不會被顯示出來
flowchart LR
  A --- B
  %% 註解
flowchart LR A --- B %% 註解
節點增加連結
flowchart LR
  A --- B
  click A "https://mermaid.js.org/"
flowchart LR A --- B click A "https://mermaid.js.org/"
使用主題:有 default, forest, neutral, dark, base 五種主題可選用
%%{init: {'theme': 'forest'} }%%
flowchart LR
  A --- B
%%{init: {'theme': 'forest'} }%%
flowchart LR
  A --- B
自訂顏色
flowchart LR
  id1---id2
  style id1 fill:#d4bfb2, stroke:#877a71, stroke-width:2px, color:#ffffff
  style id2 fill:#e9b41b, stroke:#4f3d09, stroke-width:3px, stroke-dasharray:5 4
flowchart LR id1---id2 style id1 fill:#d4bfb2, stroke:#877a71, stroke-width:2px, color:#ffffff style id2 fill:#e9b41b, stroke:#4f3d09, stroke-width:3px, stroke-dasharray:5 4