LoginSignup
7
8

More than 5 years have passed since last update.

MediaWikiフォーマットのテキストをHTMLに変換する

Last updated at Posted at 2014-05-10

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>$
7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8