(19日目) blockdiag を Pukiwiki で使ってみよう

昨日の記事では Trac の Wiki に blockdiag の図を埋め込む方法をご紹介しました。
今日は他のドキュメントツールである Pukiwiki に blockdiag の図を埋め込む方法をご紹介しましょう。

PukiwikiPHP で動作する Wiki クローンのひとつで、現在は開発が止まっていますがそれでも強い人気を誇っています。
Pukiwiki 用の blockdiag プラグインは @hekyou さんが開発されたものです。
@hekyou さんは他にも複数人で blockdiag の図を編集できる Interactive shell live!! を開発されるなど、
blockdiag にいろいろ貢献されています :-)

インストール

Pukiwiki のインストールを行います。
Pukiwiki はアーカイブをダウンロードして設定ファイルを書き換えるだけで動くお手軽パッケージです。
ダウンロードした後、/var/www/wiki にファイルを設置します。

また、blockdiag プラグインも一緒に設置します。
ファイルをダウンロードしたあと、/var/www/wiki/plugin に設置します。

$ cd /tmp
$ wget -O pukiwiki-1.4.7_notb_utf8.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fpukiwiki%2F12957%2Fpukiwiki-1.4.7_notb_utf8.tar.gz'
$ wget https://raw.github.com/hekyou/diag-pukiwiki-extension/master/diag.inc.php
$ cd /var/www
$ sudo tar xzvf /tmp/pukiwiki-1.4.7_notb_utf8.tar.gz
$ sudo mv pukiwiki-1.4.7_notb_utf8 wiki
$ sudo mv /tmp/diag.inc.php wiki/plugin
$ sudo chown -R www-data.www-data wiki
$ sudo chmod -R o-w wiki

次に設定ファイル(pukiwik.ini.php)を編集します。
途中で管理用のパスワードを埋め込むところがあるので、パスワードの MD5 を生成しておきます。

$ echo -n 'password' | md5sum
5f4dcc3b5aa765d61d8327deb882cf99  -

そして、pukiwiki.ini.php を編集します。

$ sudo vi pukiwiki.ini.php

ここでは編集した箇所だけピックアップしました。

// Site admin's name (CHANGE THIS)
$modifier = 'tk0miya';

// Site admin's Web page (CHANGE THIS)
$modifierlink = 'http://capella.monochrome.jp/wiki/';

// Default: always fail
$adminpass = '{x-php-md5}5f4dcc3b5aa765d61d8327deb882cf99';

define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled

// variables for blockdiag
defined('PLUGIN_DIAG_IMAGE_DIR') or define('PLUGIN_DIAG_IMAGE_DIR', '/tmp/');
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=/usr/share/fonts/truetype/ipafont/ipagp.ttf');

使ってみる

Pukiwiki の画面から Wiki の編集を選択します。
サンプルとして以下のテキストを入力してみます。

#diag(block){{
blockdiag {
   A -> B -> C, D;
}
}}
#diag(seq){{
seqdiag{
  A -> B -> C -> B;
}
}}

保存すると次のように Pukiwiki のページ内に blockdiag や seqdiag の図を埋め込むことができます。

Trac の場合と同じように、前後に {{ や }} などの記号が必要ですが、
それ以外は普段の blockdiag の書き方をそのまま指定することができます。


個人的には Sphinx が一押しですが、既存のドキュメントが pukiwiki でまとめられていた場合でも、
プラグインをいれることでかんたんに埋め込むことができます。
Pukiwiki ユーザーの方も是非試してみてはいかがでしょうか。