朝顔日記

見出し一覧の更新方法

2003-10-11

これまでは、月が終わるとその月の分の見出し一覧を xyzzy の grep と置換を使って作っていましたが、どうにも面倒くさいし、月が終わらないと見出し一覧が提供できないのもイヤンなので、記事を作るたびになんとかできないものかと考えてみました。

自動生成させるためには、xyzzy でもマクロが書ければできそうなんですが、lisp はさっぱりわからないので、perl で作ることにして毎度日記をアップする前に実行している RSS 生成用のバッチファイルに組み込むことにしてみました。以下、見出し一覧生成用の perl スクリプト(heading.pl)です。


#!perl
#見出し行を抽出して加工

print "<ul>\n";
while (<>) {
  @headings = /<h3 .+>/g;
  foreach $heading (@headings){
    $heading =~ s/<h3 ([^>]+)><a href="/(\w+)\.html#diary_(\d\d)(\d\d)(\d\d)([abcdef])">([^<]+)<\/a><\/h3>/<li $1>($3年$4月$5日) <a href=\"$2.html#diary_$3$4$5$6\">$7<\/a><\/li>/g;
    print "$heading\n";
  }
}
print "</ul>\n";

で、次がRSS生成用の rss.bat です。


@echo off
cd \
cd c:\web\noasobi\diary
Perl c:\web\noasobi\diary\rss\rss.pl c:\web\noasobi\diary\latest.html | Perl -Mencoding=shiftjis,STDOUT,utf8 -pe1 > c:\web\noasobi\diary\rss.rdf
Perl heading.pl 0310.html > midasi\m0310

こんな面倒なことを毎度するくらいなら、各種blogツール(何)を使えば手間無しなんでしょうが、こういうのをチマチマ考えるのが楽しいので、なかなかやめられません。:p)

次は、FTPする際の手間を省くための何か(何)を考えよう。:p)

「見出し一覧の更新方法」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/10/diary_031011a.html