7月9日

2012/7/9作成

ウィキニュースの短信を2本。アナン氏シリア入り、ロジャー・フェデラーがウィンブルドン制覇。

jawptoolを少しいじる。wiki2html(ウィキテキストをHTMLに変換する付属ツール)をちょこっと修正したりとか。

更にjawptool。リダイレクトかどうかの判定をしている処理がある。リダイレクト記事は'#redirect[[転送先]]'で始まっていないといけないんだけど、なんと'#'の前にホワイトスペース(スペースとかタブとか改行コード)が入っていてもいいんですね、MediaWikiって。そんなことをちーとも知らんかったんで、今回ようやく対応。あと'#転送[[転送先]]'は知ってたけど'#リダイレクト[[転送先]]'とも書けるというのも知ったので、これも対応。それにしても、こんな記法まで対応する必要あるのかなぁ。日本語でこれだけ対応しているということは、他の言語でも同じような対応をしているということだろうから、MediaWikiの内部ではものすごい記述の山になっているのではないだろうか。まあ私が心配することではないんだけれども。

更に更にjawptool。MediaWikiのデータベースダンプはXMLという形式なんだけど、これを解析するのにこれまではかなりいい加減なやっつけコードで処理していた。これはあまりにも醜いということで、今回コードを書き直してみた。と書くとあっさり出来たようだけど、かなり梃子摺ったんだよね。XMLを解析するのって結構面倒で。結局、多少問題の残るコードにはなってしまったんだけど、以前のやっつけよりはよっぽどましということでコードを差し替え。ただ、ちょっと遅くなってしまったのが困ったもんなんだけど。あとで高速化できないか考えてみよう。

ちなみにXMLの解析なんて処理は誰もが行うことなんで、当然にperl(jawptoolの記述プログラム言語)のライブラリにもそのようなものはある。あるものは利用するというのがこの業界の慣例なんだけど、今回はあえて自力で実装してみた。こういうことを"車輪の再発明"と呼んで、この業界ではタブーとされていることなんだけど、それでもやった。なんでかというと、jawptoolの実行環境を出来るだけシンプルにしたいという目標があるから。ライブラリを使えば簡単にプログラムできるんだけど、jawptoolの利用者(居るのか?)はjawptoolを実行するためにライブラリも用意しないといけない。それはまあ別に問題ではないんだけど、用意しなくても使えるようになっていると楽ではないかなと思うのでそうした。自分が他のソフトを使うときに「あれもこれもインストールするように」というのが苦手というのもありまして。あまり筋のいいことをしていないというのは自覚しているんだけど、まあ趣味で開発しているので好きなようにやってます。はい。


あおやぎのさいと2.0 新人うぃきめでぃあん日記