MoinMoin DesktopEditionを使う

 以前1.5.8の時には、MoinMoinにはPythonの組み込みWebサーバを使った、IIS/ApacheレスなDesktopEditionが別パッケージとして提供されていた。ダブルクリックでローカルでお試しに使うにはちょうどよい感じ。

 今回1.6.3や1.7.0rc2を覗いてみると、本流のパッケージにスクリプトが同梱されたもうよう。Windows環境で、Python がインストールされていれば、すぐに使えます。

1.6.3の場合

  1. パッケージ解凍後 moin.py を実行する
  2. ブラウザで http://localhost:8080/ にアクセス
  3. ポートを変更したい場合は moin.py 中の "port = 8080" を適度に変更

1.7.0rc2の場合

  1. パッケージ解凍後 wikiserver.py を実行する
  2. ブラウザで http://localhost:8080/ にアクセス
  3. ポートを変更したい場合は wikiserverconfig.py 中の "port = 8080" を適度に変更

 Pythonの組み込みWebサーバーを利用することで、Basic認証・セキュリティ設定などWebサーバー固有の機能は使えなくなりますが、気軽に使うにはDesktopEditionはお勧めです。Moinの場合、作成したページはファイルシステム上に(普通のファイルとして)保存されるのでDBのセットアップもいりません。

MoinMoin 日本語ファイルアップロードが失敗する

 Moin 1.5.8, 1.6.3, 1.7.0rc2と試したのですが、どうやら日本語ファイル名のファイルを添付すると、うまく保存・表示ができなくなるようです。MoinMoinBugにも、似たようなバグが報告されていました(中国語での不具合)。

 ざっと読んだところでは、AttachFile.pyという添付ファイルを処理するプログラムの中で、添付ファイルのファイル名をデコード・エンコードする処理に、charset として utf-8 を必ず使うのが原因とのこと。ファイルシステムにはファイルシステム固有の charset を "sys.getfilesystemencoding()" で取得して使って欲しいとの要望がでていました。

 しかし開発者サイドからは、すぐに同意した様子でもなく、まだ1.7.0rc2でも改善されていないので、方向性はきまってない模様。これがあると他に困っているところは小さな問題なんだけれどもなぁ。。。

 改善案を採用すれば、同じ言語を使うOS上では問題ないのだろうけれども、他に移植したときに問題がでそう。ん。。。難しい問題に見えてきました。

 同じエンジンを採用しているTrac上のWikiでは同様の問題がでていません。これは、TracWikiではバックエンドにSQLightを使用しているためと思われます。Moinはファイルシステムを使うため、この辺の問題がでてくるのかも。Tracでも、Wiki上のページは、attachmentsディレクトリ以下に格納されますが、ファイル名のエンコード方法として、UTF-8をURL-EncodeしているのがMoinとの違いなのかもしれません。(discypusさんのコメントを解釈して書き直し)手軽なんでこのコンセプトは保持してもらいつつ、良い解決方法がでてほしいものです。Tracのattachment.pyをちゃんと理解すれば、解決できそうな気もする