MediaWikiフォーマットのテキストをHTMLに変換する。MediaWikiフォーマットのParserは色々ありますが、今回はMediaWikiに含まれるオリジナルのParserを使って変換します。
MediaWikiのインストール
MediaWikiの最新バージョンを拾ってきて適当に設置。
$ wget http://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gz
$ tar zxvf mediawiki-1.22.6.tar.gz
設定ファイルの作成
インストールスクリプトを使って、設定ファイルとデータベースを生成します。データベースは、このためだけにMySQLやPostgreSQLを準備するのは面倒なので、SQLiteを使用。
$ cd mediawiki-1.22.6
$ php maintenance/install.php wikiname adminname --pass=password --dbtype=sqlite --dbpath=./
方法1: parse.phpを使って変換
maintenanceディレクトリに含まれるparse.phpをコマンドラインから叩いて、MediaWikiフォーマットのテキストをHTMLに変換することができます。
サンプル:
$ php maintenance/parse.php --title foo
''[[foo]]''^D
<p><i><strong class="selflink">foo</strong></i>
</p>$
$ echo "'''bold'''" > /tmp/foo.txt
$ php maintenance/parse.php /tmp/foo.txt
<p><b>bold</b>
</p>$
$ cat /tmp/foo | php maintenance/parse.php
<p><b>bold</b>
</p>$
方法2: PHPスクリプトファイルからParserクラスを呼び出して変換
Parserクラスをスクリプトファイルから直接呼び出して変換することもできる。こちらのほうが細かい制御が出来そう。
サンプルスクリプト
wiki2html.php
<?php
include_once('maintenance/commandLine.inc');
$parser = new Parser();
$output = $parser->parse(
"this is a ''sample''",
Title::newFromText('title'),
new ParserOptions()
);
echo $output->getText();
実行
$ php wiki2html.php
<p>this is a <i>sample</i>
</p>$