認識 docsify 文件好幫手 mermaid,簡單畫出 Flowcharts

認識 mermaid,利用圖表增進文件可讀性

Lai
UnaLai
6 min readJul 26, 2020

--

撰寫文件時,時常需要利用流程圖等,視覺化表達文件內容,幫助閱讀理解。

先前文章介紹過 docsify 文件工具(學習撰寫文件,初識好幫手 docsify),docsify 使用的是 Markdown 語法。因此繪圖時,也希望可以一併使用 Markdown 語法繪圖。較多人推薦使用的工具為 Graphviz 及 mermaid。

兩者皆可以透過 Markdown 語法,以 JS 畫圖,不需另外透過外部 server 處理、存取圖片,隱私安全性較好。

筆者先前使用 Graphviz,畫流程圖、簡單的資料關聯表,使用上簡單好上手,也有滿足需求。後來看見 mermaid 能夠畫出更多不同的圖表,例如甘特圖、圓餅圖等,也想試著了解 mermaid,也許能夠幫助文件撰寫。因此本文先以最好入門的 Flowcharts 流程圖開始,入門 mermaid。

➤ 在 docsify 引入 mermaid

STEP 1:於 index.html 引入 CSS、JS 資源

STEP 2:初始化設置

  • num 為 mermaid 渲染時,每一區塊 id 命名用。
  • initialize 初始化參數中的 theme 主題,亦可以選用其他主題,例如:default、forest、dark、neutral
  • 如果要做其他更細微的 CSS 調整,亦可調整於初始化參數 themeCSS 中

➤ 畫出簡單的 Flowcharts

定義方向

  • TB:上到下,同 TD
  • BT:下到上
  • RL:右到左
  • LR:左到右

聲明語言為 mermaid,以 graph 為開頭,聲明圖表方向。

以 A 至 B 為例,可以使用四種方向:

定義圖型

  • 每一個圖型,皆有自己的表達方式,例如 方框 [] 、六角形 {{}}。圖型表達內的文字,即為顯示文字。圖型表達前方的 id,即為渲染後的元素 id。
  • 體育場形狀指的是一對相對側具有半圓形的矩形構成的二維幾何形狀(查看更多說明)
  • 若不特別更改圖型,預設為方框,其中 id 即為文本內容與元素 id

圖形之間的連接

  • 線條分為實線(一般、箭頭、加粗)與虛線(一般、箭頭)。
  • 線條間可以加上文字描述

調整 CSS 樣式

  • 使用 style 關鍵字,定義特定 id 元素的 CSS 樣式

子圖

  • 利用子圖可以標示出特定流程區塊
  • 以 subgraph 表示子圖區塊開始,end 表示子圖區塊結束
  • 子圖標題設定於 subgraph 關鍵字後

繪製流程

  • 範例一
  • 範例二

以上是今天的小分享,之後有時間再補上其他的圖表繪製方式,有任何問題都歡迎留言指教,謝謝 😊

➤ 參考文件

  1. mermaid 文件

--

--

Lai
UnaLai

我是一名前端工程師,我熱愛學習與分享 ❤︎