なんだか巷ではWikiというのが流行っているようで(ってずいぶん遅いですが)、Wikiというのは、複数人で持って編集できる共有スペースみたいなもので、まあ近ごろいろいろ話題になっているWikipediaなんてのを想像してみてください。ひとつのテーマがあって、関連情報を集約したいと考えるとき、誰かがサイトを運営してくれたらそれに越したことはないけど、どうしても負担がかかったりしてうまくいかないことがある。そういうときにはWikiというのが断然便利で、オープンソース系のプロジェクトで使われていたり、まとめサイトを作るのに使われたりと、結構目にしているのではないかと思います。
で、ちょっと職場でWikiというアプローチもありますよって紹介する必要がありまして、いくつかWikiクローンをダウンロードしてためしてみたらなんだか面白そうで、うちのサイトでも動くかなあと設置してみたくなったのです。職場で試したのはPHPで動作するPukiWikiとPerlによるFreeStyle Wikiのふたつ。こととねに設置したのはFreeStyle Wikiです。
PukiWikiに興味を持ったのは、UTF-8化が可能ということと、実際にそうやって動作させている実績があるということが大きかったです。すべてのページをUTF-8に変えて、ちょこっと設定の変更もしたりして、職場に作っているテスト環境ではうまく動いてくれました。PHPはこととねでも使用可能ですから、これがうまくいくならこれがいいなあと、なにしろ私は無駄にUTF-8とかが好きですから、そんな風に思っていたのです。
ですが、残念。UTF-8がどうこういうまでもなく、こととねの環境ではPukiWikiはうまく動いてくれず、エラーが出るんですね。どうやらPHPの環境が古いものみたいで、いくつかの関数が正しく動作しないようなのです。なので、残念ながらPukiWikiは断念せざるを得ませんでした。
なので、FreeStyle Wikiを選択。もともと私が念頭に置いていたWikiクローンはといいますと、このFreeStyle Wikiだったのですが、というのも私が見慣れているWikiというのがFreeStyleWikiLiteを使っていまして、だからこちらのほうが馴染みがあったんですね。
けれど、PukiWikiに変えようとした。その理由は非常に単純なもので、UTF-8化ですね。FreeStyle WikiはEUC-JPを使っていて、別にEUCが悪いとはいいませんが、もし多言語での編集をする必要があったら困るなと、まったくもって発生するかどうかわからない心配でもって遠ざけてしまったのです。
こととねの環境で、FreeStyle Wikiは無事動作しました。なのでまずはこれを試してみて、けどちゃんと動くとなると、その先に進んでみたいような気もしますよね。というわけで、UTF-8化を試みてみました。
UTF-8化の手順については以下の通り:
UTF-8化の手順(覚書)
- 全ファイルをEUC-JPからUTF-8に変更
- wiki.cgiにuse utf8;を追加
- tmpl/site/default.tmplを編集
- 12行目、charsetをUTF-8に変更
- RSSプラグインの修正
- plugin/rss/rss.pmを編集
- 126行目、127行目:変換先エンコードをutf8に変更
- plugin/rss/RSSMaker10.pmを編集
- 210行目、127行目:変換元エンコードをutf8に変更
- これは、print RSS $xml;でかまわんような気がする(
むしろその方が問題がないと思う実際その通りだった)。- Googleプラグインの編集
- plugin/google/google.pmを編集
- 128行目、159行目:EUC-JPをutf8に変更
- PDFプラグインの編集
- plugin/pdf/PDFParser.pmを編集
- 10行目:use PDFJ 'EUC';をuse PDFJ 'UTF8';に変更
- 30行目:my $Encoding = "EUC-H";をmy $Encoding = "UniJIS-UCS2-HW-H";に変更
- lib/以下のPDFJ一式を更新(今回はv0.87に更新)
- lib/PDFJ.pmを編集
- 4982行目:croak "unknown image file extention: $ext"をコメントアウト
- 4983行目:unless $ext =~ /^jpe?g$/i;をコメントアウト
- 以上の変更に伴い、UTF-8のPDFが出力できるようになるが、弱ったことにMacintoshのPreview.appにおいては正しく表示されない
- 中韓フォントとエンコーディングを指定していないので中韓文字は表示されない。PDFJは中韓フォントの表示を限定的にサポートするらしいが、まだよく使い方をわかっていないので、この対処に関しては保留
UTF-8化
FreeStyle Wikiのコードは非常によく整理されていてわかりやすく、読んでいて実際勉強になりました。果たしてこれで問題が全部解決しているかというと疑問ではあるのですが、現状では問題らしい問題は出ていないようなので安心しています。
そんな感じで設置してみたこととねのWikiなのですが、はっきりいってこれを使う目的というのがまったく決まっていないわけで、きっと死んだコンテンツになるんだろうなという予感がひしひしとします。なんとか、うまく目的を作れるといいんですけど、こんなこといってるようでは駄目ですね。本末転倒です。