Sample diagrams¶
シンプルなシーケンス図¶
seqdiag {
browser -> webserver [label = "GET /index.html"];
browser <-- webserver;
browser -> webserver [label = "POST /blog/comment"];
webserver -> database [label = "INSERT comment"];
webserver <-- database;
browser <-- webserver;
}

エッジの種類¶
seqdiag {
// normal edge and doted edge
A -> B [label = "normal edge"];
B --> C [label = "dotted edge"];
B <-- C [label = "return dotted edge"];
A <- B [label = "return edge"];
// asynchronus edge
A ->> B [label = "asynchronus edge"];
B -->> C [label = "asynchronus dotted edge"];
B <<-- C [label = "return asynchronus doted edge"];
A <<- B [label = "return asynchronus edge"];
// self referenced edge
A -> A [label = "self reference edge"];
}

エッジの設定¶
バージョン 0.2.2 で追加: color 属性
バージョン 0.5.0 で追加: failed 属性
seqdiag {
// edge label
A -> B [label = "call"];
A <- B [label = "return"];
// diagonal edge
A -> B [diagonal, label = "diagonal edge"];
A <- B [diagonal, label = "return diagonal edge"];
// color of edge
A -> B [label = "colored label", color = red];
// failed edge
A -> B [label = "failed edge", failed];
}

往復エッジと複合シーケンス¶
seqdiag {
// auto return edge
A => B [label = "call", return = "return"];
// nested auto return edge
A => B => C [label = "call", return = "return"];
// nested sequence
A => B [label = "nested call"]{
B => C [label = "call 1"];
B => D [label = "call 2"];
B => E [label = "call 3"];
}
}

セパレータ¶
バージョン 0.5.0 で追加.
seqdiag {
A -> B;
// Separator
=== Separator line ===
A -> B;
// Delay separator
... Separator line ...
A -> B;
}

エッジノート(注意書き)¶
バージョン 0.6.0 で追加.
seqdiag {
// Use note (put note on rightside)
browser -> webserver [note = "request\nGET /"];
browser <- webserver;
// Use leftnote and rightnote
browser -> webserver [leftnote = "send request"];
browser <- webserver [rightnote = "send response"];
}

図全体の設定¶
バージョン 0.2.0 で追加.
バージョン 0.5.0 で追加: activation, autonumber 属性
バージョン 0.6.0 で追加: default_note_color 属性
seqdiag {
// Set edge metrix.
edge_length = 300; // default value is 192
span_height = 80; // default value is 40
// Set fontsize.
default_fontsize = 16; // default value is 11
// Do not show activity line
activation = none;
// Numbering edges automaticaly
autonumber = True;
// Change note color
default_note_color = lightblue;
browser -> webserver [label = "GET \n/index.html"];
browser <-- webserver [note = "Apache works!"];
}

TIPS: ノードの並び替え方¶
ノードの並べ替えを行いたい場合は、図の先頭で並び替えたい順にノードを宣言します。seqdiag は出現順にノードを並べ替えます。
seqdiag {
# define order of elements
# seqdiag sorts elements by order they appear
browser; database; webserver;
browser -> webserver [label = "GET /index.html"];
browser <-- webserver;
browser -> webserver [label = "POST /blog/comment"];
webserver -> database [label = "INSERT comment"];
webserver <-- database;
browser <-- webserver;
}
