iBlog 1.x の RSS
最後の砦を攻略するには
iBlog 1.x の RSS も色々な欠陥が改善されつつ進展してきて、エントリ「iBlog 1.4.6 の RSS のために必須の設定 」で述べたテンプレートの書き換えを残すのみかのようですが、実はまだ一つ問題が残っています。複数の enclosure 要素問題です。
2005年12月19日 更新しました。
概要
問題の解説
複数の写真を添付した一つのエントリが今 RSS に載っている人は Feed Validator でチェックしてみてください。enclosure 要素が複数あると怒られるはずです。RSS 2.0 の文法としては一つのエントリ(item 要素)に一つのメディアファイル(enclosure 要素)の記述までが許されているのです。
このため RSS に関するサービスやツールの一部では正しくない RSS という理由で一つの item 要素の中に複数の enclosure 要素が入っている RSS を受け付けないことがあります。例えば Bulkfeeds はそうです。
iBlog 単独でこれを回避するためには RSS のテンプレートファイルである FeedPage.txt を編集して <$EntryEnclosure$> と書いてある部分を削除するか <!-- --> で囲ってコメントにするしか方法はありません。
しかしながらこうすると enclosure 要素が作成されないので PodCast ができない RSS になってしまいます。iBlog 1.4.6 でサポートされているにもかかわらずです。
解決方法の要旨
PodCast を可能にしたまま enclosure 要素を一つのエントリに複数作成させないためにはどうしたらよいのでしょうか? 一つは方法はエントリ一つにあたり添付する画像や音声ファイルあるいはムービーその他の何かのファイルは必ず一つまでに抑えてエントリを書くというものです。しかしこれではエントリの内容に制限が強くてあまり好ましくありません。
複数の enclosure 要素が生成されてしまうのなら、幾つかを削除して一つだけにしてやればよいのです。そして PodCast 用でない enclosure 要素は不要なので削除します。そもそも enclosure 要素が必要な場面というと PodCast のときだけでしょう。それ以外の場合はエントリをブラウザで見に来ればいいのです。PodCast は音声ファイルの配信ですからこうはいきません。ですから enclosure 要素で iTunes のようなクライアントが自動で取得できるようにしておく必要があるのです。もちろん iBlog 単体では不可能です。何らかの補助ツールを使う必要があります。
このサイトで公開している iblogPatcher でも可能ですが、iblogPatcher は自由度が高い反面難易度も高いので別な方法を紹介します。それは UNIX 由来のツールで Mac OS X にもバンドルされている awk というものを使う方法です。そしてもちろん iblogPatcher でもこの方法を取り入れることができます。
RSS を整形する command ファイル
awk というのはテキストを入力として様々な処理をすることができるツールです。ここに iBlog が生成した RSS を流し込んで整形してしまおうというアイデアです。このために awk を使用する command ファイルを作成してみました。
このアーカイブを解凍すると uniEnc4iBlog.command というファイルが出てきます。解凍途中で uniEnc4iBlog.tar というファイルができるかもしれませんが、それは不要なので捨ててください。この command ファイルは iBlog がプレビューのために生成した全ての RSS ファイルに対して次の整形します。
PodCast 用でない enclosure 要素を全て削除する。
PodCast 用でも複数の音声ファイルに関する記述が一つのエントリに現れる場合は、それをそのエントリの最後の一つだけにする。
uniEnc4iBlog.command はダブルクリック(オープン)すれば実行されます。もしアプリケーションが関連付いていないと怒られるときは command-I で uniEnc4iBlog.command の情報を表示させて、そこでターミナルで開くように設定してください。アーカイブを作成する段階ではそうしてあります。
補足
uniEnc4iBlog.command は iBlog 1.4.6 用です。それ以前の iBlog でも使えないことはありませんが enclosure 要素が全て削除されるだけになるでしょう。それなら RSS のテンプレートファイル FeedPage.txt を編集して enclosure 要素の行を削除するだけで十分です。わざわざ uniEnc4iBlog.command を使う意味がありません。
2005年12月19日 更新
一時ファイルが /tmp/ に残るケースがあったので修正しました。このエントリを公開した翌日に気付いていたのですが /tmp/ に残された一時ファイルは Mac OS X の再起同時に自動で削除されるので放置していましたが、やっぱり気になるので修正しました。
Posted: 04:26
|
Comment
|
Trackback
Trackback Ping URL(U)
以下、類似エントリです。
JavaScript が有効でないと類似エントリは表示できません。