about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-09-13 21:50:31 +0000
committerEric Wong <e@80x24.org>2014-09-13 22:00:32 +0000
commit6b770362ceb3dd9089de0cffb7716fb533d2709b (patch)
treefda7ef0652bfe1a6d22167459f71d55236671348
parent627b9bd388d67d6532a7f2dba0603a602a412a07 (diff)
downloadpublic-inbox-6b770362ceb3dd9089de0cffb7716fb533d2709b.tar.gz
It's important to keep HTML source readable to folks who prefer
to read raw HTML.  This should improve readability of the HTML
source by keeping line length in check without wasting bytes.
-rw-r--r--lib/PublicInbox/Feed.pm6
-rw-r--r--lib/PublicInbox/View.pm14
-rw-r--r--lib/PublicInbox/WWW.pm8
-rw-r--r--t/plack.t2
-rw-r--r--t/view.t8
5 files changed, 19 insertions, 19 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 350cc65e..339d9c20 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -12,7 +12,7 @@ use PublicInbox::View;
 use constant {
         DATEFMT => '%Y-%m-%dT%H:%M:%SZ', # atom standard
         MAX_PER_PAGE => 25, # this needs to be tunable
-        PRE_WRAP => '<pre style="white-space:pre-wrap">',
+        PRE_WRAP => "<pre\nstyle=\"white-space:pre-wrap\">",
 };
 
 # main function
@@ -73,8 +73,8 @@ sub generate_html_index {
         my $th = PublicInbox::Thread->new(@messages);
         $th->thread;
         my $html = "<html><head><title>$title</title>" .
-                '<link rel="alternate" title="Atom feed" href="' .
-                $feed_opts->{atomurl} . '" type="application/atom+xml"/>' .
+                '<link rel="alternate" title="Atom feed"' . "\nhref=\"" .
+                $feed_opts->{atomurl} . "\"\ntype=\"application/atom+xml\"/>" .
                 '</head><body>' . PRE_WRAP;
 
         # sort child messages in chronological order
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 262e72e9..14133d55 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -13,7 +13,7 @@ require POSIX;
 # TODO: make these constants tunable
 use constant MAX_INLINE_QUOTED => 12; # half an 80x24 terminal
 use constant MAX_TRUNC_LEN => 72;
-use constant PRE_WRAP => '<pre style="white-space:pre-wrap">';
+use constant PRE_WRAP => "<pre\nstyle=\"white-space:pre-wrap\">";
 
 *ascii_html = *PublicInbox::Hval::ascii_html;
 
@@ -74,7 +74,7 @@ sub index_entry {
         }
         $ts = POSIX::strftime($fmt, gmtime($ts));
 
-        $rv .= "$pfx<a name=\"$name\"><b>$subj</b> $from - $ts</a>\n\n";
+        $rv .= "$pfx<a\nname=\"$name\"><b>$subj</b> $from - $ts</a>\n\n";
 
         my $irp = $header_obj->header_raw('In-Reply-To');
         my ($anchor_idx, $anchor);
@@ -217,7 +217,7 @@ sub add_text_body_short {
                                 }
                         } while (@sum && length($cur) < MAX_TRUNC_LEN);
                         $cur =~ s/ \z/ .../;
