[PEAR] Text_Wiki_Mediawikiを使ってみる | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

前回、「[PEAR] オリジナルのWikiエンジンを作れるText_Wiki 」で書いた、自分独自のWikiエンジンを作れるPEARパッケージのTEXT_Wikiですが、Wikipediaで使われているMediaWiki用の文法を使える、Text_Wiki_Mediawiki というパッケージもあるため、これを使ってみました。


現在、0.2.0というバージョンでまだアルファ版です。(2009年8月にアップデートされたばかり)

そのため実装されていない機能もあるかもしれません。



Text_Wiki_Mediawikiをインストールする


インストールは「pear install」で、といきたいところですがバージョンがアルファ版のためそのままじゃ上手くいかないかもしれません。


# pear install Text_Wiki_Mediawiki
Failed to download pear/Text_Wiki_Mediawiki within preferred state "stable", latest release is version 0.2.0, stability "alpha", use "channel://pear.php.net/Text_Wiki_Mediawiki-0.2.0" to install
Cannot initialize 'channel://pear.php.net/Text_Wiki_Mediawiki', invalid or missing package file
Package "channel://pear.php.net/Text_Wiki_Mediawiki" is not valid
install failed

のようなエラーが出た場合は、最後に「-alpha」をつけてインストールしましょう。


# pear install Text_Wiki_Mediawiki-alpha


基本的には、stableなものしかインストールさせないための措置です。

詳しくは、PEARのマニュアルページ を参照。


あと、Text_Wikiを拡張して作られているため、Text_Wikiパッケージも必要になります。



Text_Wiki_Mediawikiを使ってみる


使い方は、Text_Wikiと基本同じですが、ファイルの読み込みとクラスオブジェクトの生成方法が異なります。


<?php

require_once "Text/Wiki/Mediawiki.php";

$wiki=new Text_Wiki_Mediawiki();

$wiki->setFormatConf('Xhtml','translate',HTML_SPECIALCHARS);

$text = "{|
|-
|ほげほげ
|-
|ふがふが
|}";

echo($wiki->transform($text,'xhtml'));
?>

$ php mediawiki.php

<table>
    <tr>
        <td>ほげほげ</td>
    </tr>
    <tr>
        <td>ふがふが</td>
    </tr>
</table>


この例では、前回の「[PEAR] オリジナルのWikiエンジンを作れるText_Wiki 」の最後に書いたサンプルと違い、テーブルの表記がMediawiki流になっています。


使える文法は、PEARパッケージのMediaWiki内のディレクトリを覗いてみればわかります。


# ls /path/to/pear/Text/Wiki/Parse/Mediawiki/
Break.php    Deflist.php   List.php          Raw.php        Superscript.php  Url.php
Code.php     Emphasis.php  Newline.php       Redirect.php   Table.php        Wikilink.php
Comment.php  Heading.php   Preformatted.php  Subscript.php  Tt.php


Text_Wikiと比べて利用できる文法は少ないですが、MediaWikiに普段から慣れているという場合は、こちらを利用した方が便利かもしれませんね。
いいとこ取りすれば、オリジナルのWikiエンジンを使うことも可能です。