見出し一覧の更新方法
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 ならびに トラックバック ping URI
- http://diary.noasobi.net/2003/10/diary_031011a.html