diff options
author | Eric Wong <e@80x24.org> | 2015-12-15 20:58:50 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-12-22 00:58:06 +0000 |
commit | e00a6f63ef80f3540a159ef4fdc4bba359dc5596 (patch) | |
tree | 3e84daeddd3a216c1c4a4f46d4ffa736c843583f | |
parent | 3273b47d02dd353cd2efe1cd0bdeca1334e3942e (diff) | |
download | public-inbox-e00a6f63ef80f3540a159ef4fdc4bba359dc5596.tar.gz |
User-generated content (UGC) may have excessively long lines which screw up rendering. This is the only bit of CSS we use.
-rw-r--r-- | lib/PublicInbox/Feed.pm | 4 | ||||
-rw-r--r-- | lib/PublicInbox/Hval.pm | 5 | ||||
-rw-r--r-- | lib/PublicInbox/SearchView.pm | 2 | ||||
-rw-r--r-- | lib/PublicInbox/View.pm | 16 |
4 files changed, 16 insertions, 11 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 1201dd11..68f1e67b 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -134,9 +134,9 @@ sub emit_html_index { qq{ <input\nname=q\ntype=text />} . qq{<input\ntype=submit\nvalue=search />} . qq{</tt></form>} . - PublicInbox::View::PRE_WRAP; + PublicInbox::Hval::PRE; } else { - $top = PublicInbox::View::PRE_WRAP . $top . "\n"; + $top = PublicInbox::Hval::PRE . $top . "\n"; } $fh->write("<html><head><title>$title</title>" . diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm index ab6e044b..e0b85c68 100644 --- a/lib/PublicInbox/Hval.pm +++ b/lib/PublicInbox/Hval.pm @@ -10,6 +10,11 @@ use Encode qw(find_encoding); use URI::Escape qw(uri_escape_utf8); use PublicInbox::MID qw/mid_clean/; +# for user-generated content (UGC) which may have excessively long lines +# and screw up rendering on some browsers. This is the only CSS style +# feature we use. +use constant PRE => "<pre\nstyle=\"white-space:pre-wrap\">"; + my $enc_ascii = find_encoding('us-ascii'); sub new { diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index 7f790902..ea8a45a4 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -31,7 +31,7 @@ sub sres_top_html { $total = $mset->get_matches_estimated; }; my $err = $@; - my $res = html_start($q, $ctx) . PublicInbox::View::PRE_WRAP; + my $res = html_start($q, $ctx) . PublicInbox::Hval::PRE; if ($err) { $code = 400; $res .= err_txt($err) . "</pre><hr /><pre>" . foot($ctx); diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 3c4e9547..68741c5e 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -21,7 +21,6 @@ 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\nstyle=\"white-space:pre-wrap\">"; use constant T_ANCHOR => '#u'; use constant INDENT => ' '; @@ -39,7 +38,7 @@ sub msg_html { } headers_to_html_header($mime, $full_pfx, $ctx) . multipart_text_as_html($mime, $full_pfx) . - '</pre><hr />' . PRE_WRAP . + '</pre><hr />' . PublicInbox::Hval::PRE . html_footer($mime, 1, $full_pfx, $ctx) . $footer . '</pre></body></html>'; @@ -48,7 +47,8 @@ sub msg_html { sub feed_entry { my ($class, $mime, $full_pfx) = @_; - PRE_WRAP . multipart_text_as_html($mime, $full_pfx) . '</pre>'; + PublicInbox::Hval::PRE . + multipart_text_as_html($mime, $full_pfx) . '</pre>'; } sub in_reply_to { @@ -107,7 +107,7 @@ sub index_entry { if ($level) { $rv .= '<td><pre>' . (INDENT x $level) . '</pre></td>'; } - $rv .= "<td\nid=s$midx>" . PRE_WRAP; + $rv .= "<td\nid=s$midx>" . PublicInbox::Hval::PRE; $rv .= "<b\nid=\"$id\">$subj</b>\n"; $rv .= "- $from @ $ts UTC - "; $rv .= "<a\nhref=\"#s$next\">next</a>"; @@ -206,8 +206,8 @@ sub emit_thread_html { $next .= "\ndownload thread: "; $next .= "<a\n$MBOX_TITLE\nhref=\"../t.mbox.gz\">mbox.gz</a>"; $next .= " / follow: <a\nhref=\"../t.atom\">Atom feed</a>"; - $cb->write("<hr />" . PRE_WRAP . $next . "\n\n". $foot . - "</pre></body></html>"); + $cb->write("<hr />" . PublicInbox::Hval::PRE . $next . "\n\n". + $foot . "</pre></body></html>"); $cb->close; } @@ -457,7 +457,7 @@ sub headers_to_html_header { $rv .= "\n"; ("<html><head><title>". join(' - ', @title) . - "</title>$atom</head><body>" . PRE_WRAP . $rv); + "</title>$atom</head><body>" . PublicInbox::Hval::PRE . $rv); } sub thread_inline { @@ -634,7 +634,7 @@ sub ghost_table { my ($upfx, $mid, $level) = @_; "<table\nsummary=ghost><tr><td>" . (INDENT x $level) . "</td><td>" . - PRE_WRAP . ghost_parent($upfx, $mid) . + PublicInbox::Hval::PRE . ghost_parent($upfx, $mid) . '</pre></td></table>'; } |