diff options
author | Jonas Smedegaard <dr@jones.dk> | 2020-08-13 19:21:14 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2020-08-13 19:21:14 +0200 |
commit | 95862f2b20c81294413824ec2dd00f9b17905994 (patch) | |
tree | 828217c395c60630070510ee247e323861260b86 /lib |
initial commit
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/filters/about-formatting.sh | 22 | ||||
-rwxr-xr-x | lib/filters/syntax-highlighting.sh | 36 |
2 files changed, 58 insertions, 0 deletions
diff --git a/lib/filters/about-formatting.sh b/lib/filters/about-formatting.sh new file mode 100755 index 0000000..83a7bc0 --- /dev/null +++ b/lib/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 diff --git a/lib/filters/syntax-highlighting.sh b/lib/filters/syntax-highlighting.sh new file mode 100755 index 0000000..44cd310 --- /dev/null +++ b/lib/filters/syntax-highlighting.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# This script can be used to implement syntax highlighting in the cgit +# tree-view by referring to this file with the source-filter or repo.source- +# filter options in cgitrc. + +# Depends: cmark highlight + +# 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 ) + +# store filename and extension in local vars +BASENAME="$1" +EXTENSION="${BASENAME##*.}" + +[ "${BASENAME}" = "${EXTENSION}" ] && EXTENSION=txt +[ -z "${EXTENSION}" ] && EXTENSION=txt + +# map Makefile and Makefile.* to .mk +[ "${BASENAME%%.*}" = "Makefile" ] && EXTENSION=mk + +# map less common markdown extensions to .md +case "$(printf '%s' "$EXTENSION" | tr '[:upper:]' '[:lower:]')" in + markdown|mdown|mkd|mdwn) EXTENSION=md;; +esac + +case "$EXTENSION" in + md) exec cmark --safe;; + *) exec highlight --force -f -I -O xhtml -S "$EXTENSION" --ordered-list --line-number-ref=n 2>/dev/null;; +esac |