]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/UserContent.pm
treewide: run update-copyrights from gnulib for 2019
[public-inbox.git] / lib / PublicInbox / UserContent.pm
index 468e6cf168b5a5021460d8cb6e14a1c7f22d50d8..b6b439004cba4b4b6ec639ef3741d37433a22318 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # Self-updating module containing a sample CSS for client-side
@@ -11,53 +11,56 @@ use warnings;
 sub CSS () {
        <<'_'
        /*
+        * CC0-1.0 <https://creativecommons.org/publicdomain/zero/1.0/legalcode>
         * Dark color scheme using 216 web-safe colors, inspired
         * somewhat by the default color scheme in mutt.
         * It reduces eyestrain for me, and energy usage for all:
         * https://en.wikipedia.org/wiki/Light-on-dark_color_scheme
         */
-       * { background:#000; color:#ccc }
+       * { background:#000 !important; color:#ccc !important }
 
        /*
         * Underlined links add visual noise which make them hard-to-read.
         * Use colors to make them stand out, instead.
         */
-       a { color:#69f; text-decoration:none }
-       a:visited { color:#96f }
+       a { color:#69f !important; text-decoration:none !important }
+       a:visited { color:#96f !important }
 
-       /* quoted text gets a different color */
-       *.q { color:#09f }
+       /* quoted text in emails gets a different color */
+       *.q { color:#09f !important }
 
        /*
-        * 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 !important } /* diff post-image lines */
+       *.del { color:#f0f !important } /* diff pre-image lines */
+       *.head { color:#fff !important } /* diff header (metainformation) */
+       *.hunk { color:#c93 !important } /* diff hunk-header */
 
        /*
         * 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.
+        * 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 */
-       .hl.str { color:#f30 } /* string */
-       .hl.ppc { color:#f0f } /* preprocessor */
-       .hl.pps { color:#f30 } /* preprocessor string */
-       .hl.slc { color:#09f } /* single-line comment */
-       .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) */
+       .hl.num { color:#f30 !important } /* number */
+       .hl.esc { color:#f0f !important } /* escape character */
+       .hl.str { color:#f30 !important } /* string */
+       .hl.ppc { color:#f0f !important } /* preprocessor */
+       .hl.pps { color:#f30 !important } /* preprocessor string */
+       .hl.slc { color:#09f !important } /* single-line comment */
+       .hl.com { color:#09f !important } /* multi-line comment */
+       /* .hl.opt { color:#ccc !important } */ /* operator */
+       /* .hl.ipl { color:#ccc !important } */ /* interpolation */
 
        /* keyword groups kw[a-z] */
-       .hl.kwa { color:#ff0 }
-       .hl.kwb { color:#0f0 }
-       .hl.kwc { color:#ff0 }
-       /* .hl.kwd { color:#ccc } */
+       .hl.kwa { color:#ff0 !important }
+       .hl.kwb { color:#0f0 !important }
+       .hl.kwc { color:#ff0 !important }
+       /* .hl.kwd { color:#ccc !important } */
+
+       /* line-number (unused by public-inbox) */
+       /* .hl.lin { color:#ccc !important } */
 _
 }
 # end of auto-updated sub
@@ -86,15 +89,22 @@ sub sample ($$) {
 # usage: perl -I lib __FILE__ contrib/css/216dark.css
 # (See Makefile.PL)
 if (scalar(@ARGV) == 1 && -r __FILE__) {
-       use autodie;
-       open my $ro, '<', $ARGV[0];
-       my $css = do { local $/; <$ro> };
+       open my $ro, '<', $ARGV[0] or die $!;
+       my $css = do { local $/; <$ro> } or die $!;
+
+       # indent one level:
        $css =~ s/^([ \t]*\S)/\t$1/smg;
-       open my $rw, '+<', __FILE__;
-       my $out = do { local $/; <$rw> };
+
+       # "!important" overrides whatever the BOFH sets:
+       $css =~ s/;/ !important;/sg;
+       $css =~ s/(\w) \}/$1 !important }/msg;
+
+       open my $rw, '+<', __FILE__ or die $!;
+       my $out = do { local $/; <$rw> } or die $!;
        $out =~ s/^sub CSS.*^_\n\}/sub CSS () {\n\t<<'_'\n${css}_\n}/sm;
        seek $rw, 0, 0;
-       print $rw $out;
+       print $rw $out or die $!;
+       close $rw or die $!;
 }
 
 1;