summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2020-06-20 21:52:30 +0200
committerJonas Smedegaard <dr@jones.dk>2020-06-20 21:52:30 +0200
commitce6ff9c1ad24b63851b736021e898da7e287d146 (patch)
treee9708cc4788f2b9e35c6c93ca6bfbfe2fc44932a
parent0096a166c05da05b471123c5dce3d15a053ba642 (diff)
update cgit config, to strip .git suffix from projects, and parse README.md with cmark
-rw-r--r--cgit/apache2/conf-available/local-cgit.conf5
-rw-r--r--cgit/cgitrc21
-rwxr-xr-xcgit/filters/about-formatting.sh22
3 files changed, 47 insertions, 1 deletions
diff --git a/cgit/apache2/conf-available/local-cgit.conf b/cgit/apache2/conf-available/local-cgit.conf
index 56d81c5..27a6c13 100644
--- a/cgit/apache2/conf-available/local-cgit.conf
+++ b/cgit/apache2/conf-available/local-cgit.conf
@@ -10,6 +10,9 @@ Alias /cgit-css/ /usr/share/cgit/
Alias /favicon.ico /usr/share/cgit/favicon.ico
Alias /robots.txt /usr/share/cgit/robots.txt
-<LocationMatch ^/(?!cgit-css/.*|favicon\.ico|robots\.txt|\.well-known/acme-challenge/)>
+# this requires cgit config: enable-index-links=1
+RedirectMatch permanent ^/([^./]+)\.git(/.*) /$1$2
+
+<LocationMatch ^/(?![^./]+\.git/|cgit-css/.*|favicon\.ico|robots\.txt|\.well-known/acme-challenge/)>
ProxyPass unix:/run/uwsgi/app/local-git/socket|uwsgi://local-git
</LocationMatch>
diff --git a/cgit/cgitrc b/cgit/cgitrc
new file mode 100644
index 0000000..596265d
--- /dev/null
+++ b/cgit/cgitrc
@@ -0,0 +1,21 @@
+#
+# cgit config
+# see cgitrc(5) for details
+
+css=/cgit-css/cgit.css
+logo=/cgit-css/cgit.png
+
+remove-suffix=1
+
+clone-url=git://$HTTP_HOST/$CGIT_REPO_URL user@$HTTP_HOST:$CGIT_REPO_URL https://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL http://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL
+
+source-filter=/usr/lib/cgit/filters/syntax-highlighting.sh
+
+# requires cmark
+about-filter=/etc/local-COMMON/cgit/filters/about-formatting.sh
+readme=:README.md
+
+cache-size=1000
+
+# must be last!
+scan-path=$DOCUMENT_ROOT
diff --git a/cgit/filters/about-formatting.sh b/cgit/filters/about-formatting.sh
new file mode 100755
index 0000000..83a7bc0
--- /dev/null
+++ b/cgit/filters/about-formatting.sh
@@ -0,0 +1,22 @@
+#!/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.
+
+# Depends: cmark
+
+# 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 )
+
+case "$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')" in
+ *.markdown|*.mdown|*.md|*.mkd|*.mdwn) exec cmark --safe; ;;
+ *.htm|*.html) exec cat; ;;
+ *.txt|*) cd /usr/lib/cgit/filters/html-converters; exec ./txt2html; ;;
+esac