user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH] line-wrap generated HTML source around attrs for readability
@ 2014-09-13 22:03  7% Eric Wong
  0 siblings, 0 replies; 1+ results
From: Eric Wong @ 2014-09-13 22:03 UTC (permalink / raw)
  To: meta; +Cc: Eric Wong

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.
---
 lib/PublicInbox/Feed.pm |  6 +++---
 lib/PublicInbox/View.pm | 14 +++++++-------
 lib/PublicInbox/WWW.pm  |  8 ++++----
 t/plack.t               |  2 +-
 t/view.t                |  8 ++++----
 5 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 350cc65..339d9c2 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 262e72e..14133d5 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 2d8f2af..f67e72c 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 3bc4433..85dd337 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 91ba168..1851793 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");
 }
-- 
EW


^ permalink raw reply related	[relevance 7%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2014-09-13 22:03  7% [PATCH] line-wrap generated HTML source around attrs for readability Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).