From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 578C22141D for ; Sun, 27 Jan 2019 11:48:18 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 4/4] viewvcs: wire up syntax-highlighting for blobs Date: Sun, 27 Jan 2019 11:48:17 +0000 Message-Id: <20190127114817.14486-5-e@80x24.org> In-Reply-To: <20190127114817.14486-1-e@80x24.org> References: <20190127114817.14486-1-e@80x24.org> List-Id: And update 216dark.css to match a color scheme I'm used to; which is fairly minimal and doesn't use all the classes "highlight" provides. --- contrib/css/216dark.css | 20 ++++++++++++++++++++ lib/PublicInbox/UserContent.pm | 20 ++++++++++++++++++++ lib/PublicInbox/ViewVCS.pm | 15 ++++++++++++++- 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/contrib/css/216dark.css b/contrib/css/216dark.css index 2fd85d0..35ef7aa 100644 --- a/contrib/css/216dark.css +++ b/contrib/css/216dark.css @@ -24,3 +24,23 @@ a:visited { color:#96f } *.del { color:#f0f } *.head { color:#fff } *.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. + */ +.hl.num { color:#f30 } +.hl.esc { color:#f0f } +.hl.str { color:#f30 } +.hl.pps { color:#f30 } +/* .hl.slc { color:#ccc } */ +.hl.com { color:#09f } +.hl.ppc { color:#f0f } +/* .hl.opt { color:#ccc } */ +/* .hl.ipl { color:#ccc } */ +/* .hl.lin { color:#ccc } */ +.hl.kwa { color:#ff0 } +.hl.kwb { color:#0ff } +.hl.kwc { color:#ff0 } +/* .hl.kwd { color:#ccc } */ diff --git a/lib/PublicInbox/UserContent.pm b/lib/PublicInbox/UserContent.pm index b34ebf9..514cd95 100644 --- a/lib/PublicInbox/UserContent.pm +++ b/lib/PublicInbox/UserContent.pm @@ -36,6 +36,26 @@ sub CSS () { *.del { color:#f0f } *.head { color:#fff } *.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. + */ + .hl.num { color:#f30 } + .hl.esc { color:#f0f } + .hl.str { color:#f30 } + .hl.pps { color:#f30 } + /* .hl.slc { color:#ccc } */ + .hl.com { color:#09f } + .hl.ppc { color:#f0f } + /* .hl.opt { color:#ccc } */ + /* .hl.ipl { color:#ccc } */ + /* .hl.lin { color:#ccc } */ + .hl.kwa { color:#ff0 } + .hl.kwb { color:#0ff } + .hl.kwc { color:#ff0 } + /* .hl.kwd { color:#ccc } */ _ } # end of auto-updated sub diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm index 5de37ee..a8aa0b6 100644 --- a/lib/PublicInbox/ViewVCS.pm +++ b/lib/PublicInbox/ViewVCS.pm @@ -21,6 +21,11 @@ use PublicInbox::SolverGit; use PublicInbox::WwwStream; use PublicInbox::Linkify; use PublicInbox::Hval qw(ascii_html to_filename); +my $hl = eval { + require PublicInbox::HlMod; + PublicInbox::HlMod->new; +}; + my %QP_MAP = ( A => 'oid_a', B => 'oid_b', a => 'path_a', b => 'path_b' ); my $max_size = 1024 * 1024; # TODO: configurable my $enc_utf8 = find_encoding('UTF-8'); @@ -88,6 +93,14 @@ sub solve_result { my $nl = ($$blob =~ tr/\n/\n/); my $pad = length($nl); + $l->linkify_1($$blob); + my $ok = $hl->do_hl($blob, $path) if $hl; + if ($ok) { + $blob = $ok; + } else { + $$blob = ascii_html($$blob); + } + # using some of the same CSS class names and ids as cgit $log = "
$oid $type $size bytes $raw_link
" . "
". @@ -96,7 +109,7 @@ sub solve_result { } (1..$nl)) . '' . '
 
'. # pad for non-CSS users "" . - ascii_html($$blob) . + $l->linkify_2($$blob) . '' . $log; html_page($ctx, 200, \$log); -- EW