補足内容は次のとおりです。
- RSS Feed を適切にする
- エントリ一覧の文字化けを解消する
RSS Feed を適切にする
RSS Feed に関する問題点としては次があるようです。
- [$DocumentRoot$]の置き換えが公開時に行われない
- channel 要素の pubDate 要素の中の公開日時の書式が正しくない
私は直接試していません(そのまえに 1.3.5 に戻した)が、1 は随所で報告されているので確実でしょう。2 はまだ 1.3.6 を RSS にまで十分に使っているサイトを見かけていないので推測です。
[$DocumentRoot$]対策
t0mori さんがこれについてエントリ「続・iBlog 1.3.5 LatestBuild 040330」で既に書いています。iblogPatcher を使用されていない方はこの方法がよいでしょう。ただ、複数の blog を運営している方はこの方法では対応できないので、別解を書いておきます。
これは MY_REPLACE.plugin を使用するのが最も適切です。MY_REPLACE.plugin そのもについてはエントリ「独自 REPLACE を定義するプラグイン」を御覧下さい。
そのエントリにある blog 固有の REPLACE の定義方法 を使って[$DocumentRoot$]という REPLACE を作ってしまうのです。blog 定義ファイルに追加する内容は次のようになります。
# 独自の REPLACE を定義する
push @{$MY_REPLACE::Conf{'replace'}}, (
{
'name' => '[$DocumentRoot$]',
'value' => 'あなたの blog のベース URL',
'context' => undef,
},
);
注意) [ ] は全角で書いてあります。半角に置き換えて使用してください。
ここで あなたの blog のベース URL は blog のトップページの URL を http://your.server/path/index.html だとすると http://your.server/path とします。この blog でしたら http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips になります。
pubDate 対策
これは CHANGE_CONTENT.plugin と CHANGE_ENCODE.plugin を使用します。ただし、CHANGE_ENCODE.plugin は直接は使いません。そこに含まれている機能を流用します。
CHANGE_CONTENT.plugin のデフォルト設定 %Conf の FeedPage の設定の中に次の設定を追加します。ファイルバージョン v 1.10 のオリジナルでしたら 136 行目と 137 行目の間にです。
{
'condition' => '<pubDate>((?:[^<]|<(?!¥/pubDate >))*)<¥/pubDate>',
'replace' => '"<pubDate>".CHANGE_ENCODE::DateTimeRFC2822()."<¥/pubDate>"',
'option' => 'e',
},
エントリ一覧の文字化けを解消する
iBlog 1.3.6 では UTF-8 で日本語が出力されるので、エントリ一覧のデータを保持している entries.js も UTF-8 になっています。一方で、それ以前の iBlog の日本語の基本が Shift_JIS だったためエントリ一覧のページである ListEntry.html, ListEntryPCom.html, ListEntryNoHalo.html は Shift_JIS で書かれています。このためエンコードがちぐはぐになって文字化けを起こしているのです。
ですから Shift_JIS で書かれた html ファイルを UTF-8 にしてやればよいのです。手順はこうなります。
- UTF-8 で保存できるテキストエディタで使用しているエントリ一覧用の html ファイルを開く。
- 最初の方に二箇所ある Shift_JIS と書かれたところを UTF-8 にする。
- そのファイルを UTF-8 で保存する。
実は昨日一旦やったのですが、日本語環境で文字化けになる blog 名、カテゴリ名についても解決方法があります。ちょっとしたものなのですが、これは設定の範疇ではなく SJIS_BNAME.plugin の変更になります。あとは、iBlog が内部動作で出力する XHTML コードに変更があった箇所に合わせて VALID_XHTML.plugin などを微調節すれば一通り UTF-8 の blog サイトが出来上がります。
そうなのです。iBlog 1.3.6 は iblogPatcher があれば使えるバージョンなのです。そうだとすると、なぜ私がそうであるにも拘らず 1.3.5 に退行したかが不思議に思えるかもしれません。これは昨日のエントリの繰り返しになってしまいますが、
- テンプレートセットの中のテンプレートファイルに日本語を使うと文字化けする。
- blog の説明に & < " > を使うと RSS や XHTML が崩れる。
特に <$BlogDescription$> がどのテンプレートでも使えるようになったということは、使う場所によっては致命的になって、正しく表示できなくなるでしょう。
という理由からです。後者は & < " > を使わなければ済みますが、前者は即座にできる対応方法がないのです。そしてそういう表現上の制約を受けないために iblogPatcher を活用しているからです。仕事が一段落して時間ができたら 1.3.6 完全対応の iblogPatcher プラグインを作りますので、しばらくお待ち下さい。5 月になったら時間がとれそうです。