- blogs:
- cles::blog
2004/09/09

jsRSS++でdescriptionを表示させるには
先日紹介したjsRSS++は便利なのですが、descriptionさせようとしたら、表示されないというバグを見つけてしまいました。ちょっと不便なのでこのバグを直してみることにしました。
† 改造のポイント
注意点:
この改造は無保証ですので、自己責任でお願いします。この改造はバージョン1.0向けです。
このdescriptionのon/offはグローバル変数の$dscというもので制御されているようなのですが、同じ名前の変数がparse_rdf内でも使われてしまっています。これをparse_rdf内の$dscをローカル変数に変更することによって回避することにします。
具体的には123行目の"{"だけの行の右側に"my $dsc;"を追加します。
この状態でもdescriptionは最後の部分しか表示されません。これはdescriptionが複数行にわたって記述されているときに生じる問題です。この問題は文字列が1行ごとに上書きされてしまっているために生じている現象ですので、文字列を連結するようにすることで回避できます。
具体的には157、158行目の"="を".="に置き換えます。
† 差分はこちら
diff -u jsRSS.cgi.org jsRSS.cgi
--- jsRSS.cgi.org 2004-09-09 21:58:34.000000000 +0900
+++ jsRSS.cgi 2004-09-09 21:58:50.000000000 +0900
@@ -120,7 +120,7 @@
}
sub parse_rdf
-{
+{ my $dsc;
my $rdf = shift;
my @RDF = @{$rdf};
my $cnt = 1;
@@ -153,9 +153,9 @@
if ($_ =~ /<description>(.*)<\/description>/i) { $site[$cnt]{description} = $1 }
elsif($_ =~ /<summary(.*)>(.*)<\/summary>/i) { $site[$cnt]{description} = $2 }
- elsif($_ =~ /<description>(.*)/) { $site[$cnt]{description} = $1; $dsc = 1; }
- elsif($_ =~ /(.*)<\/description>/i) { $site[$cnt]{description} = $1; $dsc = 0; }
- elsif($dsc == 1) { $site[$cnt]{description} = $_ }
+ elsif($_ =~ /<description>(.*)/i) { $site[$cnt]{description} = $1; $dsc = 1; }
+ elsif($_ =~ /(.*)<\/description>/i) { $site[$cnt]{description} .= $1; $dsc = 0; }
+ elsif($dsc == 1) { $site[$cnt]{description} .= $_ }
$site[$cnt]{description} =~ s/<\!\[CDATA\[(.*)/$1/i;
$site[$cnt]{description} =~ s/(.*)\]\]>/$1/i;
† おまけ
156行目の正規表現だけ末尾に"i"がないのでこれを追加してあげました。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/360
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112142)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110785)
3 . 年次の人間ドックへ(110378)
4 . 2023 年分の確定申告完了!(1つめ)(109926)
5 . 三菱鉛筆がラミーを買収(109824)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110785)
3 . 年次の人間ドックへ(110378)
4 . 2023 年分の確定申告完了!(1つめ)(109926)
5 . 三菱鉛筆がラミーを買収(109824)
cles::blogについて
Referrers