PukiWiki用のblockdiagプラグイン
便利なblockdiag。
各システムに埋め込むためのプラグインがあるようですが
PukiWiki用がなかったので作ってみましたー。
既にあれば無視してください。。
以下、簡単な使い方を。
要件
- PukiWiki 1.4.6以降
- blockdiagインストール済
- nwdiagインストール済
- seqdiagインストール済
- actdiagインストール済
インストール方法
2. pukiwiki.ini.php内の複数行プラグイン引数設定を有効に
PukiWiki 1.4.6以降のみ可能なようです。
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
3. 初期設定変更
diag.inc.php内のdefineを変更することで可能です。
- 画像一時生成場所
表示時、一時的に使用。
画像ファイルを保存しないようにするために
毎回表示時に画像を生成する方式を採用しました。
そのため表示の際に多少ラグがあるかも…
defined('PLUGIN_DIAG_IMAGE_DIR') or define('PLUGIN_DIAG_IMAGE_DIR', '/tmp/');
- blockdiag等のパス
defined('PLUGIN_DIAG_BLOCKDIAG_PATH') or define('PLUGIN_DIAG_BLOCKDIAG_PATH', '/usr/local/bin/blockdiag'); defined('PLUGIN_DIAG_NWDIAG_PATH') or define('PLUGIN_DIAG_NWDIAG_PATH', '/usr/local/bin/nwdiag'); defined('PLUGIN_DIAG_SEQDIAG_PATH') or define('PLUGIN_DIAG_SEQDIAG_PATH', '/usr/local/bin/seqdiag'); defined('PLUGIN_DIAG_ACTDIAG_PATH') or define('PLUGIN_DIAG_ACTDIAG_PATH', '/usr/local/bin/actdiag');
- フォントの変更
define('PLUGIN_DIAG_FONT_PATH', '--font=/Library/Fonts/Osaka.ttf');
といった形式でフォントのパスを指定することで
任意のフォントが使用可能です。
使い方
埋め込みたいところに下記フォーマットで記述
#diag([type]){{ [diagram] }}
[type]に入れるのは
block : blockdiag使用時 nw : nwdiag使用時 seq : seqdiag使用時 act : actdiag使用時
[diagram]には通常使用するdiagram文をそのまま使用
使用例
blockdiag
#diag(block){{ diagram { A -> B -> C -> D; A -> E -> F -> G; } }}
nwdiag
#diag(nw){{ diagram { network dmz { address = "210.x.x.x/24" web01 [address = "210.x.x.1"]; web02 [address = "210.x.x.2"]; } network internal { address = "172.x.x.x/24"; web01 [address = "172.x.x.1"]; web02 [address = "172.x.x.2"]; db01; db02; } } }}
seqdiag
#diag(seq){{ diagram { browser -> webserver [label = "GET /index.html"]; browser <-- webserver; browser -> webserver [label = "POST /blog/comment"]; webserver -> database [label = "INSERT comment"]; webserver <-- database; browser <-- webserver; } }}
actdiag
#diag(act){{ diagram { write -> convert -> image lane user { label = "User" write [label = "Writing reST"]; image [label = "Get diagram IMAGE"]; } lane actdiag { convert [label = "Convert reST to Image"]; } } }}
blockdiag等をそのままコマンドにしたかったのですが
プラグインファイルを1つにしたかったため
diagコマンドとなりました。。
要望があれば諸々検討させていただきます!