クリッカブルマップを吐き出すところまでいけたので公開。
Wiki Graphviz macro プラグイン
例によって無保証です。
主なfeature
- wikiマクロ、{{graphviz}}と{{graphviz_me}}を追加
- wikiページをdot形式で記述し、これらのマクロから呼び出すことでグラフ画像をレンダリング
- ノードにURL属性を指定するとクリッカブルマップに
{{graphviz}} マクロ
{{graphviz(Foo)}} {{graphviz(option=value,Foo)}} {{graphviz(layout=neato,target=_blank,with_source,Foo)}}
- 指定したwikiページをdotテキストとみなしてグラフ画像をレンダリング。IMGタグを差し込む
- オプションは以下のとおり
- format={png|jpg}
- 画像形式。
- 現在のところpngとjpegだけ
- layout={dot|neato|fdp|twopi|circo}
- レイアウトエンジン指定。
- デフォルトはdot
- target={_blank|any}
- クリッカブルマップを生成する際のTARGET属性に指定する値
- 別ウィンドウで開くなら_blank
- with_source
- 画像の直後に読みこんだdotの内容をPREで出力
{{graphviz_me}} マクロ
// {{graphviz_me}} // {{graphviz_me(option=value)}} // {{graphviz_me(layout=neato,target=_blank,with_source)}}
- 別のwikiページを指定する代わりにこのマクロを含むwikiページをレンダリング対象とする。これ以外は{{graphviz}}マクロと同じ。
- 必然的に、dotフォーマット上のコメントアウトが必要。コメントアウトしないとレンダラがエラー終了する
dotの書式や指定できる値については、Graphvizチュートリアルがまとまっていて便利。
必要なもの
- Redmine 0.8.0 RC1 or later.
- Graphvizとrubyバインディング。本家でrpmを配布している。 http://www.graphviz.org
graphviz-2.20.3-1.el5
graphviz-gd-2.20.3-1.el5
graphviz-ruby-2.20.3-1.el5 - memcached (optional)
インストール
- redmine公式サイトの説明にもあるように、プラグインのアーカイブを展開してvendor/plugins/に配置してredmineを再起動するだけ(僕のところはmongrel+mod_proxy_balancerなので)
オプション
- レンダリングした画像をキャッシュしておくことができます。キャッシュを用いる場合は、memcachedとcache_storeを設定します。
- cache_storeの設定例
e.g.) config/environments/production.rb
config.action_controller.perform_caching = true
config.action_controller.cache_store = :mem_cache_store, "localhost"- redmineを再起動
- プラグインの設定ページ(管理→プラグイン→Wiki graphviz macro plugin)で、キャッシュ秒数を1以上に設定
僕の環境は以下のとおり。
CentOS 5.2
ruby-1.8.5-5.el5_2.6
mongrel-1.1.5
mongrel_cluster-1.0.5
redmine-0.8.0_RC1
memcached-1.2.6-1.el5.rf
MySQL-server-5.0.51a-tritonn.1.0.10
graphviz-2.20.3-1.el5
graphviz-gd-2.20.3-1.el5
graphviz-ruby-2.20.3-1.el5
既知の問題
- wikiのプレビューで編集中の内容をレンダリングできない
(wikiマクロに編集中の内容を受け取るI/Fがない。。。)
>> Home