Document Actions
Zope
Up one levelDocument Actions
COREBlogのStructuredText
ところで、COREBlogのStructuredTextがよく分かりません。URLリンクの指定の仕方とか、普通のStructuredTextと違うんでしょうか?
仕方がないので今はStructuredTextの中にbrとかhrefとか書いてます。めんどくさいなぁ。
日本語の問題
COREblogで、UTF8表示に設定しているのにHTTPレスポンスヘッダーに8859-1とか出しているっぽいので、しかたなく blog_header の先頭に以下を追加:
dtml-call "RESPONSE.setHeader('Content-Type','text/html;charset=utf-8')"
邪道だなぁ。
そして、ハイパーリンクの対象となる文字列に日本語を使うと、 "俺サーバー":http://www.freia.jp/ となってしまうことが判明。 なんでだろ?
- Category(s)
-
Zope
COREblogにおける日本語の問題
COREblog は標準では検索機能が使えません。HowTo に使えるようにするための手順は載っていますが、それだけでは日本語の検索がうまくいきません。原因はパーサーが日本語をパース出来ないところにあります。(自分の環境固有の話かもしれませんが‥‥)
そこで、"mojix":http://mojix.org/ 氏作の"MJSplitter":http://zope.org/Members/mojix/MJSplitter/ を導入します。このプロタクトは、形態素解析器"MeCab":http://chasen.aist-nara.ac.jp/~taku/software/mecab/ を用いて日本語を解析し、カタログ化するZCTextIndexのパーサーとして機能します。
"MJSplitter":http://zope.org/Members/mojix/MJSplitter/ を手順に従ってインストールすると、ZCTextIndexのWord SplitterとしてMJSplistterを選択できるようになります。COREblogフォルダのcontentsタブでlexiconオブジェクトを削除して、lexiconという名前でZCTextIndexを追加後、EntryタブでRecatalogすると日本語を含むカタログが生成されます。
自分の環境は以下ような感じです。
- UTF-8
- "Zope2.7.0":http://zope.org/Products/Zope/2.7.0
- "COREblog0.61b":http://coreblog.org/
- "MeCab0.76":http://chasen.aist-nara.ac.jp/~taku/software/mecab/src/
- "ipadic2.5.1":http://chasen.aist-nara.ac.jp/stable/ipadic/
- "MeCab-python-bindings0.76":http://chasen.aist-nara.ac.jp/~taku/software/mecab/bindings/
- "JapaneseCodec1.4.10":http://www.python.jp/pub/JapaneseCodecs/JapaneseCodecs-1.4.10.tar.gz
ZWikiがiso-8859-1で表示される問題
自分はWebサイトをUTF-8で構築しているのですが、なぜかZWikiのページだけがiso-8859-1で表示されてしまっていました。ソースを表示してみると、metaタグでちゃんとcharset=utf-8と書いてあるのですが、パケットキャプチャーしてみたところ、ResponseHeaderに:
Content-Type: text/html; charset=iso-8859-1
の1行が。
OperaはmetaタグよりもResponseHeaderを優先するので、Operaユーザーとしては見過ごせません。というかResponseHeaderとmetaタグの記述が一致してないという方が問題ですが。
そこで、Zopeのソースを眺めたり、ZWikiのソースを眺めたり、Zope-MLの過去ログを漁ったり‥‥と色々と調べてみた結果、よく分かりませんでした(笑)。そこでふと思ったのが、「apacheが何かしてるんじゃないか?」という事でした。そういえばサーバー移行のときに *ついでに* FrontEndにapache2を配置したような‥‥。
さっそくapacheのhttpd.confを修正したところ無事問題解決。1時間くらい悩んでしまいました‥‥。
変更部分::
#AddDefaultCharset ISO-8859-1
AddDefaultCharset UTF-8
ZWiki以外はContent-TypeをResponseHeaderに入れるようにしているので、省略時にDefault値をapache2が入れていた事が原因のようです。
# それはそれとして、そろそろZWikiコンテンツの内容更新しないと‥‥
ZWikiでコメント追加後にOperaでリロードされない問題
ZWiki で以前から気になっていた挙動に、"コメント追加後にOperaでリロードされない"という問題があります。ただ、コメント追加後にリロードするとちゃんとコメントは追加されているようです。
これについてもResponseHeaderのContent-Typeを調べたとき同様パケットキャプチャーしてみたところ、POSTメソッドでコメント追加を行った後で以下のような応答がサーバーからありました::
HTTP/1.1 302 Moved Temporarily
Date: Sat, 24 Apr 2004 06:56:13 GMT
Content-Length: 0
Etag:
Location: http://www.freia.jp/taka/test/zwiki28/X_e5_ae_9f_e9_a8_93_e7_94_a8#bottom
Content-Type: text/plain; charset=UTF-8
また、ZWiki以外の掲示板ではどうなるのかな、と思って、COREblogのコメント追加で実験してみました::
HTTP/1.1 302 Moved Temporarily
Date: Sat, 24 Apr 2004 08:02:07 GMT
Content-Length: 36
Etag:
Content-Type: text/plain; charset=UTF-8
Location: http://www.freia.jp/taka/test/blog/4
X-Pad: avoid browser bug
http://www.freia.jp/taka/test/blog/4
一番の違いは、後者には本文にLocationと同じURIがあることです。もしかしたらこれが原因?と思い、"RFC2616":http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html を読んでみましたが‥‥よく分かりませんでした(^^;; ZWiki改造して本文にもURI書いたら直るかなぁ‥‥
#実はX-Padの方が原因だったりして。
ZWikiでIssueTracker
ZWikiのIssueTrackerは使いにくいと思います。でもZopeの他のプロタクトに比べるといくらかましかもしれません。
使いにくい原因の一つとして、Issueの追加画面に利用方法とかを書いておきたいのにカスタマイズがしにくい、という点があります。というか、そもそもIssueTrackerを使えるようにするまでが苦難の道でした‥‥。
IssueTrackerを使えるようにするためには、以下のようにURLを入力します。
- http://..../FrontPage/setupTracker
しかし、これではカスタマイズ可能にはなりません。カスタマイズするためにはIssueTrackerページをコンテンツとしてコピーしてこなければいけないのです。そのためには、以下のようにします。
- ZWikiのFolderに'allow_dtml'というAttributeをbooleanで追加し、Trueに設定。
- http://..../FrontPage/setupTracker?pages=1
これで、コンテンツにIssueTracker,FilterIssueが追加されます。
- Category(s)
-
Zope
ZWikiで目次が常にFrontPageを指す問題
ZWikiで目次リンクを辿ると、ZWikiコンテンツ一覧が表示されます。現在閲覧しているページには"You are here!"というメッセージが付くのですが‥‥いつの頃からかこのメッセージが常にFrontPageに付くようになってしまいました。
この問題は少なくとも0.28.0~0.30.0で見られます。
原因はUtils.pyでURLを決定する部分が間違っているため。pageUrl()を使うべきところでdefaultPageUrl()を使っているため、現在のページではなく常にFrontPageが使われてしまうのでした。
とりあえず、 ZWiki.orgのIssueTrackerに "レポート":http://zwiki.org/IssueNo0809 を上げておきましたが、この調査をしていて気づいたことが。
Default.pyに入っているデフォルト設定を変更すると色々カスタマイズ出来るんですね。今回はとりあえず SCROLL_CONTENTS=1に変更して、目次表示時に現在のページ部分までジャンプするようにしてみました。(こうするとUtils.pyをいじらなくても問題がない‥‥明らかにバグですね)
Default.py には他にもJavaScriptの許可・ページ名変更時の旧ページ保存の可否等がありました。
- Category(s)
-
Zope
Re: ZWikiで目次が常にFrontPageを指す問題
ZWiki.orgのIssueTrackerに投稿したはずのIssueが消えてる‥‥というか別のに置き換わってる?なんで?
Plone2.03も日本語がっ
会社の上司にZopeを紹介してみました。紹介と言っても業務ではなくプライベート の範疇で、ですが。で、Zopeを簡単に強力に使う手段として Plone (ZopeのProduct)を勧めてみました。Ploneで構築されているサイトの例としては 沖縄ITポータル が有名らしいのでついでに実例と 言うことで紹介しました。
ところで、個人的にはPloneもCMFも使ったこともないしよく分からないというのが 実情だったので、紹介しておいて知らないというのもなぁ‥‥ということで Windows版の2.03をインストールして軽くさわってみました。
Windows版、楽でイイですね。やっぱり最初の1ステップは楽な方が人に勧めるのに 抵抗がなくて良いと思います。
それはさておき、とりあえずデフォルトのトップページを日本語にしてみよう、と 思って:
"沖縄ITポータル":http://okiit.okihawk.org/
と書いてみたのですが、リンクになってくれません。しかし、 先日の件 もあり、すぐに ZopeのStructuredTextが腐っ てるんだ!と思いつき、さくっと対応できました。
パッチは ここ のを当てて、修正したpyファイルを手動で再コンパイル。再コンパイルの方法は、 pythonのMLで教えてもらった方法で手軽に(?)行いました:
> cd (ploneインストールフォルダ)\Zope\lib\python\StructuredText > (ploneインストールフォルダ)\python\python.exe --python起動-- >>> import DocumentClass >>> import STletters >>> (Ctrl-Zで終了)
ところで、このコンパイル方法って本当に手軽なのでしょうか?pycが無い場合は自 動的にコンパイルして生成してくれる方法がありそうな気がします。

こうすんでない?
"google"なら良いんだけど、"日本語"だとダメみたい。日本語のパースがうまくいってないな‥‥日本語関連のライブラリいじったから?
ふむむ。。
あと Entry.py で
#Formats
format_plain = 0
format_stx = 1
format_html = 3
format_wiki = 2
なのに EntryPage ではWikiが無いのはなんでだろ。
SettingFormに0,1,2しかoptionを書いてないからですね。理由は不明だけど。
今更かもしれませんが、StructuredText で日本語が扱えないのは、 Zope の StructuredText の実装が腐ってるせいです(^^;
このへん参照。
多分2.7でもまだ直ってない。
2.7だとReStructuredTextが標準で入ったようだけど、そっちだとたしょうはましなのかな?
使ったことないからわかんないや
情報ありがとうございます~。
おかげさまで、パッチを当てたら直りました。
パッチは以下のURLのを使いました。
頂いたURLで語られている状態よりはなんぼかましになっているみたいですが、2.6→2.7では全く変わっていないようです。(おかげでパッチがそのまま適用できましたが‥‥)
reStructuredText については日本語で不自由した事は‥‥ちょっとあります(^^
UTF-8を使っていると日本語の全角文字も1文字として数えてくれるのは良いのですが、テーブルを作るために列あわせをするときに半角・全角とも1文字で数えちゃうんですよね。これはZope-mlで相談したらパッチを作ってもらえました。