■ blockdiagとは
特定の書式に従ったテキストファイルを、png,svg,pdfなどの様々な形式の画像ファイルに変更するオープンソース。
以下のデモサイトでもテストができる。
http://blockdiag.com/ja/blockdiag/demo.html
■ インストール手順
Windowsでのインストール手順。
$ pip install webcolors
$ easy_install pillow
$ easy_install blockdiag
■ 実行方法
下記のようなファイルを用意する。
blockdiag {
// 記号が先頭だとコメントになる模様
/* コメント */
# コメント
( コメント
> コメント
" コメント"
// フォント等の設定を行う
default_fontsize = 24;
// -,>を使って矢印の向きを使う
node_id1 -> node_id2;
node_id3 <- node_id4;
node_id5 -- node_id6;
node_id7 <-> node_id8;
// 複数のノードのグループ化ができる
// グループにしたノードは色枠で囲まれる
group {
node_id6; node_id8;
}
}
# png変換
$ blockdiag simple.diag
# svg変換
$ blockdiag -Tsvg simple.diag
■ ラベル属性
ノードの形状、ノード上のフォントの設定を変更するための属性。
項目 | 項目内容 | 設定値 | 設定値内容 | 設定例 | デフォルト値 |
---|---|---|---|---|---|
label = String | ノードに表示される文字列を定義。 | B [label = "Title"]; | 省略時は ノードIDがラベルとなる。 | ||
style = Type of line | ノードを囲む境界線の種類を指定。 | 省略時は実線。 | |||
dotted | 点線。 | B [style = dotted]; | |||
dashed | 破線。 | C [style = dashed]; | |||
Number, Number, ... | 線の長さ、空白の長さをカンマ区切りで交互に指定。 | D [style = "3,3,3,3,15,3"]; | |||
color = #RRGGBB or colorname | ノードの背景色を指定。 | 指定がない場合は白。 | |||
none | 透明色 | B [color = none]; | |||
pink,red,blue,greenなど | 指定した色 | C [color = pink]; | |||
#NNNNNN | #NNNNNN形式 | D [color = "#888888"]; | |||
numbered = Integer | ノードの右上に表示させる番号を指定。 | B [numbered = 99]; | |||
C [numbered = A]; | |||||
shape = Type of shape | ノードの形状を指定。 | 省略時は box | |||
box | 四角形 | A [shape = "box"]; | |||
routebox | 丸み帯びた四角形 | A [shape = "roundedbox"]; | |||
diamond | ひし形 | A [shape = "diamond"]; | |||
eclipse | 楕円 | A [shape = "ellipse"]; | |||
cloud | 雲 | A [shape = "cloud"]; | |||
note | テキストファイルの抽象図形 | A [shape = "note"]; | |||
メールの抽象図形 | A [shape = "mail"]; | ||||
actor | 人間 | A [shape = "actor"]; | |||
minidiam | 小ひし形 | A [shape = "minidiamond"]; | |||
beginpoint | 始点(黒点) | A [shape = "beginpoint"]; | |||
endpoint | 終点(2重丸) | A [shape = "endpoint"]; | |||
dots | 縦方向の3つの黒点 | A [shape = "dots"]; | |||
flowchart.condition | 分岐(ひし形) | A [shape = "flowchart.condition"]; | |||
flowchart.database | データベース(円柱) | A [shape = "flowchart.database"]; | |||
flowchart.input | 入力ファイル(ひし形) | A [shape = "flowchart.input"]; | |||
flowchart.loopin | 繰り返し処理開始 | A [shape = "flowchart.loopin"]; | |||
flowchart.loopout | 繰り返し処理終了 | A [shape = "flowchart.loopout"]; | |||
flowchart.terminator | 処理(丸み帯びた四角形) | A [shape = "flowchart.terminator"]; | |||
background = background image | ノードに表示する背景画像を指定。ファイルパス、または URL で指定する。 | A [label = "", background = "_static/python-logo.gif"]; | |||
stacked | 複数のノードを重ね合わせた状態にする。 | A [stacked]; | |||
B[shape = "ellipse", stacked]; | |||||
description = description | Sphinx 拡張で desctable オプションを利用している場合、図の下に各ノードの説明表を表示。 | C [label = "タイトル", description = "説明"]; | |||
icon = Image file | ノードに表示させるアイコン画像を指定する。ファイルパス、または URL で指定。 | A [icon = "_static/feed-icon-legacy_orange.png"]; | |||
textcolor = #RRGGBB or colorname | ノードのラベル文字列の色を指定。 | 省略時は黒。 | |||
none | 透明色 | B [textcolor = none]; | |||
pink,red,blue,greenなど | 指定した色 | C [textcolor = pink]; | |||
#NNNNNN | #NNNNNN形式 | D [textcolor = "#888888"]; | |||
width = Integer | ノードの幅を指定。 | 省略時は128。 | |||
height = Integer | ノードの高さを指定。 | 省略時は40。 | |||
fontsize = Integer | ノードのラベル属性のフォントサイズを指定。 | 省略時は11。 | |||
rotate = Integer | ラベルの回転角を指定する。0, 90, 180, 270 のいずれかの値を設定できる。 | 省略時は0。 | |||
0 | |||||
90 | |||||
180 | |||||
270 |
■ エッジ属性
ノード間を結ぶ線。
項目 | 項目内容 | 設定値 | 設定値内容 | 設定例 | デフォルト値 |
---|---|---|---|---|---|
label = String | 短い文をエッジに表示。 | ||||
style = Type of edge line | エッジの線の種類を指定。 | 省略時は実線 | |||
dotted | 点線で繋ぎます。 | A -> B [style = dotted]; | |||
dashed | 破線で繋ぎます。 | B -> C [style = dashed]; | |||
none | エッジを消。 | C -> D [style = none]; | |||
Number, Number, ... | 線の長さ、空白の長さをカンマ区切りで交互に指定。 | D -> E [style = "3,3,3,3,15,3"]; | |||
hstyle = Type of head shape | 矢印の形状を指定。 | ||||
generalization | 汎化 | A -> B [hstyle = generalization]; | |||
composition | コンポジション | B -> C [hstyle = composition]; | |||
aggregation | 集約 | C -> D [hstyle = aggregation]; | |||
color = #RRGGBB or colorname | エッジの色を指定。 | 省略時は黒。 | |||
none | 透明色 | B -> C [color = "none"]; | |||
pink,red,blue,greenなど | 指定した色 | B -> C [color = "pink"]; | |||
#NNNNNN | #NNNNNN形式 | B -> C [color = "#888888"]; | |||
dir = direction | 矢印の向きを指定。 | ||||
none | 矢印を書かずにノードを繋ぐ。 | A -> B [dir = none]; | |||
forward | 矢印を左のノードから右のノード、または上のノードから下のノードに向かって書く。 | B -> C [dir = forward]; | |||
back | 矢印を右のノードから左のノード、または下のノードから上のノードに向かって書く。 | C -> D [dir = back]; | |||
both | 矢印を両方に書く。 | D -> E [dir = both]; | |||
folded | エッジを折り返す。 | C -> D [folded]; | |||
textcolor = #RRGGBB or colorname | エッジのラベルの色を指定。省略時は黒。 | ||||
none | 透明色 | A -> B[label=title, textcolor=none]; | |||
pink,red,blue,greenなど | 指定した色 | A -> B[label=title, textcolor=pink]; | |||
#NNNNNN | #NNNNNN形式 | A -> B[label=title, textcolor=#888888]; | |||
thick | エッジを太く。 | B -> D[thick]; | |||
fontsize = Integer | エッジのラベルのフォントサイズを指定。 | A -> B [label='text', fontsize=16]; | 省略時は11。 |
ダイヤグラム属性
図形全体の設定。
項目 | 項目内容 | 設定値 | 設定値内容 | 設定例 | デフォルト値 |
---|---|---|---|---|---|
node_width = Integer | ノードの幅を指定。 | node_width = 200; | 省略時は128。 | ||
node_height = Integer | ノードの高さを指定。 | node_height = 100; | 省略時は40。 | ||
span_width = Integer | ノード間の横幅を指定。 | span_width = 240; | 省略時は64。 | ||
span_height = Integer | ノード間の縦幅を指定。 | span_height = 120; | 省略時は40。 | ||
default_fontsize = Integer | ノードのラベル属性に使用するフォントサイズを指定。 | default_fontsize = 24; | 省略時は11。 | ||
default_shape = Shape | ノードの形状のデフォルトを指定。 | 省略時はbox。 | |||
box | 四角形 | ||||
routebox | 丸み帯びた四角形 | ||||
diamond | ひし形 | ||||
eclipse | 楕円 | ||||
cloud | 雲 | ||||
note | テキストファイルの抽象図形 | ||||
メールの抽象図形 | |||||
actor | 人間 | ||||
minidiam | 小ひし形 | ||||
beginpoint | 始点(黒点) | ||||
endpoint | 終点(2重丸) | ||||
dots | 縦方向の3つの黒点 | ||||
flowchart.condition | 分岐(ひし形) | ||||
flowchart.database | データベース(円柱) | ||||
flowchart.input | 入力ファイル(ひし形) | ||||
flowchart.loopin | 繰り返し処理開始 | ||||
flowchart.loopout | 繰り返し処理終了 | ||||
flowchart.terminator | 処理(丸み帯びた四角形) | ||||
orientation = portrait | 縦書きモードに。 | 省略時は横書きモード。 | |||
default_node_color = #RRGGBB or colorname | ノードのデフォルトの色を指定。 | 省略時は白。 | |||
none | 透明色 | default_node_color = none; | |||
pink,red,blue,greenなど | 指定した色 | default_node_color = pink; | |||
#NNNNNN | #NNNNNN形式 | default_node_color = "#888888"; | |||
default_group_color = #RRGGBB or colorname | グループのデフォルトの色を指定。 | 省略時はオレンジ。 | |||
none | 透明色 | default_group_color = none; | |||
pink,red,blue,greenなど | 指定した色 | default_group_color = pink; | |||
#NNNNNN | #NNNNNN形式 | default_group_color = "#888888"; | |||
default_linecolor = #RRGGBB or colorname | ノードの枠とエッジのデフォルトの色を指定。 | 省略時は黒。 | |||
none | 透明色 | default_linecolor = none; | |||
pink,red,blue,greenなど | 指定した色 | default_linecolor = pink; | |||
#NNNNNN | #NNNNNN形式 | default_linecolor = "#888888"; | |||
default_textcolor = #RRGGBB or colorname | ノードラベル、エッジラベル、グループラベルのデフォルトの色を指定。 | 省略時は黒。 | |||
none | 透明色 | default_textcolor = none; | |||
pink,red,blue,greenなど | 指定した色 | default_textcolor = pink; | |||
#NNNNNN | #NNNNNN形式 | default_textcolor = "#888888"; | |||
edge_layout = normal or flowchart | Experimental エッジレイアウトルールを指定。 |