From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id B00C21FD5A; Wed, 3 Sep 2014 20:46:32 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Cc: Eric Wong Subject: [PATCH] view: increase context in index views Date: Wed, 3 Sep 2014 20:46:28 +0000 Message-Id: <1409777188-28217-1-git-send-email-e@80x24.org> X-Mailer: git-send-email 2.1.0.2.g6fb949a.dirty List-Id: It's probably better to show too much than too little, even if this means extra scrolling :< Otherwise, we end up punishing messages who quote minimally and end up loosing context. Unfortunately, too many people over-quote nowadays. --- lib/PublicInbox/View.pm | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 1fb4006..6195fe6 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -82,13 +82,15 @@ sub index_entry { $anchor_idx = anchor_for($irp); $anchor = $seen->{$anchor_idx}; } - + my $href = $mid->as_href; + my $mhref = "m/$href.html"; + my $fhref = "f/$href.html"; # scan through all parts, looking for displayable text $mime->walk_parts(sub { my ($part) = @_; return if $part->subparts; # walk_parts already recurses my $enc = enc_for($part->content_type) || $enc_msg || $enc_utf8; - my $more = ''; + my $more; if ($part_nr > 0) { my $fn = $part->filename; @@ -96,22 +98,14 @@ sub index_entry { $rv .= $pfx . add_filename_line($enc->decode($fn)); } - my $s = ascii_html($enc->decode($part->body)); - - if (defined $anchor) { - # drop quotes, including the "so-and-so wrote:" line - $s =~ s/(?:^[^\n]*:\s*\n)? - (?:^>[^\n]*\n)+(?:^\s*\n)?//mgx; - } + my $s = add_text_body_short($enc, $part, $part_nr, $fhref); - # Drop signatures - $s =~ s/^-- \n.*\z//ms; + # keep signatures for now? They shold usually be short, + # and sometimes footnotes/"P.S." appear there. # drop the remainder of git patches, they're usually better # to review when the full message is viewed - if ($s =~ s/^---\n.*\z//ms) { - $more = "$pfx...\n"; - } + $s =~ s!^---\n.*\z!!ms and $more = 1; # kill any leading or trailing whitespace $s =~ s/\A\s+//s; @@ -120,13 +114,14 @@ sub index_entry { # add prefix: $s =~ s/^/$pfx/sgm; - $rv .= $s . "\n$more"; + $s .= "\n$pfx(more...)\n" if $more; + + $rv .= $s . "\n"; ++$part_nr; }); - my $href = 'm/' . $mid->as_href . '.html'; - $rv .= "$pfxmore "; - my $txt = 'm/' . $mid->as_href . '.txt'; + $rv .= "$pfxlink "; + my $txt = "m/$href.txt"; $rv .= "raw "; $rv .= html_footer($mime, 0); @@ -202,7 +197,6 @@ sub add_text_body_short { my ($enc, $part, $part_nr, $full_pfx) = @_; my $n = 0; my $s = ascii_html($enc->decode($part->body)); - # TODO: fold the "so-and-so wrote:" attribute line here, too: $s =~ s!^((?:(?:>[^\n]*)\n)+)! my $cur = $1; my @lines = split(/\n/, $cur); -- EW