summary refs log tree commit diff stats
path: root/modules/nixos/vhack/git-server/css.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-02 23:03:12 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-13 22:40:07 +0200
commit37352eaede80850d403bf13b1ac254f38800dc73 (patch)
tree5e7d76c1973a4bbfa44e778ec1b470f20be7b6ab /modules/nixos/vhack/git-server/css.nix
parentbuild(tests): Add complementary scripts (diff)
downloadnixos-server-37352eaede80850d403bf13b1ac254f38800dc73.tar.gz
nixos-server-37352eaede80850d403bf13b1ac254f38800dc73.zip
feat(nixos/git-server): Add further cgit settings
A lot of the added settings here have been tested. They will get
get tests to ensure they stay working, in later commits.
Diffstat (limited to '')
-rw-r--r--modules/nixos/vhack/git-server/css.nix116
1 files changed, 116 insertions, 0 deletions
diff --git a/modules/nixos/vhack/git-server/css.nix b/modules/nixos/vhack/git-server/css.nix
new file mode 100644
index 0000000..3d73ea0
--- /dev/null
+++ b/modules/nixos/vhack/git-server/css.nix
@@ -0,0 +1,116 @@
+{cgitPkg, pkgs}: let
+  /*
+  Adapted from `https://git.qyliss.net/nixlib/sys/atuin.nix`, originally distributed under
+  the MIT license.
+  */
+  cgitCss =
+    pkgs.runCommand "cgit-extra.css" {
+      licenseHeader = ''
+        /*
+         * This program is free software: you can redistribute it and/or modify
+         * it under the terms of the GNU General Public License v2 as published
+         * by the Free Software Foundation.
+         *
+         * This program is distributed in the hope that it will be useful,
+         * but WITHOUT ANY WARRANTY; without even the implied warranty of
+         * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+         * GNU General Public License for more details.
+         *
+         * See <https://www.gnu.org/licenses/>.
+         */
+
+      '';
+
+      # Adapted from
+      # <https://git.causal.agency/src/plain/www/git.causal.agency/custom.css>,
+      # distributed as a Larger Work under a Secondary License,
+      # as permitted by the terms of the
+      # Mozilla Public License Version 2.0.
+      extraCss = ''
+        * { line-height: 1.25em; }
+
+        article {
+          font-family: sans-serif;
+          max-width: 70ch;
+          margin-left: auto;
+          margin-right: auto;
+        }
+
+        div#cgit {
+          margin: auto;
+          font-family: monospace;
+          -moz-tab-size: 4;
+          tab-size: 4;
+          display: table;
+        }
+
+        div#cgit table#header {
+          margin-left: auto;
+          margin-right: auto;
+        }
+        div#cgit table#header td.logo {
+          display: none;
+        }
+        div#cgit table#header td.main {
+          font-size: 1em;
+          font-weight: bold;
+        }
+        div#cgit table#header td.sub {
+          border-top: none;
+        }
+        div#cgit table.tabs {
+          margin-left: auto;
+          margin-right: auto;
+          border-bottom: none;
+        }
+        div#cgit div.content {
+          border-bottom: none;
+          min-width: 108ch;
+        }
+        div#cgit div.content div#summary {
+          display: table;
+          margin-left: auto;
+          margin-right: auto;
+        }
+        div#cgit div.notes {
+          border: none;
+          background: transparent;
+          padding: 0;
+        }
+        div#cgit table.list {
+          margin-left: auto;
+          margin-right: auto;
+        }
+        div#cgit table.list th a {
+          color: inherit;
+        }
+        div#cgit table.list tr:nth-child(even) {
+          background: inherit;
+        }
+        div#cgit table.list tr:hover {
+          background: inherit;
+        }
+        div#cgit table.list tr.nohover-highlight:hover:nth-child(even) {
+          background: inherit;
+        }
+        div#cgit div.footer {
+          font-size: 1em;
+          margin-top: 0;
+        }
+
+        div#cgit table.blob td.linenumbers:nth-last-child(3) {
+          display: none;
+        }
+
+        div#cgit table.blob td.linenumbers a:target {
+          color: goldenrod;
+          text-decoration: underline;
+          outline: none;
+        }
+      '';
+      passAsFile = ["licenseHeader" "extraCss"];
+    } ''
+      cat $licenseHeaderPath ${cgitPkg}/cgit/cgit.css $extraCssPath > $out
+    '';
+in
+  cgitCss