便利なMediaWiki用エクステンション2種

 MediaWiki用の強力なツールを2種類紹介する。スプレッドシートのデータをwikiに高速インポートするツールと、wikiからクリック一つで目次・ページ番号付きPDFブックを作るツールだ。

 MediaWikiは、Wikipedia.comなどのサイトで使われているオープンソース・ソフトウェアだ。単にwikiというだけでなく、Webサイトとイントラネットのための完備したコンテンツ管理システムでもある。しかし、MediaWikiをインストールしたあと、データをインポートするのに苦労した経験を持つ人は多いだろう。そんなときに大いに役立つのがGPLライセンスで提供されているPerlスクリプトcsv2wikiだ。これを利用すると、wikiに大量のコンテンツをインポートすることができる。利用するには、当然、Perlがインストールされていなければならない(Windowsの場合はActive Perl)。csv2wikiはwiki.plというPerlスクリプトを呼び出し、これがwikiにログインし記事を編集する。

 コンテンツをインポートする際は、まずコンテンツをスプレッドシート形式で用意する。各列には適切なヘッダーを付けておくこと。次に、テンプレートを用意する。wikiは、このテンプレートに従ってコンテンツをレイアウトしフォーマットする。スプレッドシートの列ヘッダーとwikiテンプレート上の指定は1対1に対応する。

 たとえば、画像付きの辞書をインポートする場合、次のようなスプレッドシート(tasty.csvとする)を用意する。

Term
Definition
Image
Tag
Apple
A delicious fruit.
apple.png
Fruit
Walnut
A tasty nut.
walnut.jpg
Nut
Asparagus
A tasty vegetable.
asparagus.gif
Vegetable

 そして、次のようなwikiテンプレート(Template:Tastyとする)を用意する。

  ==Term==
  {{{Term}}}
  ===Definition and Picture===
  {{{Definition}}}
  http://example.com/{{{Image}}}
  [[Category:{{{Tag}}}]]

 最後にジョブ・ファイルを用意する。CSVファイルのコンテンツをwikiにインポートする際に必要な情報をすべて含むファイルだ。ソース・ファイル、wikiのURL、ユーザー名とパスワード、分離符(デフォルトはコンマだが、タブや任意の正規表現を用いることもできる)、記事のタイトル、テンプレート名の各フィールドから成る。上のCSVファイルをインポートする場合、ジョブ・ファイル(tasty.txtとする)は次のようになる。ここで、記事のタイトルはスプレッドシートの第1列にあるが、ジョブ・ファイルでは「1」ではなく「0」と指定する点に注意。

  csv: tasty.csv
  wiki: http://example.com/wiki/index.php
  user: username
  pass: password
  title: 0
  template: Tasty

 以上の3ファイルが用意できたら、「perl csv2wiki.pl tasty.txt」というコマンドを実行する。これで、データがインポートされる。

 あらかじめCSVファイルに変換する必要はあるが、このツールでさまざまな情報源のコンテンツを高速にインポートすることができる。試用では、20を超える列を含むスプレッドシートの4,000以上の記事を1時間程度でインポートすることができた。

 csv2wikiは作者のサイトOrganicdesign.co.nzとWikiExpert.comにしかなく、ダウンロードするにはユーザーIDが必要だ。しかし、それだけの価値はあり、その後の制限はない。また、対価を支払えば、詳細な説明書とサポートを受けることができる。

Pdf_Book

 次に紹介するのは、PDFブックを作るためのMediaWikiエクステンションPdf_Bookだ。wikiのカテゴリーまたは記事一覧から自動的に作成された目次とページ番号が付く。特定の記事だけをPDFにしたい場合は、このエクステンションではなく、PDF Exportを使うこと。PDF Exportは、インストールするとwikiのtoolboxにリンクが作られるため、特定の記事を容易に変換することができる。

 Pdf_Bookは記事中の画像を取り込んだりマークアップで強制的に改ページしたりすることができる。インストールと構成はかなり複雑だが、それだけの価値はある。Pdf_Book(PDF Exportも)を利用するときは、HTML文書からPDFへの変換という裏方の仕事をしてくれるHtmldocをインストールしておく必要がある。また、php.iniファイルでPHPに割り当てるRAMの量を増やしておく必要もある。作者の推奨は64MB以上だ。最後に、注意点を一つ。このエクステンションではサブカテゴリーからコンテンツを作ることはできない。現時点では、記事内のヘッダー・レベルまでだ。

 あるカテゴリーからPDFブックを作るときは、カテゴリーのURLの後ろに&action=pdfbookを付ける。たとえば、「http://www.example.com/wiki/index.php?title=Category:Test&action=pdfbook」などとする。これを手入力してもよいが、このリンクを生成するテンプレートを作りカテゴリー・ページに置いておけば、wikiの利用者はこのリンクをクリックするだけでカテゴリー全体のコンテンツをPDFブックとしてダウンロードできるようになる。

 csv2wikiでwikiを速やかに充実させ、Pdf_BookでコンテンツからPDFブックを簡単にダウンロードできるようにすれば、利用者(あるいは上司)は強く印象づけられるだろう。

Linux.comでは毎週月曜日に、さまざまなエクステンション、プラグイン、アドオンを紹介しています。お使いのエクステンションなどについて、その概要、便利な点、活用のヒントを1000ワード以内にまとめてお寄せください(英語)。採用された方には100ドル進呈いたします(同じテーマのものが掲載済みまたは検討中の場合がありますので、あらかじめメール(英語)にてお問い合わせください)。

Linux.com 原文