]> Sergey Matveev's repositories - public-inbox.git/commitdiff
view: reduce empty <a>, use "id" instead of "name" attributes
authorEric Wong <e@80x24.org>
Mon, 6 Jul 2015 20:52:33 +0000 (20:52 +0000)
committerEric Wong <e@80x24.org>
Mon, 6 Jul 2015 20:54:47 +0000 (20:54 +0000)
This is probably more compliant, and saves us a few bytes
on the uncompressed HTML.

lib/PublicInbox/View.pm
t/view.t

index 3695bb2aafe8bc54a6e292aa28b52adea092e13c..bc4c7ac70cfd90831c625ba8fb1189ab6bdb5614 100644 (file)
@@ -54,8 +54,8 @@ sub index_entry {
        my $header_obj = $mime->header_obj;
 
        my $mid_raw = $header_obj->header_raw('Message-ID');
-       my $name = anchor_for($mid_raw);
-       $seen->{$name} = "#$name"; # save the anchor for later
+       my $id = anchor_for($mid_raw);
+       $seen->{$id} = "#$id"; # save the anchor for later
 
        my $mid = PublicInbox::Hval->new_msgid($mid_raw);
        my $from = PublicInbox::Hval->new_oneline($mime->header('From'))->raw;
@@ -78,13 +78,9 @@ sub index_entry {
        }
        $ts = POSIX::strftime($fmt, gmtime($ts));
 
-       $rv .= "$pfx<a\nname=\"$name\"></a>" .
-               "<a\nname=\"s$midx\"></a>" .
-               "<b>$subj</b>\n$pfx";
-
+       $rv .= "$pfx<b\nid=\"$id\">$subj</b>\n$pfx";
        $rv .= "- by $from @ $ts - ";
-
-       $rv .= "<a\nhref=\"#s$next\">next</a>";
+       $rv .= "<a\nid=\"s$midx\"\nhref=\"#s$next\">next</a>";
        if ($prev >= 0) {
                $rv .= "/<a\nhref=\"#s$prev\">prev</a>";
        }
@@ -153,7 +149,7 @@ sub index_entry {
                }
                $rv .= " <a\nhref=\"$anchor\">parent</a>";
        }
-       $rv .= " <a\nhref=\"?r=$first#$name\">threadlink</a>";
+       $rv .= " <a\nhref=\"?r=$first#$id\">threadlink</a>";
 
        $rv . "\n\n";
 }
@@ -269,7 +265,7 @@ sub add_text_body_full {
                my $cur = $1;
                my @lines = split(/\n/, $cur);
                if (@lines > MAX_INLINE_QUOTED) {
-                       "<a\nname=q${part_nr}_" . $n++ . ">$cur</a>";
+                       "<a\nid=q${part_nr}_" . $n++ . ">$cur</a>";
                } else {
                        $cur;
                }
@@ -382,7 +378,7 @@ sub anchor_for {
        my ($msgid) = @_;
        $msgid =~ s/\A\s*<?//;
        $msgid =~ s/>?\s*\z//;
-       Digest::SHA::sha1_hex($msgid);
+       'm' . Digest::SHA::sha1_hex($msgid);
 }
 
 1;
index 1851793377fbd557f90fb7dc2105ac916798b346..63de49bd43ef8c9bd8398ecb0177beda4e62b904 100644 (file)
--- a/t/view.t
+++ b/t/view.t
@@ -47,7 +47,7 @@ EOF
        like($html, qr!<a\nhref="\.\./m/hello%40!s, "MID link present");
        like($html, qr/hello world\b/, "body present");
        like($html, qr/&gt; keep this inline/, "short quoted text is inline");
-       like($html, qr/<a\nname=[^>]+>&gt; Long and wordy/,
+       like($html, qr/<a\nid=[^>]+>&gt; Long and wordy/,
                "long quoted text is anchored");
 
        # short page