Mermaidを使ってみよう!

はじめに

みなさまこんにちは。
今回使用してみるツールは、Mermaidというツールです。Mermaidは、テキストから図を作成するツールで、今回取り上げるER図はもちろん、フローチャート、シーケンス図、クラス構成図、状態遷移図などが作成可能です。

Mermaidとは?

Mermaidとは、前述したとおりER図はもちろん、グラフ、シーケンス図などをテキストから作成することができるツールです。

出力形式としては、PNGSVG、などです。こちらのライブエディターから作成した図は出力可能です。
ライブエディター:https://mermaid.live/

初期表示ではフローチャートのコーディングサンプルが設定されていると思います。
下記のような例が示されていますね。

flowchart TD
    A[Christmas] -->|Get money| B(Go shopping)
    B --> C{Let me think}
    C -->|One| D[Laptop]
    C -->|Two| E[iPhone]
    C -->|Three| F[fa:fa-car Car]

ここで、一つ一つかみ砕いてみます。flowchartはわかると思います。どのような図を作成するのか宣言するのですね。ER図ではerDiagramを、円グラフではpie とします。
続いて、TDです。TOP to DOWNというの略だと思いますが、上から下に向けて描画していきます(TBでも可能です。)。左から右としたい場合は、LRとします(LIGHT to LEFT)。逆に下(BOTTOM)から上方向はBTとします。右から左はRLとします。
A[Christmas] はノード(四角い箱)を表します。ここではChristmasという文字列を追記する定義がされています。
--> で次のノードへ矢印を伸ばします。
矢印が何を表すか説明が必要ですよね。その際に|Get money|のように、テキストを添えます。
テキストの先には別のノードB(Go shopping)があります。こちらもノードなのですが()で括ったノードは角が丸い四角となります。
近年、アイコンが使用可能になりました。fa:xxxと入力するとアイコンを取得し表示します。
アイコン一覧:https://icones.js.org/

ノードまとめ

様々なノードをまとめてみました。

ノード名コーディング例見え方
通常normal[text]
角が丸い箱A("node")
ひし形A{"node"}
スタジアム型A(["node"])
二重四角A[["node"]]
DB型A[("node")]
A(("node"))
付箋A>"node"]
ヘキサゴンA{{"node"}}
平行四辺形A[/"node"/]
平行四辺形2A[\"node"\]
台形A[/"node"\]
逆さ台形A[\"node"/]
書類A@{shape: docs, label: "node"}

使いそうなものはこのようなところでしょうか。
まずはLiveEditorやVSCode(Mermaidのプラグインを入れたもの)で試してみてください。

続く。。。