blob: 44cd310769c4807dd385fb03ac4641bf78de5c8d (
plain)
- #!/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
|