いきなり駄スレ? blosxom ユーザーから転載。
静的生成モードで日別のインデックスYYYY/MM/DD/index.htmlがうざいのでハック
--- entries_index.orig Mon Feb 9 15:59:09 2004
+++ entries_index Mon Feb 9 15:59:27 2004
@@ -56,7 +56,7 @@
or stat("$blosxom::static_dir/$1/index." . $blosxom::static_flavours[0])->mtime< stat($Fi
le::Find::name)->mtime
)
and $indexes{$1} = 1
- and $d = join('/', (blosxom::nice_date($files{$File::Find::name}))[5,2,3])
+ and $d = join('/', (blosxom::nice_date($files{$File::Find::name}))[5,2])
and $indexes{$d} = $d
and $blosxom::static_entries and $indexes{ ($1 ? "$1/" : '') . "$2.$blosxom::file_extensio
n" } = 1;
}, $blosxom::datadir
ついでに
blosxom of blosxom.さんに載っていたblosxomの修正も転記
182行目。
and $2 ne 'index' and $2 !~ /^\./ and (-r $node)
188行目。
or stat($node)->mtime< time
192行目。
and $files{$File::Find::name} = stat($node)->mtime
198行目。
or stat("$static_dir/$1/index." . $static_flavours[0])->mtime< stat($node)->mtime
208行目。
!-d $node and -r $node and $others{$File::Find::name} = stat($node)->mtime
その後で、174行目に以下の1行を追加。
my $node = $_;
これはちょっとイレギュラーな手順ですし、しなくても動くこともあるようです。
必須なのかいまいち確信がもてないのですが、どうもFile::Find::findルーチンの使い方からすればこちらが正しいような気がします。
くわえて、手元のWindowsパソコンと、このQUE::NETWORKではこの修正がないとエントリが表示されなかったので、一応手順に組み込んでおきます。
hail2u.net:blosxomと404から転載。
サイトの404と同じの方が気分が良いので、こうしてみました。
if ($ne eq $num_entries) {
print("Location: /404.html\r\n\r\n");
exit;
}
hail2u.net:blosxomと404 #2から転載。
改造するところはblosxomと404で改造したところと同じで、オリジナルのままだと394行目辺り。そこに以下のコードを挿入します。
# No matching entries treated as a 404 Not Found
if ($ne eq $num_entries) {
if (open(FH, "/www_root/john/public_html/404.html")) {
print header(
-type => 'text/html',
-charset => 'UTF-8',
-status => '404 Not Found',
);
foreach (<FH>) {
print $_;
}
close(FH);
} else {
print redirect("http://example.com/john/404.html");
}
exit;
}