バッチファイルやrubyで記述したPukiwikiプラグイン
Pukiwikiプラグインを自作するとき、PHPの知識が必要になりますが、私はほとんど知りません。私の知っているJavaやRubyでプラグインを作成できると便利なのに・・・、と思って調査してみました。
PHPをまったく使わないプラグインを作成することは出来なさそうです。そのため、次のような方法になりそうです。
1.自由な言語で目的の処理をするファイルを用意する
2.PHPにて上記1を実行するだけのプラグインを作成する
バッチファイルによるPukiwikiプラグイン
pukiwikiホームディレクトリ\plugin\test20090409a.inc.php
<?php function plugin_test20090409a_convert() { $output = shell_exec('plugin\test20090409a.bat'); $output = htmlspecialchars($output); $output = str_replace(array("\r\n", "\n", "\r"), "\n", $output); return '<pre>' . mb_convert_encoding($output, "EUC-JP", "SJIS") . '</pre>'; } ?>
pukiwikiホームディレクトリ\plugin\test20090409a.bat
echo "test20090409a.bat Start" echo "test20090409a.bat End"
Ruby言語によるPukiwikiプラグイン
pukiwikiホームディレクトリ\plugin\test20090409b.inc.php
<?php function plugin_test20090409b_convert() { // 拡張子rbがrubyコマンドに関連付けられている場合 //$output = shell_exec('plugin\test20090409b.rb'); // rubyコマンドを指定して実行する場合 $output = shell_exec('"C:\Program Files\ruby-1.8\bin\ruby.exe" plugin\test20090409b.rb'); $output = htmlspecialchars($output); $output = str_replace(array("\r\n", "\n", "\r"), "\n", $output); return '<pre>' . mb_convert_encoding($output, "EUC-JP", "SJIS") . '</pre>'; } ?>
pukiwikiホームディレクトリ\plugin\test20090409b.rb
#! ruby p "test20090409b.rb Start" p "test20090409b.rb End"
動作環境
- Windows Vista
- Apache 2.2.11
- PHP 5.2.9
- PukiWiki 1.4.6