«名古屋鉄道全線制覇の旅(後編) .. メイン 過去最短記事» 編集

2005-08-09 [tDiary] RSSにおける<%=image()%>展開不具合

最近RSSリーダ活用中な私、blogと日記を足して2で割ったような運用をしているここNEO業務日誌でもwhatsnew-list.rbでRSSを出力しています。

絵日記プラグイン

"名古屋鉄道全線制覇の旅(後編)"の記事(第一夜〜最終夜)では、写真をupするためにひさしぶりにimage.rbを使用したわけですが、いざRSSリーダでそれらの記事を見てみると全部同じ写真になっていて、なんだこりゃ!?という状態でした。

画像がすべて同一URLに;_;)

ブラウザの問題かどうかの切り分けのためにまずRSSの内容をチェック、それぞれの画像がまったく同じURLになっていたことから、ブラウザはシロ。・・・そうなるとtDiary側がクロということであるわけで、やっかいなモノをみつけてしまったなぁというところ。まぁ夏休みでまったりモード、時間がたっぷりあるのでwhatsnew-list.rbとimage.rbを解析してみました。

記事表示時の<%=image()%>

えーと、簡単に説明すると以下のような流れで<%=image(〜)%>が<img 〜>に展開されているようです。

    記事表示開始

    image.rbのbody_enter_proc ... @image_date にその記事の日付が設定される

    apply_plugin()でプラグインの展開が行われる

    image.rbのimage ... @image_date をみて実際のURLに変換

    その記事とともに、その日の画像が表示される

RSS出力時の<%=image()%>

    記事書き込み...その記事の日付が@image_dateに設定される

    whatsnew-list.rbのupdate_proc
     (1)過去n日分の記事を"xml"に設定
     (2)apply_plugin(xml)でn日分の記事をまとめてプラグイン展開しファイル出力
        →書き込んだ記事の日付(@image_date)のままimage.rbが呼ばれるため、誤ったURLが展開されてしまう

    RSSリーダ上で同一の写真が表示されてしまったりする

whatsnew-list.rbを修正

通常の記事表示以外でapply_plugin()するケースにおいて、image.rb側ではその記事の日付を知る手段がないということが原因でした。

というわけで、whatsnew-list.rbにおいて、@image_dateを書き換えながら個々の記事ごとにapply_plugin()してあげることでどうにかなりました。

・・・whatsnew-list.rbがimage.rbの@image_dateを書き換えるというのはちょっといやな感じですが、とりあえず表面上問題なくなったので・・・

#makerss.rbも同様らしく、展開前後でbody_enter_procやbody_leave_procをコールするという力技を使って回避してみたという記事も見かけましたが、今現在、実際にどうなっているのかまでは確認してません..;)

というわけでいつものページにおいてます

これまでと同様一切保障しませんが、ほしいという奇特な勇者様はいつものページからダウンロードしてください( ..)_

2005年08月09日 22:07更新

過去の日記
<< 2005/08/ 1 2 2. 今年はなんといってもTHE YEAR OF AICHI
3. もうひとつのTHE YEAR OF AICHI
4. パノラマに魅せられて
5. そして物語は後編へ
3 2. 今年は状況が異なる
3. 東横インのインターネット設備は便利
4 2. 1年以上手塩にかけて育ててきました
3. パンフレットに堂々と書かれるアレ
5 6 2. 1日目ダイジェスト
3. 鉄道ファンを目撃
4. 本日の制覇路線
7 2. 2日目ダイジェスト
3. あと2路線!
4. 本日の制覇路線
8 2. 3日目ダイジェスト
3. 本日の制覇路線
4. 最後に
9 2. 絵日記プラグイン
3. 画像がすべて同一URLに;_;)
4. 記事表示時の<%=image()%>
5. RSS出力時の<%=image()%>
6. whatsnew-list.rbを修正
7. というわけでいつものページにおいてます
10 11 2. ジェネレータでも作るか
3. CGIを作る前に
4. しかし暑い
12 13 2. 日本語がでない!
3. しかし暑い!
4. 日本語が使えない件は継続調査とします。
5. 8/14 プレビューモード対応=)
6. 8/15 ...あいかわらず日本語が表示できない;_;)
7. 8/16 ... サーバのライブラリが軒並み古い・・・
8. 8/29 ... 自己トラックバックにあるとおり
9. 9/26 ... 検証サーバでの日本語出力をついに確認しました=)
10. 10/11 ... ちょっとだけよ
11. 10/12 ... 新サーバに移転。正式公開しました=)
14 15 16 17 18 19 20 21 22 2. 夏休み明け
3. Linux環境立ち上げ中
23 2. 乗るぞ!Yeah!!
24 2. 速いぞ130km/hダイジェスト
3. あちこち工事中
4. ホームドアはあれども
5. つくば駅の"耳ツン"現象
6. T・S・U・K・U・B・A ふるさとつくば
7. 今週末にでも乗ろうかという方へ
25 2. 明日はお休み決定?
26 27 28 29 2. ntpdを入れた
3. いろいろ入れてみた
4. googleやらで検索してみるも
30 2. もう一台のPC
3. もう一台のPCからのパーツでパワーアップ
4. 更新工事を終了し出場
5. そしてもう一台のPCがひっそりと引退&解体
31 >>
NHK(日本放置協会)は放置される側の団体です 時間のないサイト運営者リング NEO業務日誌
本日 102 昨日 129 全体 492458