commit - 181eab119235a3dc75592fbbb8b8c6add017db75
commit + 8f7a9a4697c9b6250d14b65d66d44929975f40c8
blob - f5b7f092c6cc63635fcba6e020e6a2196a58e99c
blob + 2f7230899ca5f4d92033805a91393b01842bfa75
--- GotMArc.pm
+++ GotMArc.pm
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(san urlencode parse initpage endpage index_header
- thread_header threntry);
+ thread_header threntry thrslice);
sub san {
my $str = shift;
}
sub thread_header {
- my ($fh, $tid, $mid, $e) = @_;
+ my ($fh, $e, $mail, $p, $n, $spoiler) = @_;
+ $spoiler = 0 unless defined $spoiler;
+
my @entries = @$e;
- my $enctid = urlencode $tid if defined $tid;
- my $encmid = urlencode $mid if defined $mid;
+ my $enctid = urlencode $mail->{tid} if defined $mail;
+ my $encmid = urlencode $mail->{mid} if defined $mail;
print $fh "<header class='mail-header'>\n";
say $fh "<p>Download raw <a href='/text/$encmid.txt'>body</a>.</p>"
if defined $encmid;
+ say $fh "<details>" if $spoiler;
+ say $fh "<summary>Thread</summary>" if $spoiler;
+ thrslice($fh, $mail, $p, $n) if defined $p and defined $n;
+ say $fh "</details>" if $spoiler;
+
say $fh "</header>\n";
}
return $level;
}
+sub min_level {
+ my $l = 999;
+ return 0 unless @_;
+ for (@_) {
+ $l = $_->{level} if $_->{level} < $l;
+ }
+ return $l;
+}
+
+sub thrslice {
+ my ($fh, $mail, $p, $n) = @_;
+ my @prev = @{$p};
+ my @next = @{$n};
+ my @thread = (@prev, $mail, @next);
+ return unless @thread;
+ my $base = min_level @thread;
+ my $level = 0;
+ print $fh "<div class='thread'>";
+ print $fh "<ul class='mails'>";
+ $level = threntry $fh, "mail", $base, $level, $_, $mail for @thread;
+ print $fh "</ul></li>" x $level;
+ print $fh "</ul></div>";
+}
+
1;
blob - 658e1b2ac3106a6041b84c1bdfa64996a592a2e8
blob + 7edfd18e5899171341b45a0ac8d248b83b04ed2b
--- mexp
+++ mexp
use OpenBSD::Unveil;
use lib ".";
-use GotMArc qw(parse san urlencode initpage endpage thread_header threntry);
+use GotMArc qw(parse san urlencode initpage endpage thread_header
+ threntry thrslice);
my $outdir = $ENV{'OUTDIR'};
die 'Set $OUTDIR' unless defined $outdir;
print $fh "</nav>";
}
-sub min_level {
- my $l = 999;
- return 0 unless @_;
- for (@_) {
- $l = $_->{level} if $_->{level} < $l;
- }
- return $l;
-}
-
-sub thrslice {
- my ($fh, $mail, $p, $n) = @_;
- my @prev = @{$p};
- my @next = @{$n};
- my @thread = (@prev, $mail, @next);
- return unless @thread;
- my $base = min_level @thread;
- my $level = 0;
- print $fh "<div class='thread'>";
- print $fh "<ul class='mails'>";
- $level = threntry $fh, "mail", $base, $level, $_, $mail for @thread;
- print $fh "</ul></li>" x $level;
- print $fh "</ul></div>";
-}
-
sub export_one {
my ($mail, $prev, $next) = @_;
my $dest = "$outdir/mail/$mail->{mid}.html";
}
say $text "";
- thread_header $fh, $mail->{tid}, $mail->{mid}, \@hdrs;
+ thread_header $fh, \@hdrs, $mail, $prev, $next, 1;
print $fh "<pre>";
while (<$mshow>) {
blob - ad5a88859f2a7ce765c00e2adf4a80cb056cb44e
blob + d659ee67cdec71fd62bf3467e94662909d08c354
--- mkindex
+++ mkindex
my $dest = "$outdir/thread/$mid.html";
open($tfh, '>', $dest) or die "can't open $dest: $!";
initpage($tfh, $subj);
- thread_header $tfh, undef, undef, ["Thread: $subj"];
+ thread_header $tfh, ["Thread: $subj"];
print $tfh "<div class='thread'><ul class='mails'>\n";
}