commit - 4d7b2baaeb5d8ca44873fffc775b8a195a35d03f
commit + 6fde82294555a73a233d5c2c0851a636253ead51
blob - 97c0fa7bfe425ac4ac395e488855f7b2652ddb16
blob + 77a1d23066b5f2d263ba5eeb7c20282683b68329
--- mkindex
+++ mkindex
use warnings;
use v5.32;
-use File::Copy;
-
use OpenBSD::Pledge;
use OpenBSD::Unveil;
my $path = pagename($page);
open($pfh, '>', $path)
or die "can't open $path: $!";
+}
- my $title = "Game of Trees Mail Archive";
- $title .= " | page $page" if $page != 0;
- initpage($pfh, $title);
+sub nav {
+ my ($pfh, $first, $last, $n) = @_;
+ my ($next, $prev) = (pagename($n+1), pagename($n-1));
- my $subtitle = $page != 0 ? "<p>Page $page</p>" : "";
+ say $pfh "<nav class='next-prev'>";
+ say $pfh "<a href='$first'>First</a>" if $n > 1;
+ say $pfh "<a href='$prev'>Prev</a>" if $n > 0;
+ say $pfh "<a href='$next'>Next</a>" if $n < $page;
+ say $pfh "<a href='$last'>Last</a>" if $n < $page - 1;
+ say $pfh "</nav>";
+}
- my $hdr = <<EOF;
-<header class='index-header'>
- <a href="https://gameoftrees.org" target="_blank">
- <img src='/got.png'
- srcset='/got.png, /got@2x.png 2x'
- alt='"GOT" where the "O" is a cute smiling sun.' />
- </a>
- <h1>Game of Trees Mail Archive</h1>
- $subtitle
-</header>
-<main>
-EOF
- say $pfh $hdr;
+sub copyfrom {
+ my ($path, $fh) = @_;
+
+ # there are probably faster ways to do this like File::Copy,
+ # but it bypasses the bufio cache...
+ open(my $pfh, '<', $path) or die "can't open $path: $!";
+ print $fh $_ while (<$pfh>);
}
sub fixfiles {
for (my $i = 0; $i <= $page; $i++) {
my $path = pagename($i);
+ my $dest = "$outdir/$path";
- open(my $pfh, '>>', $path)
- or die "can't open $path for append: $!";
+ open(my $pfh, '>', $dest)
+ or die "can't open $dest for writing: $!";
- if ($page > 1) {
- my ($next, $prev) = (pagename($i+1), pagename($i-1));
+ my $title = "Game of Trees Mail Archive";
+ $title .= " | page $page" if $page != 0;
+ initpage($pfh, $title);
- say $pfh "<nav class='next-prev'><!-- $pfh -->";
- say $pfh "<a href='$first'>First</a>" if $i > 1;
- say $pfh "<a href='$prev'>Prev</a>" if $i > 0;
- say $pfh "<a href='$next'>Next</a>" if $i < $page;
- say $pfh "<a href='$last'>Last</a>" if $i < $page - 1;
- say $pfh "</nav>";
- }
+ my $subtitle = $page != 0 ? "<p>Page $page</p>" : "";
+ my $hdr = <<EOF;
+<header class='index-header'>
+ <a href="https://gameoftrees.org" target="_blank">
+ <img src='/got.png'
+ srcset='/got.png, /got@2x.png 2x'
+ alt='"GOT" where the "O" is a cute smiling sun.' />
+ </a>
+ <h1>Game of Trees Mail Archive</h1>
+ $subtitle
+</header>
+<main>
+EOF
+ say $pfh $hdr;
+
+ nav $pfh, $first, $last, $i if $page > 1;
+ copyfrom($path, $pfh);
+ nav $pfh, $first, $last, $i if $page > 1;
+
say $pfh "</main>";
+
endpage($pfh);
close($pfh);
- move $path, "$outdir/$path";
}
}