コネクタ
コネクタ は 2 つのノードの間に引く矢印(または線)です。 依存関係・リクエスト・データフローなど、ノード間の関係を表現します。
矢印の種類
矢印の意味は、2 つのノード ID の間に書く演算子で決まります。実線版と 点線版は同じ方向セマンティクスを共有します(--> も ..> も終点矢印):
| 演算子 | 向き | 線の種類 |
|---|---|---|
--> | 始点 → 終点 | 実線 |
-> | --> のエイリアス | 実線 |
<-- | 終点 → 始点 | 実線 |
<-> | 両端 | 実線 |
--- | 矢印なし | 実線 |
..> | 始点 → 終点 | 点線 |
<.. | 終点 → 始点 | 点線 |
<..> | 両端 | 点線 |
... | 矢印なし | 点線 |
構文
<from> <arrow> <to> ["<label>"] [attr=value ...] [{ body }]<from>/<to>は ID"<label>"は中央に置かれるラベル(位置引数、:区切りなし)- 末尾の
attr=valueでスタイル・色・線幅を上書き { … }ボディは中継点やネスト設定など複雑な属性用
未宣言のノード ID を参照すると 整合性エラー としてパースが失敗します。 タイポに気付かずスキップされる、ということがない設計です。
コネクタ行は 唯一コマンドキーワードで始まらない行 です。Gridgram は <id> <arrow> <id> の形を見てコネクタと判定するので、先頭語はどんな ID でも OK(icon や region などと衝突していても問題なし)。
簡単な例
gg
user --> api "request" # 基本
api <-> cache "sync" width=2 # 太めの双方向
api ..> audit "log" # 点線(補助的)
api --- db # 矢印なし、並置
api --> db "cold-read" {
waypoints: [{ col: 3, row: 1 }, { col: 4, row: 1 }],
}