« QuickREx | Main | Apache Derby »

2005.07.31

Tracで日本語Wikiページ

 Tracにおいて、日本語Wikiページが使えない・・・と書いたことがありますが、少しの修正で使えることが判明。
 urllibというライブラリに含まれているquote関数で、日本語を上手い具合にエスケープしてくれるみたいですね。tracに含まれているutil.py中のhref_join関数の戻り値に対してquoteを適用したところ・・・Subversionリポジトリの日本語ファイル名に対して二重でエスケープしてしまうため、不採用。なもんで、とりあえずHref.py内のwiki関数部分のみに適用してみました。


def wiki(self, page=None, version=None, diff=0, history=0):
if page and version and diff:
return urllib.quote(href_join(self.base, 'wiki', page)) + '?version=' + str(version) + '&diff=yes'
elif page and version:
return urllib.quote(href_join(self.base, 'wiki', page)) + '?version=' + str(version)
elif page and history:
return urllib.quote(href_join(self.base, 'wiki', page)) + '?history=yes'
elif page:
return urllib.quote(href_join(self.base, 'wiki', page))
else:
return urllib.quote(href_join(self.base, 'wiki'))

こんな感じ(多分、もっとスマートな書き方ができると思います・・・最初にpage = urllib.quote(page)と書けばよかったかも)。

 ってか、よく見てみると、browser関数等は既にquote処理的用済みだったんですね。wiki部分に関してquoteが適用されていなかったのは何故だろう・・・? もしかしたら、どこかに不都合があるのかもしれません(ざっと使った感じでは問題ないようですが・・・だからといって、動作を保障するというわけではありませんが)。

|

« QuickREx | Main | Apache Derby »

Subversion・Trac・etc.」カテゴリの記事

Comments

0.8.xでどうだったかもう記憶のかなたなのですが、特に問題なく使えてたに思うです(あまり定かではないですが)。
すくなくとも0.9preで日本語ページをバリバリ使ってます。
とくに修正もせずに、問題も無く。URLはUTF-8で、escapeされたものになってます。

Posted by: かえるくん | 2005.08.16 14:45

OSやApacheの設定などにもよるのかもしれませんね。僕のところ(WinXP+Apache2.0.54)では、0.8.4だと日本語名のWikiページを使用した場合、かなりの確率でNGとなってしまいます。ちなみに、0.9preでは日本語ファイル名を添付ファイルとして登録しようとした場合に問題なく登録できますか? 0.8.4では、UTF-8のエンコーディングの処理部分でエラーが発生する確率が非常に高いです。どうもos.pathのライブラリの内部で文字が変になってしまっているような?? もしかしたら、Pythonのバージョンなどにも影響を受けたりするんでしょうかねぇ・・・。

Posted by: syo | 2005.08.16 22:30

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Tracで日本語Wikiページ:

« QuickREx | Main | Apache Derby »