Swimlane Diagram PreviewEnglish | 日本語 VS Code の標準Markdownプレビューで、
上の図は、以下のようなコードブロックをMarkdownに書くだけで得られます。
使い方
まずは以下をそのまま
構文エラーがある場合は、図の代わりにエラー内容(何行目のどこが問題か)がプレビュー上に表示されます。 手で書くのがつらい場合は、Swimlane GUI Studio のGUIで組み立てて
|
| 項目 | 説明 |
|---|---|
<id> |
レーンを識別するID。node の lane= から参照する。必須 |
"<ラベル>" |
レーン名。省略時は <id> がそのまま表示名になる |
#RRGGBB |
レーンの背景色(16進カラーコード、#RGB〜8桁まで可)。省略可 |
phase(フェーズ)
phase <id> "<ラベル>"
レーンを横断する区切り(工程・時系列など)を表します。1つも定義しない場合、図全体が単一フェーズとして扱われます。
| 項目 | 説明 |
|---|---|
<id> |
node の phase= から参照するID。必須 |
"<ラベル>" |
フェーズ名。省略時は <id> がそのまま表示名になる |
node(ノード / 図形)
node <id> "<ラベル>" [lane=<laneId>] [phase=<phaseId>] [shape=<shape>] [color=#RRGGBB]
| 項目 | 説明 |
|---|---|
<id> |
接続(edge)から参照するID。必須 |
"<ラベル>" |
ノード内に表示するテキスト。shape=startdot / enddot のときは省略可 |
lane= |
所属するレーンのID。省略時は先頭のレーンに属する |
phase= |
所属するフェーズのID。省略可 |
shape= |
図形の種類。省略時は process |
color= |
ノードの塗り色(16進カラーコード)。省略可 |
shape= に指定できる値:
| 値 | 形状 |
|---|---|
process(既定) |
四角(処理) |
start |
角丸(開始) |
end |
角丸(終了) |
decision |
ひし形(判断) |
io |
平行四辺形(入出力) |
startdot |
●(開始点。状態遷移図の [*] に相当し、他の図形より小さく描画) |
enddot |
◉(終了点) |
edge(接続)
<fromId> -> <toId> ["<ラベル>"]
<fromId> --> <toId> ["<ラベル>"]
| 記法 | 意味 |
|---|---|
-> |
実線の矢印 |
--> |
破線の矢印 |
"<ラベル>" |
接続線上に表示するテキスト。省略可 |
<fromId> / <toId> は node で定義した <id> を参照します。未定義のIDを指定した場合や、lane= / phase= が未定義のIDを参照している場合は、プレビュー上にエラーとして表示されます。
しくみ
VS Codeの markdown.markdownItPlugins 拡張ポイントを使い、標準プレビューが使っている markdown-it の fence レンダラーを横取りしています。swimlane 言語のフェンスだけを swimlane.js(外部依存ゼロの描画ライブラリ)でSVGに変換し、それ以外の言語は通常どおり(シンタックスハイライト等)に描画します。
swimlane.js はDOMに依存せず解析・レイアウト計算・SVG生成ができる作りになっているため、Webview側で追加のスクリプトを実行する必要がなく、拡張機能ホスト(Node.js)側で同期的に変換しています。
ライセンス
MIT License. 外部通信は一切行いません。
