7 our @ISA = qw(Exporter);
8 our @EXPORT_OK = qw(san parse initpage endpage index_header thread_header);
33 my ($indent, $fname, $mid, $date, $from, $subj) = m{
34 ^([^-]*)- # the indent level
36 <([^>]+)> # message id
37 (\d{4}-\d\d-\d\d[ ]\d\d:\d\d) # date
40 }x or die "can't parse: $_";
42 my $level = length($indent);
43 $level = 10 if $indent =~ m/\.\.\d+\.\./;
45 $mid = mid2path($mid);
49 return ($level, $fname, $mid, $date, $from, $subj);
55 open my $fh, "<", $path or die "can't open $path: $!";
59 my $small_logo = readall "logo-small.html";
60 my $hdr = readall "head.html";
61 my $foot = readall "foot.html";
62 my $idxhdr = readall "index-header.html";
65 my ($fh, $title) = @_;
66 say $fh $hdr =~ s/TITLE/$title/r;
75 my ($fh, $page, $subtitle) = @_;
76 my $html = $idxhdr =~ s/PAGE/$page/r;
77 $html =~ s/SUBTITLE/$subtitle/;
82 my ($fh, $tid, $mid, $e) = @_;
85 print $fh "<header class='mail-header'>\n";
88 print $fh $small_logo;
89 print $fh "<a href='/'>Index</a>";
90 print $fh " | <a href='/thread/$tid.html#$mid'>Thread</a>"
95 foreach my $entry (@entries) {
96 my ($k, $v) = split /:/, $entry, 2;
97 say $fh "<dt>$k:</dt><dd>$v</dd>";
101 say $fh "<p>Download raw <a href='/text/$mid.txt'>body</a>.</p>"
104 say $fh "</header>\n";