pukiwikiを移動してみた

日記とか仕事の備忘録とかを記録している、wikipediaみたいなシステムを移動してみましたが、これが意外と手の掛かるものでございました。

とは言うものの、本来の移動は簡単です。

pukiwikiはPHPで書かれたシステムで、DBも使っていません。そして、書き込んだ内容自体は、wikiディレクトリの下にあります。
ですので、移動する場合は、新規にシステムをコピーして、wikiのデータを上書きするだけで完了になります。

pluginとかデザインとかを変更している場合は、変更したものを上書きすれば移動終了です。

私は、凝ったことは何もしていないので、基本的にはこれで終了なのです。

以下は蛇足でございます

今ならば、文字コードは間違いなくUTF-8にするのですが、なぜか以前立ち上げた時は、EUCにしていました。
どうして、そんなことをしたのかは判りませんが、これがいらん作業をするはめになった原因ですな。

まずは、ファイル自体をEUCからUTF-8に変換するのですが、iconvというコマンドを利用すれば簡単に変換できます。
ただし、機種依存文字があると止まってしまうので、-Cオプションを付けないといけませんな。

pukiwikiのデータは、ページの題名をurlエンコードしてファイル名にしています。(%記号は抜いた形になります)
PHPのrawurlencodeでは、英数字といくつかの記号をエンコードしないのですが、pukiwikiでは、文字コードに変換しています。

ということで、こんな手順でファイル名を変換してコピーしました。

1.データファイル名の一覧取得
2.2文字ごとに%記号を代入(マクロを使用)
3.rawurldecodeでファイル名を復元
4.英数字を文字コードに変換(これもマクロを使用)
5.rawurlencodeでファイル名を変換
6.%記号を消去
7.最初のファイル名との対応を取得
8.mvコマンドでファイル名を変更

まぁ最初からEUCからEUCにしておけば、こんな作業もいらないのですが、今後を考えればUTF-8だろうってことで変換したってことですな。

さらに蛇足

仕事の備忘録を書いているのですが、前月のメモを基にして、今月のメモを書いていく形にしております。

pukiwikiには、編集画面で雛形とするページを選べる、というとても便利な機能があります。
以前は、全ページから選択することができたのですが、ver1.5.2から全ページが100ページ以上あると表示しないように変更されました。
表示スピードを落とさないためのようですが、私にとっては困った仕様変更です。

いろいろ調べた結果、lib/html.phpの$page_maxという変数によって、最大ページ数が決められているようなので、1000に変更してみました。
この先を考えたら80年分もあれば十分過ぎるでしょ、ということです。