-                        "&gt; &lt;<a href=\"${full_pfx}#q${part_nr}_" . $n++ .
+                        "&gt; &lt;<a\nhref=\"${full_pfx}#q${part_nr}_" . $n++ .
                                 "\">$cur<\/a>&gt;\n";
                 } else {
                         $cur;
@@ -234,7 +234,7 @@ sub add_text_body_full {
                 my $cur = $1;
                 my @lines = split(/\n/, $cur);
                 if (@lines > MAX_INLINE_QUOTED) {
-                        "<a name=q${part_nr}_" . $n++ . ">$cur</a>";
+                        "<a\nname=q${part_nr}_" . $n++ . ">$cur</a>";
                 } else {
                         $cur;
                 }
@@ -272,7 +272,7 @@ sub headers_to_html_header {
                 $rv .= 'Message-ID: &lt;' . $mid->as_html . '&gt; ';
                 my $href = $mid->as_href;
                 $href = "../m/$href" unless $full_pfx;
-                $rv .= "(<a href=\"$href.txt\">original</a>)\n";
+                $rv .= "(<a\nhref=\"$href.txt\">original</a>)\n";
         }
 
         my $irp = $header_obj->header_raw('In-Reply-To');
@@ -281,7 +281,7 @@ sub headers_to_html_header {
                 my $html = $v->as_html;
                 my $href = $v->as_href;
                 $rv .= "In-Reply-To: &lt;";
-                $rv .= "<a href=\"$href.html\">$html</a>&gt;\n";
+                $rv .= "<a\nhref=\"$href.html\">$html</a>&gt;\n";
         }
 
         my $refs = $header_obj->header_raw('References');
@@ -336,7 +336,7 @@ sub linkify_refs {
                 my $v = PublicInbox::Hval->new_msgid($_);
                 my $html = $v->as_html;
                 my $href = $v->as_href;
-                "&lt;<a href=\"$href.html\">$html</a>&gt;";
+                "&lt;<a\nhref=\"$href.html\">$html</a>&gt;";
         } @_);
 }
 
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm
index 2d8f2afc..f67e72ce 100644
--- a/lib/PublicInbox/WWW.pm
+++ b/lib/PublicInbox/WWW.pm
@@ -252,10 +252,10 @@ sub footer {
         if ($nurls == 0) {
                 $urls = '($GIT_DIR/cloneurl missing)';
         } elsif ($nurls == 1) {
-                $urls = 'git URL for <a href="' . SSOMA_URL .
+                $urls = "git URL for <a\nhref=\"" . SSOMA_URL .
                         '">ssoma</a>: ' . $urls[0];
         } else {
-                $urls = 'git URLs for <a href="' . SSOMA_URL .
+                $urls = "git URLs for <a\nhref=\"" . SSOMA_URL .
                         "\">ssoma</a>:\n" . join("\n", map { "\t$_" } @urls);
         }
 
@@ -264,11 +264,11 @@ sub footer {
                 $addr = $addr->[0]; # first address is primary
         }
 
-        $addr = "<a href=\"mailto:$addr\">$addr</a>";
+        $addr = "<a\nhref=\"mailto:$addr\">$addr</a>";
         $desc =  $desc;
         join("\n",
                 '- ' . $desc,
-                'A <a href="' . PI_URL .  '">public-inbox</a>, ' .
+                "A <a\nhref=\"" . PI_URL .  '">public-inbox</a>, ' .
                         'anybody may post in plain-text (not HTML):',
                 $addr,
                 $urls
diff --git a/t/plack.t b/t/plack.t
index 3bc4433f..85dd337d 100644
--- a/t/plack.t
+++ b/t/plack.t
@@ -98,7 +98,7 @@ EOF
                 my $res = $cb->(GET($pfx . '/atom.xml'));
                 is(200, $res->code, 'success response received for atom');
                 like($res->content,
-                        qr!link href="\Q$pfx\E/m/blah%40example\.com\.html"!,
+                        qr!link\s+href="\Q$pfx\E/m/blah%40example\.com\.html"!s,
                         'atom feed generated correct URL');
         });
 }
diff --git a/t/view.t b/t/view.t
index 91ba1686..18517933 100644
--- a/t/view.t
+++ b/t/view.t
@@ -44,19 +44,19 @@ EOF
         my $html = PublicInbox::View->msg_html($s);
 
         # ghetto tests
-        like($html, qr!<a href="\.\./m/hello%40!s, "MID link present");
+        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 name=[^>]+>&gt; Long and wordy/,
+        like($html, qr/<a\nname=[^>]+>&gt; Long and wordy/,
                 "long quoted text is anchored");
 
         # short page
         my $pfx = "http://example.com/test/f";
         my $short = PublicInbox::View->msg_html($s, $pfx);
-        like($short, qr!<a href="hello%40!s, "MID link present");
+        like($short, qr!<a\nhref="hello%40!s, "MID link present");
         like($short, qr/\n&gt; keep this inline/,
                 "short quoted text is inline");
-        like($short, qr/<a href="\Q$pfx\E#[^>]+>Long and wordy/,
+        like($short, qr/<a\nhref="\Q$pfx\E#[^>]+>Long and wordy/,
                 "long quoted text is made into a link");
         ok(length($short) < length($html), "short page is shorter");
 }