redmineのwikiにgraphvizを使った画像を埋め込めるようにするマクロ。
https://github.com/tckz/redmine-wiki_graphviz_plugin
graphviz_meマクロは、このマクロが埋め込まれているwikiページ全体をdotとみなして画像描画する。
wiki編集中のプレビューの際に、wikiマクロに渡ってくるモデル(WIkiContent)が保存済のもののため、今現在編集している内容で描画できていなかった。(一旦保存する必要があった)
よくよく考えてみれば、wikiマクロが呼び出されたときのselfがviewを指しているのでリクエストのパラメータも取得できるのだった。
マクロの挙動がformの構造に依存するのはイヤだと思いつつも、保存しないでプレビューできたほうがマシか。
編集中テキストのプレビューの場合は画像をdataスキームでimg@srcに直接入れちゃうことにした。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg・・・TkSuQmCC">古いブラウザだと表示できないけど。
画像部分の通信サイズが大きくなるけどレスポンス一回で画像もHTMLも返せると、取得した編集中テキストをまるごと受け取って画像を返すactionを新設しなくていい。
環境:
CentOS 6.2 x64
ruby-1.8.7-p352
mysql-server-5.1.61
graphviz-2.26.0
redmine-1.3.0
>> Home