]> Sergey Matveev's repositories - public-inbox.git/commitdiff
wwwtext: inline sample CSS and use highlight
authorEric Wong <e@80x24.org>
Tue, 5 Feb 2019 05:28:03 +0000 (05:28 +0000)
committerEric Wong <e@80x24.org>
Tue, 5 Feb 2019 10:58:35 +0000 (10:58 +0000)
For user documentation regarding CSS; showing users the sample
CSS with comments is probably more helpful than having
standalone documentation on CSS classes.

contrib/css/216dark.css
lib/PublicInbox/UserContent.pm
lib/PublicInbox/WwwText.pm

index 882fbc400f9eacb62e4fce6a1a2ae31f64ae514f..b18b0576ec57233058632cde0fec9c0a90f5f68f 100644 (file)
 a { color:#69f; text-decoration:none }
 a:visited { color:#96f }
 
-/* quoted text gets a different color */
+/* quoted text in emails gets a different color */
 *.q { color:#09f }
 
 /*
- * these may be used with cgit, too
+ * these may be used with cgit <https://git.zx2c4.com/cgit/>, too.
  * (cgit uses <div>, public-inbox uses <span>)
  */
-*.add { color:#0ff }
-*.del { color:#f0f }
-*.head { color:#fff }
-*.hunk { color:#c93 }
+*.add { color:#0ff } /* diff post-image lines */
+*.del { color:#f0f } /* diff pre-image lines */
+*.head { color:#fff } /* diff header (metainformation) */
+*.hunk { color:#c93 } /* diff hunk-header */
 
 /*
- * 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, as I find too
+ * many colors overwhelming, so the default is commented out.
  */
 .hl.num { color:#f30 } /* number */
 .hl.esc { color:#f0f } /* escape character */
@@ -36,11 +36,15 @@ a:visited { color:#96f }
 .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 */
+
+/* keyword groups kw[a-z] */
 .hl.kwa { color:#ff0 }
 .hl.kwb { color:#0f0 }
 .hl.kwc { color:#ff0 }
 /* .hl.kwd { color:#ccc } */
+
+/* line-number (unused by public-inbox) */
+/* .hl.lin { color:#ccc } */
index df0429c38f759c08f56488beebb722c7fa2b88d4..468e6cf168b5a5021460d8cb6e14a1c7f22d50d8 100644 (file)
@@ -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 }
index d3413ad72862d557511952a7867484cc3cfb5a79..adadc37aab3da1f32ee40a7eb0687444281b9696 100644 (file)
@@ -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 .= <<EOF;
 
@@ -104,23 +115,11 @@ to control the colors they see:
 
        ${base_url}userContent.css
 
-CSS classes
------------
-
-          span.q - quoted text in email messages
-
-For diff highlighting, we try to match class names with those
-used by cgit: https://git.zx2c4.com/cgit/
-
-        span.add - diff post-image lines
-
-        span.del - diff pre-image lines
-
-       span.head - diff header (metainformation)
-
-       span.hunk - diff hunk-header
-
+CSS sample
+----------
+```css
 EOF
+       $$txt .= PublicInbox::UserContent::sample($ibx, $env) . "```\n";
 }
 
 sub _default_text ($$$) {