総エントリー数が、一度に表示するエントリー数で割り切れる場合、最古のページが妙なことになるような。空ページが出力されないですか?
$pages = ($num_files / $blosxom::num_entries) + 1;
サブルーチンfilter
のあたりかな。1足すとかじゃなくて、切り上げにすれば良いのか。
$pages = $num_files / $blosxom::num_entries;
$pages = int($pages + 1) unless $pages == int($pages);
と、変えてみる。
てか、最古のページで空エントリが出力されてる。エントリ無いのにstory出力しようとしてるっぽいですね。
return @sorted[$skip .. $num_files - 1];
サブルーチンsort
のところをこう変えればいいみたい。配列の添え字は個数 - 1までなのでということあたりのお話かな。
とか、最古のページあたりをチェックしてたら、サブルーチンhead
のところもバグらしきものを・・・。次へのリンクを生成するif
ステートメントが、
if (($page + 1) < $pages) {
...
}
と、なってるのですが、これだと最古のページの1つ手前で、次へのリンクが生成されなかったです。
if (($page + 1) <= $pages) {
...
}
こうだろ。どうよ!
正直、挙動を大幅に変えてたりするので、paginateでは問題ないのかもしれないですね(弱。