From 8b8577f91109e76d12fcfa55a2e7388f54a41be6 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 5 Feb 2019 05:28:03 +0000 Subject: wwwtext: inline sample CSS and use highlight For user documentation regarding CSS; showing users the sample CSS with comments is probably more helpful than having standalone documentation on CSS classes. --- lib/PublicInbox/UserContent.pm | 16 +++++++++------- lib/PublicInbox/WwwText.pm | 35 +++++++++++++++++------------------ 2 files changed, 26 insertions(+), 25 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/UserContent.pm b/lib/PublicInbox/UserContent.pm index df0429c3..468e6cf1 100644 --- a/lib/PublicInbox/UserContent.pm +++ b/lib/PublicInbox/UserContent.pm @@ -38,9 +38,9 @@ sub CSS () { *.hunk { color:#c93 } /* - * highlight 3.x colors (tested 3.18) - * this doesn't use most of the colors available (I find too many - * colors overwhelming). So the #ccc default is commented out. + * highlight 3.x colors (tested 3.18) for displaying blobs. + * This doesn't use most of the colors available (I find too many + * colors overwhelming), so the #ccc default is commented out. */ .hl.num { color:#f30 } /* number */ .hl.esc { color:#f0f } /* escape character */ @@ -48,10 +48,12 @@ sub CSS () { .hl.ppc { color:#f0f } /* preprocessor */ .hl.pps { color:#f30 } /* preprocessor string */ .hl.slc { color:#09f } /* single-line comment */ - .hl.com { color:#09f } - /* .hl.opt { color:#ccc } */ - /* .hl.ipl { color:#ccc } */ - /* .hl.lin { color:#ccc } */ + .hl.com { color:#09f } /* multi-line comment */ + /* .hl.opt { color:#ccc } */ /* operator */ + /* .hl.ipl { color:#ccc } */ /* interpolation */ + /* .hl.lin { color:#ccc } */ /* line-number (unused by public-inbox) */ + + /* keyword groups kw[a-z] */ .hl.kwa { color:#ff0 } .hl.kwb { color:#0f0 } .hl.kwc { color:#ff0 } diff --git a/lib/PublicInbox/WwwText.pm b/lib/PublicInbox/WwwText.pm index d3413ad7..adadc37a 100644 --- a/lib/PublicInbox/WwwText.pm +++ b/lib/PublicInbox/WwwText.pm @@ -10,6 +10,10 @@ use PublicInbox::WwwStream; use PublicInbox::Hval qw(ascii_html); our $QP_URL = 'https://xapian.org/docs/queryparser.html'; our $WIKI_URL = 'https://en.wikipedia.org/wiki'; +my $hl = eval { + require PublicInbox::HlMod; + PublicInbox::HlMod->new +}; # /$INBOX/_/text/$KEY/ # KEY may contain slashes # For now, "help" is the only supported $KEY @@ -61,7 +65,13 @@ sub get_text { sub _do_linkify { my $l = PublicInbox::Linkify->new; - $_[0] = $l->linkify_2(ascii_html($l->linkify_1($_[0]))); + $l->linkify_1($_[0]); + if ($hl) { + $hl->do_hl_text(\($_[0])); + } else { + $_[0] = ascii_html($_[0]); + } + $_[0] = $l->linkify_2($_[0]); } sub _srch_prefix ($$) { @@ -91,7 +101,8 @@ sub _srch_prefix ($$) { sub _colors_help ($$) { my ($ctx, $txt) = @_; my $ibx = $ctx->{-inbox}; - my $base_url = $ibx->base_url($ctx->{env}); + my $env = $ctx->{env}; + my $base_url = $ibx->base_url($env); $$txt .= "color customization for $base_url\n"; $$txt .= <