diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | etc/caddy/Caddyfile | 17 | ||||
| -rw-r--r-- | etc/cgitrc | 103 | ||||
| -rw-r--r-- | usr/lib/cgit/filters/about-formatting.sh | 28 | ||||
| -rw-r--r-- | var/www/cgit/cgit.css | 1231 | ||||
| -rw-r--r-- | var/www/cgit/favicon.svg | 1 |
6 files changed, 1381 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/etc/caddy/Caddyfile b/etc/caddy/Caddyfile new file mode 100644 index 0000000..4d77a7f --- /dev/null +++ b/etc/caddy/Caddyfile @@ -0,0 +1,17 @@ +code.webb.page { + @assets path /cgit.css /cgit.js /cgit.png /favicon.svg /head.html /robots.txt + + handle @assets { + root * /var/www/cgit + file_server + } + + reverse_proxy unix//run/fcgiwrap.socket { + transport fastcgi { + env SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi + } + } +} + +# Refer to the Caddy docs for more information: +# https://caddyserver.com/docs/caddyfile diff --git a/etc/cgitrc b/etc/cgitrc new file mode 100644 index 0000000..df3b959 --- /dev/null +++ b/etc/cgitrc @@ -0,0 +1,103 @@ +# +# cgit config +# see cgitrc(5) for details + +about-filter=/usr/lib/cgit/filters/about-formatting.sh +branch-sort=age +#cache-size=1000 +clone-url=https://code.webb.page/$CGIT_REPO_URL +css=/cgit.css +enable-blame=1 +enable-commit-graph=1 +#enable-follow-links=1 +enable-git-config=1 +enable-http-clone=1 +enable-index-links=0 +enable-index-owner=0 +enable-log-filecount=1 +enable-log-linecount=1 +favicon=/favicon.svg +footer= +head-include=/head.html +#logo=/cgit.png +logo= +#max-atom-items=50 +#max-repo-count=100 +owner=netop://ウィビ +readme=:README.md +readme=:readme.md +#repository-sort=age +root-desc=netop://ウィビ's hacks and programs +root-title=the codex +root-url=/ +side-by-side-diffs=0 +snapshots=tar.gz zip +source-filter=/usr/lib/cgit/filters/syntax-highlighting.py +#summary-log=200 + +repo.url=alpha.git +repo.path=/srv/git/alpha.git +repo.desc=Yet another GraphQL module for Deno + +repo.url=blog.git +repo.path=/srv/git/blog.git +repo.desc=My awesome blog + +repo.url=cgit.git +repo.path=/srv/git/cgit.git +repo.desc=cgit fixes and customizations + +repo.url=dedent.git +repo.path=/srv/git/dedent.git +repo.desc=Strip indentation from multi-line strings + +repo.url=homepage.git +repo.path=/srv/git/homepage.git +repo.desc=My home on the 'Net + +repo.url=order-object.git +repo.path=/srv/git/order-object.git +repo.desc=Make sure your Object keys are in alphabetical order + +repo.url=pq-jwt.git +repo.path=/srv/git/pq-jwt.git +repo.desc=Post-quantum json web tokens + +section=ChronVer + +repo.url=chronver/chronver.git +repo.path=/srv/git/chronver/chronver.git +repo.desc=Versioning for the rest of us + +repo.url=chronver/homepage.git +repo.path=/srv/git/chronver/homepage.git +repo.desc=ChronVer homepage + +section=NeverCease + +repo.url=nevercease/homepage.git +repo.path=/srv/git/nevercease/homepage.git +repo.desc=Official website of Ideas Never Cease + +repo.url=nevercease/original-emoji.git +repo.path=/srv/git/nevercease/original-emoji.git +repo.desc=NTT DoCoMo emoji + +repo.url=nevercease/uchu.git +repo.path=/srv/git/nevercease/uchu.git +repo.desc=the color palette for internet lovers + +section=systemSOFT + +repo.url=systemsoft/disc.git +repo.path=/srv/git/systemsoft/disc.git +repo.desc=Schema-first, TypeScript-native database built on Deno. + +repo.url=systemsoft/sona.git +repo.path=/srv/git/systemsoft/sona.git +repo.desc=Your personal API + + + +# scan-path must come last +#scan-path=/srv/git diff --git a/usr/lib/cgit/filters/about-formatting.sh b/usr/lib/cgit/filters/about-formatting.sh new file mode 100644 index 0000000..160f6f8 --- /dev/null +++ b/usr/lib/cgit/filters/about-formatting.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# This may be used with the about-filter or repo.about-filter setting in cgitrc. +# It passes formatting of about pages to differing programs, depending on the usage. + +# Markdown support requires python and markdown-python. +# RestructuredText support requires python and docutils. +# Man page support requires groff. + +# The following environment variables can be used to retrieve the configuration +# of the repository for which this script is called: +# CGIT_REPO_URL ( = repo.url setting ) +# CGIT_REPO_NAME ( = repo.name setting ) +# CGIT_REPO_PATH ( = repo.path setting ) +# CGIT_REPO_OWNER ( = repo.owner setting ) +# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting ) +# CGIT_REPO_SECTION ( = section setting ) +# CGIT_REPO_CLONE_URL ( = repo.clone-url setting ) + +cd "$(dirname $0)/html-converters/" +case "$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')" in + # *.markdown|*.mdown|*.md|*.mkd) exec ./md2html; ;; + *.markdown|*.mdown|*.md|*.mkd) ./md2html | sed 's|src="\./|src="/'"$CGIT_REPO_URL"'/plain/|g'; ;; + *.rst) exec ./rst2html; ;; + *.[1-9]) exec ./man2html; ;; + *.htm|*.html) exec cat; ;; + *.txt|*) exec ./txt2html; ;; +esac diff --git a/var/www/cgit/cgit.css b/var/www/cgit/cgit.css new file mode 100644 index 0000000..e888fcc --- /dev/null +++ b/var/www/cgit/cgit.css @@ -0,0 +1,1231 @@ +:root { + /*** gray ***/ + --uchu-gray-1-raw: 95.57% 0.003 286.35; + --uchu-gray-1: oklch(var(--uchu-gray-1-raw)); + --uchu-gray-2-raw: 92.04% 0.002 197.12; + --uchu-gray-2: oklch(var(--uchu-gray-2-raw)); + --uchu-gray-3-raw: 88.28% 0.003 286.34; + --uchu-gray-3: oklch(var(--uchu-gray-3-raw)); + --uchu-gray-4-raw: 84.68% 0.002 197.12; + --uchu-gray-4: oklch(var(--uchu-gray-4-raw)); + --uchu-gray-5-raw: 80.73% 0.002 247.84; + --uchu-gray-5: oklch(var(--uchu-gray-5-raw)); + --uchu-gray-6-raw: 75.03% 0.002 247.85; + --uchu-gray-6: oklch(var(--uchu-gray-6-raw)); + --uchu-gray-7-raw: 69.01% 0.003 286.32; + --uchu-gray-7: oklch(var(--uchu-gray-7-raw)); + --uchu-gray-8-raw: 63.12% 0.004 219.55; + --uchu-gray-8: oklch(var(--uchu-gray-8-raw)); + --uchu-gray-9-raw: 56.82% 0.004 247.89; + --uchu-gray-9: oklch(var(--uchu-gray-9-raw)); + + /*** red ***/ + --uchu-red-1-raw: 88.98% 0.052 3.28; + --uchu-red-1: oklch(var(--uchu-red-1-raw)); + --uchu-red-2-raw: 78.78% 0.109 4.54; + --uchu-red-2: oklch(var(--uchu-red-2-raw)); + --uchu-red-3-raw: 69.86% 0.162 7.82; + --uchu-red-3: oklch(var(--uchu-red-3-raw)); + --uchu-red-4-raw: 62.73% 0.209 12.37; + --uchu-red-4: oklch(var(--uchu-red-4-raw)); + --uchu-red-5-raw: 58.63% 0.231 19.6; + --uchu-red-5: oklch(var(--uchu-red-5-raw)); + --uchu-red-6-raw: 54.41% 0.214 19.06; + --uchu-red-6: oklch(var(--uchu-red-6-raw)); + --uchu-red-7-raw: 49.95% 0.195 18.34; + --uchu-red-7: oklch(var(--uchu-red-7-raw)); + --uchu-red-8-raw: 45.8% 0.177 17.7; + --uchu-red-8: oklch(var(--uchu-red-8-raw)); + --uchu-red-9-raw: 41.17% 0.157 16.58; + --uchu-red-9: oklch(var(--uchu-red-9-raw)); + + /*** pink ***/ + --uchu-pink-1-raw: 95.8% 0.023 354.27; + --uchu-pink-1: oklch(var(--uchu-pink-1-raw)); + --uchu-pink-2-raw: 92.14% 0.046 352.31; + --uchu-pink-2: oklch(var(--uchu-pink-2-raw)); + --uchu-pink-3-raw: 88.9% 0.066 354.39; + --uchu-pink-3: oklch(var(--uchu-pink-3-raw)); + --uchu-pink-4-raw: 85.43% 0.09 354.1; + --uchu-pink-4: oklch(var(--uchu-pink-4-raw)); + --uchu-pink-5-raw: 82.23% 0.112 355.33; + --uchu-pink-5: oklch(var(--uchu-pink-5-raw)); + --uchu-pink-6-raw: 76.37% 0.101 355.37; + --uchu-pink-6: oklch(var(--uchu-pink-6-raw)); + --uchu-pink-7-raw: 70.23% 0.092 354.96; + --uchu-pink-7: oklch(var(--uchu-pink-7-raw)); + --uchu-pink-8-raw: 64.11% 0.084 353.91; + --uchu-pink-8: oklch(var(--uchu-pink-8-raw)); + --uchu-pink-9-raw: 57.68% 0.074 353.14; + --uchu-pink-9: oklch(var(--uchu-pink-9-raw)); + + /*** purple ***/ + --uchu-purple-1-raw: 89.1% 0.046 305.24; + --uchu-purple-1: oklch(var(--uchu-purple-1-raw)); + --uchu-purple-2-raw: 78.68% 0.091 305; + --uchu-purple-2: oklch(var(--uchu-purple-2-raw)); + --uchu-purple-3-raw: 68.5% 0.136 303.78; + --uchu-purple-3: oklch(var(--uchu-purple-3-raw)); + --uchu-purple-4-raw: 58.47% 0.181 302.06; + --uchu-purple-4: oklch(var(--uchu-purple-4-raw)); + --uchu-purple-5-raw: 49.39% 0.215 298.31; + --uchu-purple-5: oklch(var(--uchu-purple-5-raw)); + --uchu-purple-6-raw: 46.11% 0.198 298.4; + --uchu-purple-6: oklch(var(--uchu-purple-6-raw)); + --uchu-purple-7-raw: 42.77% 0.181 298.49; + --uchu-purple-7: oklch(var(--uchu-purple-7-raw)); + --uchu-purple-8-raw: 39.46% 0.164 298.29; + --uchu-purple-8: oklch(var(--uchu-purple-8-raw)); + --uchu-purple-9-raw: 36.01% 0.145 298.35; + --uchu-purple-9: oklch(var(--uchu-purple-9-raw)); + + /*** blue ***/ + --uchu-blue-1-raw: 89.66% 0.046 260.67; + --uchu-blue-1: oklch(var(--uchu-blue-1-raw)); + --uchu-blue-2-raw: 80.17% 0.091 258.88; + --uchu-blue-2: oklch(var(--uchu-blue-2-raw)); + --uchu-blue-3-raw: 70.94% 0.136 258.06; + --uchu-blue-3: oklch(var(--uchu-blue-3-raw)); + --uchu-blue-4-raw: 62.39% 0.181 258.33; + --uchu-blue-4: oklch(var(--uchu-blue-4-raw)); + --uchu-blue-5-raw: 54.87% 0.222 260.33; + --uchu-blue-5: oklch(var(--uchu-blue-5-raw)); + --uchu-blue-6-raw: 51.15% 0.204 260.17; + --uchu-blue-6: oklch(var(--uchu-blue-6-raw)); + --uchu-blue-7-raw: 47.36% 0.185 259.89; + --uchu-blue-7: oklch(var(--uchu-blue-7-raw)); + --uchu-blue-8-raw: 43.48% 0.17 260.2; + --uchu-blue-8: oklch(var(--uchu-blue-8-raw)); + --uchu-blue-9-raw: 39.53% 0.15 259.87; + --uchu-blue-9: oklch(var(--uchu-blue-9-raw)); + + /*** green ***/ + --uchu-green-1-raw: 93.96% 0.05 148.74; + --uchu-green-1: oklch(var(--uchu-green-1-raw)); + --uchu-green-2-raw: 88.77% 0.096 147.71; + --uchu-green-2: oklch(var(--uchu-green-2-raw)); + --uchu-green-3-raw: 83.74% 0.139 146.57; + --uchu-green-3: oklch(var(--uchu-green-3-raw)); + --uchu-green-4-raw: 79.33% 0.179 145.62; + --uchu-green-4: oklch(var(--uchu-green-4-raw)); + --uchu-green-5-raw: 75.23% 0.209 144.64; + --uchu-green-5: oklch(var(--uchu-green-5-raw)); + --uchu-green-6-raw: 70.03% 0.194 144.71; + --uchu-green-6: oklch(var(--uchu-green-6-raw)); + --uchu-green-7-raw: 64.24% 0.175 144.92; + --uchu-green-7: oklch(var(--uchu-green-7-raw)); + --uchu-green-8-raw: 58.83% 0.158 145.05; + --uchu-green-8: oklch(var(--uchu-green-8-raw)); + --uchu-green-9-raw: 52.77% 0.138 145.41; + --uchu-green-9: oklch(var(--uchu-green-9-raw)); + + /*** yellow ***/ + --uchu-yellow-1-raw: 97.05% 0.039 91.2; + --uchu-yellow-1: oklch(var(--uchu-yellow-1-raw)); + --uchu-yellow-2-raw: 95% 0.07 92.39; + --uchu-yellow-2: oklch(var(--uchu-yellow-2-raw)); + --uchu-yellow-3-raw: 92.76% 0.098 92.58; + --uchu-yellow-3: oklch(var(--uchu-yellow-3-raw)); + --uchu-yellow-4-raw: 90.92% 0.125 92.56; + --uchu-yellow-4: oklch(var(--uchu-yellow-4-raw)); + --uchu-yellow-5-raw: 89% 0.146 91.5; + --uchu-yellow-5: oklch(var(--uchu-yellow-5-raw)); + --uchu-yellow-6-raw: 82.39% 0.133 91.5; + --uchu-yellow-6: oklch(var(--uchu-yellow-6-raw)); + --uchu-yellow-7-raw: 75.84% 0.122 92.21; + --uchu-yellow-7: oklch(var(--uchu-yellow-7-raw)); + --uchu-yellow-8-raw: 69.14% 0.109 91.04; + --uchu-yellow-8: oklch(var(--uchu-yellow-8-raw)); + --uchu-yellow-9-raw: 62.29% 0.097 91.9; + --uchu-yellow-9: oklch(var(--uchu-yellow-9-raw)); + + /*** orange ***/ + --uchu-orange-1-raw: 93.83% 0.037 56.93; + --uchu-orange-1: oklch(var(--uchu-orange-1-raw)); + --uchu-orange-2-raw: 88.37% 0.07258208750520016 55.80328658240742; + --uchu-orange-2: oklch(var(--uchu-orange-2-raw)); + --uchu-orange-3-raw: 83.56% 0.10753627570574478 56.492594564236946; + --uchu-orange-3: oklch(var(--uchu-orange-3-raw)); + --uchu-orange-4-raw: 78.75% 0.14163582809066333 54.32911089172009; + --uchu-orange-4: oklch(var(--uchu-orange-4-raw)); + --uchu-orange-5-raw: 74.61% 0.171 51.56; + --uchu-orange-5: oklch(var(--uchu-orange-5-raw)); + --uchu-orange-6-raw: 69.33% 0.157 52.18; + --uchu-orange-6: oklch(var(--uchu-orange-6-raw)); + --uchu-orange-7-raw: 63.8% 0.142 52.1; + --uchu-orange-7: oklch(var(--uchu-orange-7-raw)); + --uchu-orange-8-raw: 58.28% 0.128 52.2; + --uchu-orange-8: oklch(var(--uchu-orange-8-raw)); + --uchu-orange-9-raw: 52.49% 0.113 51.98; + --uchu-orange-9: oklch(var(--uchu-orange-9-raw)); + + /*** general ***/ + --uchu-yin-1-raw: 91.87% 0.003 264.54; + --uchu-yin-1: oklch(var(--uchu-yin-1-raw)); + --uchu-yin-2-raw: 84.61% 0.004 286.31; + --uchu-yin-2: oklch(var(--uchu-yin-2-raw)); + --uchu-yin-3-raw: 76.89% 0.004 247.87; + --uchu-yin-3: oklch(var(--uchu-yin-3-raw)); + --uchu-yin-4-raw: 69.17% 0.004 247.88; + --uchu-yin-4: oklch(var(--uchu-yin-4-raw)); + --uchu-yin-5-raw: 61.01% 0.005 271.34; + --uchu-yin-5: oklch(var(--uchu-yin-5-raw)); + --uchu-yin-6-raw: 52.79% 0.005 271.32; + --uchu-yin-6: oklch(var(--uchu-yin-6-raw)); + --uchu-yin-7-raw: 43.87% 0.005 271.3; + --uchu-yin-7: oklch(var(--uchu-yin-7-raw)); + --uchu-yin-8-raw: 35.02% 0.005 236.66; + --uchu-yin-8: oklch(var(--uchu-yin-8-raw)); + --uchu-yin-9-raw: 25.11% 0.006 258.36; + --uchu-yin-9: oklch(var(--uchu-yin-9-raw)); + --uchu-yin-raw: 14.38% 0.007 256.88; + --uchu-yin: oklch(var(--uchu-yin-raw)); + --uchu-yang-raw: 99.4% 0 0; + --uchu-yang: oklch(var(--uchu-yang-raw)); + + /*** the rest ***/ + --monospace: "Berkley Mono", monospace; + --width-with-panel: calc(100% - calc(200px + 1rem)); +} + +* { + margin: 0; padding: 0; + + appearance: none; + box-sizing: inherit; +} + +html { + box-sizing: border-box; + font-family: sans-serif; + font-size: 10px; +} + +body { + background-color: var(--uchu-yang); + font-size: 1.5rem; +} + +div#cgit { + border-bottom: 3px solid var(--uchu-gray-2); + color: var(--uchu-yin-8); + margin-bottom: 2rem; + margin-left: auto; + margin-right: auto; + max-width: 1000px; + padding-top: 3rem; + + a { + color: var(--uchu-blue-5); + + &:not(:hover) { + text-decoration: underline; + } + + &:hover { + text-decoration: none; + } + + &.branch-deco, + &.deco, + &.remote-deco, + &.tag-deco, + &.tag-annotated-deco { + margin: 0 0.5rem; padding: 0 0.25rem; + + border: 1px solid; + color: #000; + } + + &.branch-deco { + background-color: var(--uchu-green-4); + border-color: var(--uchu-green-7); + text-decoration: none; + } + + &.button { + padding: 0 0.5rem; + } + + &.deco { + background-color: var(--uchu-orange-4); + border-color: var(--uchu-orange-7); + text-decoration: none; + } + + &.remote-deco { + background-color: #ccccff; + border-color: #000077; + } + + &.tag-deco { + background-color: #ffff88; + border-color: #777700; + } + + &.tag-annotated-deco { + background-color: #ffcc88; + border-color: #777700; + } + } + + div { + &#blob { + border: 1px solid var(--uchu-yin); + } + + &#summary { + margin-bottom: 1rem; + vertical-align: top; + } + + &.cgit-panel { + position: absolute; + right: 0; + + select { + width: 100%; + } + + table { + background-color: oklch(var(--uchu-gray-1-raw) / 50%); + border: 1px solid var(--uchu-gray-1); + width: 200px; + } + + th { + text-align: center; + } + + td { + padding: 0.25rem 0.5rem; + + &.ctrl { + padding-left: 0.5rem; + } + + &.label { + padding-right: 0.5rem; + } + } + } + + &.commit-msg { + font-family: var(--monospace); + white-space: pre; + } + + &.commit-subject { + margin: 1.5rem 0 0.5rem 0; padding: 0; + font-weight: bold; + + a { + &.branch-deco, + &.tag-deco, + &.tag-annotated-deco, + &.remote-deco, + &.deco { + margin-left: 1rem; + } + } + } + + &.content { + overflow-x: hidden; + padding: 1rem 0 0 0; + position: relative; + } + + &.diffstat-header { + font-weight: bold; + width: var(--width-with-panel); + } + + &.diffstat-summary { + color: var(--uchu-yin-4); + padding-top: 1rem; + width: var(--width-with-panel); + } + + &.error { + color: var(--uchu-red-5); + font-weight: bold; + margin: 1rem 2rem; + } + + &.footer { + color: var(--uchu-gray-3); + margin-top: 0.5rem; + text-align: center; + + a { + color: var(--uchu-gray-3); + + &:not(:hover) { + text-decoration: none; + } + + &:hover { + text-decoration: underline; + } + } + } + + &.notes { + background-color: #ffd; + border: 1px solid #ee9; + float: left; + font-family: var(--monospace); + padding: 0.3rem 2rem 0.3rem 1rem; + white-space: pre; + } + + &.notes-footer { + clear: left; + } + + &.notes-header { + font-weight: bold; + padding-top: 1.5rem; + } + + &.path { + background-color: var(--uchu-gray-2); + line-height: 1.33; + padding: 0.5rem 2rem; + } + } + + img { + border: none; + } + + input#switch-btn { + margin: 2px 0 0 0; + } + + select { + background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTcuMTc0MzIgMTAuMjVMMTIgMTYuMTg5NEwxNi44MjU4IDEwLjI1SDcuMTc0MzJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K); + background-position: right center; + background-repeat: no-repeat; + background-size: 1.5rem; + border: 1px solid var(--uchu-gray-3); + border-radius: 0; + line-height: 1.33; + padding: 0.25rem 0.5rem; + position: relative; + + &:focus { + outline: 1px solid var(--uchu-pink-5); + outline-offset: -1px; + z-index: 1; + } + } + + span { + &.age-mins { + color: #080; + font-weight: bold; + } + + &.age-hours { + color: #080; + } + + &.age-days { + color: #040; + } + + &.age-weeks { + color: #444; + } + + &.age-months { + color: #888; + } + + &.age-years { + color: #bbb; + } + + &.deletions { + color: #800; + } + + &.insertions { + color: #080; + } + } + + table { + border-collapse: collapse; + + &[summary^="repository"], + &[summary^="tree"] { + margin-bottom: 1.5rem; + + .nohover { + text-transform: lowercase; + + a { + color: inherit; + display: block; + padding-bottom: 1rem; + text-decoration: none; + } + } + } + + &#downloads { + border: 1px solid #777; + border-collapse: collapse; + float: right; + margin-bottom: 0.5rem; + margin-left: 0.5rem; + + th { + background-color: var(--uchu-gray-3); + } + } + + &#grid { + margin: 0; + } + + &#header { + margin-bottom: 1rem; + width: 100%; + + td { + &.form { + text-align: right; + + form { + bottom: -1rem; + display: flex; + flex-direction: row; + justify-content: end; + position: relative; + white-space: nowrap; + + input { + border: 1px solid var(--uchu-gray-3); + border-radius: 0; + line-height: 1.33; + padding: 0.25rem 0.5rem; + position: relative; + + &:focus { + outline: 1px solid var(--uchu-pink-5); + outline-offset: -1px; + z-index: 1; + } + } + + select { + padding: 0.25rem 2.5rem 0.25rem 0.5rem; + right: -1px; + } + } + } + + &.logo { + vertical-align: top; + width: 96px; + } + + &.main { + font-size: 250%; + white-space: nowrap; + + a { + color: var(--uchu-yin); + } + } + + &.sub { + color: var(--uchu-yin-4); + } + } + } + + &.blob td.linenumbers a, + &.ssdiff td.lineno a { + text-align: right; + text-decoration: none; + + &:not(:hover) { + color: var(--uchu-yin-4); + } + + &:hover { + color: var(--uchu-yin); + } + } + + &.bin-blob { + border: 1px solid var(--uchu-yin); + margin-top: 0.5rem; + + th { + border: 1px solid #777; + font-family: var(--monospace); + padding: 0.5rem 1rem; + white-space: pre; + } + + td { + border-left: solid 1px #777; + font-family: var(--monospace); + padding: 0 1rem; + white-space: pre; + } + } + + &.blame { + td { + &.hashes, + &.lines, + &.linenumbers { + padding: 0; + } + + &.hashes, + &.lines { + div.alt { + padding: 0 0.5rem 0 0.5rem; + } + } + + &.linenumbers div.alt { + padding: 0 0.5rem 0 0; + } + + &.lines { + > div { + position: relative; + + > pre { + padding: 0 0 0 0.5rem; + position: absolute; + top: 0; + } + } + } + } + + div { + &.alt { + &:nth-child(even) { + background-color: var(--uchu-gray-2); + } + + &:nth-child(odd) { + background-color: var(--uchu-yang); + } + } + } + } + + &.blob { + border-top: 1px solid var(--uchu-gray-2); + margin-top: 1rem; + width: 100%; + + td { + &.hashes, + &.lines { + margin: 0; padding: 0 0 0 0.5em; + + color: var(--uchu-yin); + vertical-align: top; + } + + &.linenumbers { + border-right: 1px solid var(--uchu-gray-2); + padding-left: 0.5rem; + padding-right: 0.5rem; + text-align: right; + vertical-align: top; + } + } + + /* Style definition file generated by highlight 3.9, http://www.andre-simon.de/ */ + /* Highlighting theme: Kwrite Editor */ + /* adapted for cgit */ + .com, + .slc { + font-style: italic; + } + + .kwa, + .kwc { + font-weight: bold; + } + + .com { color: #838183; } + .esc { color: #ff00ff; } + .kwa { color: #000000; } + .kwb { color: #0057ae; } + .kwc { color: #000000; } + .kwd { color: #010181; } + .lin { color: #555555; } + .num { color: #b07e00; } + .opt { color: #000000; } + .ppc { color: #008200; } + .pps { color: #818100; } + .slc { color: #838183; } + .str { color: #bf0303; } + } + + &.commit-info { + margin-top: 1.5rem; + width: var(--width-with-panel); + + th, + td { + font-weight: normal; + padding: 0.1rem 1rem 0.1rem 0.1rem; + } + + th { + text-align: left; + vertical-align: top; + } + } + + &.diff { + font-size: 1.25rem; + width: 100%; + + td { + font-family: var(--monospace); + white-space: pre; + + div { + &:last-of-type { + padding-bottom: 1.5rem; + } + + &.add { + background-color: var(--uchu-green-1); + } + + &.del { + background-color: var(--uchu-red-1); + } + + &.head { + font-weight: bold; + margin-top: 1rem; + } + + &.hunk { + background-color: var(--uchu-blue-1); + } + } + } + } + + &.diffstat { + background-color: oklch(var(--uchu-gray-1-raw) / 50%); + border: 1px solid var(--uchu-gray-1); + width: var(--width-with-panel); + + th { + font-weight: normal; + padding: 0.25rem 0.5rem; + text-align: left; + text-decoration: underline; + } + + td { + border: none; + padding: 0.25rem 0.5rem; + + &.graph, + &.mode, + &.right { + font-family: var(--monospace); + } + + &.add { + a { + color: var(--uchu-green-6); + } + } + + &.del { + a { + color: var(--uchu-red-6); + } + } + + &.graph { + vertical-align: middle; + width: 500px; + + table { + border: none; + } + + td { + border: 0; + height: 7pt; + padding: 0; + + &.add { + background-color: var(--uchu-green-6); + } + + &.rem { + background-color: var(--uchu-red-6); + } + } + } + + &.mode { + white-space: nowrap; + } + + &.upd { + a { + color: var(--uchu-blue-5); + } + } + + span.modechange { + color: var(--uchu-red-6); + padding-left: 1rem; + } + } + } + + &.hgraph { + border: 1px solid var(--uchu-yin); + width: 800px; + + th { + background-color: #eee; + border: 1px solid var(--uchu-yin); + font-weight: bold; + padding: 1px 0.5rem; + } + + td { + padding: 2px; + vertical-align: middle; + } + + div.bar { + background-color: #eee; + height: 1rem; + } + } + + &.list { + border: none; + width: 100%; + + tr { + background-color: var(--uchu-yang); + + &.logheader { + background-color: var(--uchu-gray-2); + } + + &:nth-child(even), + &.nohover-highlight:hover:nth-child(even) { + background-color: oklch(var(--uchu-gray-1-raw) / 50%); + } + + &:nth-child(odd), + &.nohover-highlight:hover:nth-child(odd) { + background-color: var(--uchu-yang); + } + + &:hover { + background-color: var(--uchu-gray-1); + } + + &.nohover, + &.nohover:hover { + background-color: var(--uchu-yang); + } + } + + th { + font-weight: bold; + padding: 0.1rem 0.5rem 0.05rem 0.5rem; + vertical-align: baseline; + } + + td { + border: none; + padding: 0.1rem 0.5rem 0.1rem 0.5rem; + + &.commitgraph, + &.logmsg, + &.logsubject, + &.reposection { + font-family: var(--monospace); + } + + &.commitgraph { + white-space: pre; + + .column1 { + color: #a00; + } + + .column2 { + color: #0a0; + } + + .column3 { + color: #aa0; + } + + .column4 { + color: #00a; + } + + .column5 { + color: #a0a; + } + + .column6 { + color: #0aa; + } + } + + &.logmsg { + padding: 0 0.5rem; + white-space: pre; + } + + &.logsubject { + font-weight: bold; + } + + &.reposection { + color: var(--uchu-yin-4); + font-style: italic; + } + + &.sublevel-repo { + padding-left: 1.5rem; + } + + a { + &:not(:hover) { + color: var(--uchu-yin); + } + + &:hover { + color: var(--uchu-blue-5); + } + + &.ls-dir { + font-weight: bold; + } + } + } + } + + &.nowrap { + td { + white-space: nowrap; + } + } + + &.ssdiff { + width: 100%; + + span { + &.add, + &.del { + font-weight: bold; + } + + &.add { + background: #cfc; + } + + &.del { + background: #fcc; + } + } + + td { + border-left: 1px solid #aaa; + border-right: 1px solid #aaa; + font-family: var(--monospace); + padding: 1px 4px 1px 4px; + white-space: pre; + + &.add, + &.add_dark, + &.changed, + &.changed_dark, + &.del, + &.del_dark { + color: var(--uchu-yin); + min-width: 50%; + } + + &.add { + background: #cfc; + } + + &.add_dark { + background: #aca; + } + + &.changed { + background: #ffc; + } + + &.changed_dark { + background: #cca; + } + + &.del { + background: #fcc; + } + + &.del_dark { + background: #caa; + } + + &.foot { + border-bottom: none; + border-left: none; + border-right: none; + border-top: 1px solid #aaa; + } + + &.head { + border-bottom: 1px solid #aaa; + border-top: 1px solid #aaa; + + div.head { + font-weight: bold; + } + } + + &.hunk { + background: #ccf; + border-bottom: 1px solid #aaa; + border-top: 1px solid #aaa; + color: var(--uchu-yin); + } + + &.lineno { + background-color: var(--uchu-gray-2); + min-width: 3rem; + text-align: right; + width: 3rem; + } + + &.space { + border: none; + + div { + min-height: 3rem; + } + } + } + } + + &.stats { + border: 1px solid var(--uchu-yin); + border-collapse: collapse; + + th { + background-color: #eee; + border: 1px solid var(--uchu-yin); + padding: 1px 0.5rem; + text-align: left; + } + + td { + border: 1px solid var(--uchu-yin); + padding: 1px 0.5rem; + text-align: right; + + &.left { + text-align: left; + } + + &.sum { + color: #c00; + font-weight: bold; + } + + &.total { + font-weight: bold; + text-align: left; + } + } + } + + &.tabs { + border-bottom: 3px solid var(--uchu-gray-2); + margin-top: 1.5rem; + width: 100%; + + tr { + align-items: baseline; + display: flex; + flex-direction: row; + justify-content: space-between; + } + + td { + a { + line-height: 1.33; + padding: 0.75rem 1.5rem 0.5rem; + text-decoration: none; + + &:not(.active) { + color: var(--uchu-yin-3); + } + + &.active { + background-color: var(--uchu-gray-2); + color: var(--uchu-yin-7); + } + + &[href^="http://"]::after, + &[href^="https://"]::after { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC); + content: ""; + margin: 0 0 0 5px; + opacity: 0.5; + } + } + + &.form { + text-align: right; + + form { + bottom: 6px; + display: flex; + flex-direction: row; + position: relative; + white-space: nowrap; + + input { + border: 1px solid var(--uchu-gray-3); + border-radius: 0; + line-height: 1.33; + padding: 0.25rem 0.5rem; + position: relative; + + &:focus { + outline: 1px solid var(--uchu-pink-5); + outline-offset: -1px; + z-index: 1; + } + } + + select { + right: -2px; + } + + input[type="search"] { + right: -1px; + } + } + } + } + } + + &.vgraph { + border: 1px solid var(--uchu-yin); + border-collapse: separate; + height: 200px; + + th { + background-color: #eee; + border: 1px solid var(--uchu-yang); + font-weight: bold; + padding: 1px 0.5rem; + } + + td { + padding: 0 10px; + vertical-align: bottom; + } + + div.bar { + background-color: #eee; + } + } + } + + td { + &#content { + border: none; + padding: 1rem 2rem 1rem 1rem; + vertical-align: top; + } + + &#sidebar { + input.txt { + margin: 2px 0 0 0; + width: 100%; + } + } + + &.ls-size, + &.ls-mode { + width: 10rem; + } + + &.ls-size { + text-align: right; + } + } + + ul.pager { + margin: 1rem 0 0 0; padding: 0; + + list-style-type: none; + text-align: center; + + li { + display: inline-block; + margin: 0.25rem 0.5rem; + } + + a { + color: #777; + } + + .current { + font-weight: bold; + } + } + + .left { + text-align: left; + } + + .oid { + font-family: var(--monospace); + } + + .right { + text-align: right; + } +} + +div#cgit a.ls-blob, +div#cgit a.ls-dir, +div#cgit .ls-mod, +div#cgit td.ls-mode, +div#cgit td.ls-size { + font-family: var(--monospace); +} diff --git a/var/www/cgit/favicon.svg b/var/www/cgit/favicon.svg new file mode 100644 index 0000000..be092c1 --- /dev/null +++ b/var/www/cgit/favicon.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges" viewBox="0 -0.5 16 16"><path stroke="#fff" d="M3 1h7M1 2h3m5 0h3M1 3h1m9 0h2M0 4h2m10 0h1M0 5h1m7 0h1m1 0h1m1 0h3M0 6h1m5 0h1m7 0h2M0 7h1m14 0h1M0 8h1m9 0h1m2 0h3M0 9h2m5 0h1m5 0h1M1 10h1m11 0h1M1 11h2m4 0h2m4 0h1M2 12h2m9 0h1M3 13h2m7 0h2M4 14h3m4 0h2m-7 1h6"/><path stroke="#000" d="M4 2h1M2 3h1m2 0h6M2 4h1m2 0h3m3 0h1M1 5h1m2 0h1m6 0h1M1 6h1m2 0h1M1 7h2m2 0h1m2 0h3m1 0h2M1 8h3m1 0h3m3 0h1M8 9h1m1 0h2m-8 1h1m2 0h2m3 0h1m-9 1h2m3 0h4m-9 1h4m4 0h1m-8 1h4m1 0h2m-5 1h4"/><path stroke="#2e2e2c" d="M5 2h4M3 3h2M3 4h2M2 5h2M2 6h2m4 0h6M3 7h2m1 0h2m6 0h1M4 8h1m3 4h2m1 0h1m-3 1h1"/><path stroke="#f28798" d="M8 4h3M5 5h3m1 0h1M5 6h1m1 0h1"/><path stroke="#ccc" d="M11 7h1M8 8h2m2 0h1M6 9h1"/><path stroke="#b6a69f" d="M2 9h1m0 1h1m2 1h1"/><path stroke="#c0b3ad" d="M3 9h1m6 1h1m-1 2h1"/><path stroke="#eeeded" d="M4 9h2m3 0h1m2 0h1m-7 1h1m2 0h1m1 0h1"/><path stroke="#a08a7f" d="M2 10h1m2 0h1m-3 1h1"/></svg>
\ No newline at end of file |