mermaid.js を使ってコードリーディングをするときに便利な機能をまとめてみました。標準でクラスダイアグラムも使えるのですが、色々試した結果応用の効くグラフを使う方法に落ち着きました。
スタイル
注目させたい関数の色やアウトラインを変更できる。
graph LR
foo --> bar --> baz
style bar color:#000,fill:#ccc,stroke:#333,stroke-width:4px
サブグラフ
名前空間やファイル名を表すのに便利。
graph LR
subgraph Foo
f1 --> f2
end
f2 --> f3
subgraph Bar
f3 --> f4
end
コメントアウト
%%
でグラフの一部を無効にすることで1つのグラフを違う視点で表示することができる。
前述のスタイルと組み合わせるのもよい。
f1 に注目。
graph LR
f1 --> f2
f1 --> f3
%% f3 --> f4 --> f5
style f1 color:#000,fill:#ccc,stroke:#333,stroke-width:4px
%% style f3 color:#000,fill:#ccc,stroke:#333,stroke-width:4px
f3 に注目。
graph LR
%% f1 --> f2
f1 --> f3
f3 --> f4 --> f5
%% style f1 color:#000,fill:#ccc,stroke:#333,stroke-width:4px
style f3 color:#000,fill:#ccc,stroke:#333,stroke-width:4px
線にコメント
受け渡されるデータを記述できる。
graph LR
user -- color --> makeTriangle -- graphic, pos --> drawGraphic
makeTriangle -- graphic --> saveToPng
開発環境
本家のライブプレビューを使えば大体のものは書ける。
URL に編集内容が保存されるので他の人に共有することも可能。
VSCode だと Markdown Preview Enhanced が png への保存もできるのでおすすめ。
実例
blogsync のコードを読むときに書いたグラフ。灰色になっているのが各コマンドに対応していてそこから各実装に分散している。設定ファイルの読み書き部分は全コマンド共通。