RubyでPukiWikiプラグインを書くごく簡単な方法
ずいぶん前からイントラネットでのWikiにはPukiWikiを導入してる。
最近、プロジェクトダッシュボード的にWikiを使い始めていて、ちょっとしたプラグインが書きたくなったけどPHPだと辛いなー、ということでどうにかRubyで書く方法を模索。
簡単な方法を見つけた。
それはshell_exec()関数を使う方法
たとえば、以下のような内容のファイルを PukiWikiのpluginフォルダにプラグインを配置する。(以下のファイルの例だとファイル名を "hello_ruby.inc.php"とする)
<?php function plugin_hello_ruby_convert() { return shell_exec("/usr/bin/ruby /path/to/plugin/hello.rb"); } ?>
で、/path/to/plugin/hello.rb
というファイルに以下のようなRubyスクリプトを書いておく。
puts "Hello PukiWiki."
#hello_ruby
PukiWikiのプラグインを通してRubyのスクリプトが実行され、その結果"Hello, PukiWiki"がPukiWikiのページに表示されたことがわかる。
ちょっと応用してErbをつかってみる。
<?php function plugin_hello_ruby_convert() { return shell_exec("/usr/bin/erb /path/to/plugin/hello.erb"); } ?>
/path/to/plugin/hello.erb に以下のようなスクリプトを記述
<h2>Hello, Erb world.</h2> <ul> <% ["ほげ", "ふが", "もげ"].each do |i| %> <li><%= i %> <% end %> </ul>
実行してみる
レンタルサーバとかだとshell_exec()使えなかったりするかもしれないけど、イントラネットの自前のサーバで使う分にはけっこう便利だったりする。