From 7a7626450ce0047728eff119553af9ceca413a98 Mon Sep 17 00:00:00 2001 From: Joe Date: Fri, 29 Apr 2022 19:55:01 +0000 Subject: filters --- usr/local/etc/cgitrc | 27 +++-- usr/local/etc/nginx/nginx.conf | 34 +++--- .../lib/cgit/filters/about-formatting-edited.sh | 28 +++++ .../lib/cgit/filters/html-converters/org2html | 4 + .../lib/cgit/filters/syntax-highlighting-edited.sh | 121 +++++++++++++++++++++ 5 files changed, 189 insertions(+), 25 deletions(-) create mode 100755 usr/local/lib/cgit/filters/about-formatting-edited.sh create mode 100755 usr/local/lib/cgit/filters/html-converters/org2html create mode 100755 usr/local/lib/cgit/filters/syntax-highlighting-edited.sh diff --git a/usr/local/etc/cgitrc b/usr/local/etc/cgitrc index bf973e6..3774234 100644 --- a/usr/local/etc/cgitrc +++ b/usr/local/etc/cgitrc @@ -16,22 +16,28 @@ virtual-root=/ root-title=GitJoe root-desc=where the good code belongs -clone-url=git://gitjoe.xyz/$CGIT_REPO_URL jozan@gitjoe.xyz:$CGIT_REPO_URL +clone-url=git://gitjoe.xyz/$CGIT_REPO_URL -enable-index-owner=0 +enable-index-owner=1 enable-index-links=0 enable-log-filecount=1 enable-log-linecount=1 enable-commit-graph=1 enable-remote-branches=1 +strict-export=git-daemon-export-ok +remove-suffix=1 + +about-filter=pandoc +source-filter=/usr/local/lib/cgit/filters/syntax-highlighting-edited.sh + snapshots=tar.gz tar.bz tar.xz -max-stats=quarter +max-stats=year #root-readme=/usr/local/www/cgit/about.htm #root-readme=/usr/home/git/repos/about -enable-index-owner=1 - +readme=:README.org +readme=:readme.org readme=:README.md readme=:readme.md readme=:README.mkd @@ -46,6 +52,8 @@ readme=:README.txt readme=:readme.txt readme=:README readme=:readme +readme=:INSTALL.org +readme=:install.org readme=:INSTALL.md readme=:install.md readme=:INSTALL.mkd @@ -61,6 +69,9 @@ readme=:install.txt readme=:INSTALL readme=:install -#scan-path=/usr/local/git/jozan -#scan-path=/usr/local/git/salad -#include=/usr/local/etc/cgitrepos/jozan +section=jozan +scan-path=/usr/local/git/jozan +section=salad +scan-path=/usr/local/git/salad +section=salad-joe +scan-path=/usr/local/git/salad-joe diff --git a/usr/local/etc/nginx/nginx.conf b/usr/local/etc/nginx/nginx.conf index 4f307ab..904604c 100644 --- a/usr/local/etc/nginx/nginx.conf +++ b/usr/local/etc/nginx/nginx.conf @@ -71,22 +71,22 @@ http { location ~ /\.ht { deny all; } - location @jozan { - include fastcgi_params; - root /usr/local/www/gitjoe/jozan; - try_files $uri @jozan; - index cgit.cgi; - fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; - fastcgi_param PATH_INFO $uri; - fastcgi_param QUERY_STRING $args; - fastcgi_param HTTP_HOST $server_name; - fastcgi_param CGIT_CONFIG /usr/local/etc/cgitusers/jozan; - fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; - - gzip off; - #rewrite ^ https://$server_name$request_uri permanent; - rewrite ^/([^/]+/.*)?$ /cgit.cgi?url=$1 break; - } +# location @jozan { +# include fastcgi_params; +# root /usr/local/www/gitjoe/jozan; +# try_files $uri @jozan; +# index cgit.cgi; +# fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; +# fastcgi_param PATH_INFO $uri; +# fastcgi_param QUERY_STRING $args; +# fastcgi_param HTTP_HOST $server_name; +# fastcgi_param CGIT_CONFIG /usr/local/etc/cgitusers/jozan; +# fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; +# +# gzip off; +# #rewrite ^ https://$server_name$request_uri permanent; +# rewrite ^/([^/]+/.*)?$ /cgit.cgi?url=$1 break; +# } error_page 403 /403.html; location = /403.html { root /usr/local/www/gitjoe/err; @@ -112,7 +112,7 @@ http { server { listen 80; - server_name cgit.gitjoe.xyz; + server_name repos.gitjoe.xyz; root /usr/local/www/cgit; try_files $uri @cgit; index cgit.cgi; diff --git a/usr/local/lib/cgit/filters/about-formatting-edited.sh b/usr/local/lib/cgit/filters/about-formatting-edited.sh new file mode 100755 index 0000000..cf1140e --- /dev/null +++ b/usr/local/lib/cgit/filters/about-formatting-edited.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 + *.org) exec ./org2html; ;; + *.markdown|*.mdown|*.md|*.mkd) exec ./md2html; ;; + *.rst) exec ./rst2html; ;; + *.[1-9]) exec ./man2html; ;; + *.htm|*.html) exec cat; ;; + *.txt|*) exec ./txt2html; ;; +esac diff --git a/usr/local/lib/cgit/filters/html-converters/org2html b/usr/local/lib/cgit/filters/html-converters/org2html new file mode 100755 index 0000000..70c1e86 --- /dev/null +++ b/usr/local/lib/cgit/filters/html-converters/org2html @@ -0,0 +1,4 @@ +#!/bin/sh +echo "
" +pandoc | egrep -v '(||||||||" diff --git a/usr/local/lib/cgit/filters/syntax-highlighting-edited.sh b/usr/local/lib/cgit/filters/syntax-highlighting-edited.sh new file mode 100755 index 0000000..3de95fa --- /dev/null +++ b/usr/local/lib/cgit/filters/syntax-highlighting-edited.sh @@ -0,0 +1,121 @@ +#!/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. +# +# This script requires a shell supporting the ${var##pattern} syntax. +# It is supported by at least dash and bash, however busybox environments +# might have to use an external call to sed instead. +# +# Note: the highlight command (http://www.andre-simon.de/) uses css for syntax +# highlighting, so you'll probably want something like the following included +# in your css file: +# +# Style definition file generated by highlight 2.4.8, http://www.andre-simon.de/ +# +# table.blob .num { color:#2928ff; } +# table.blob .esc { color:#ff00ff; } +# table.blob .str { color:#ff0000; } +# table.blob .dstr { color:#818100; } +# table.blob .slc { color:#838183; font-style:italic; } +# table.blob .com { color:#838183; font-style:italic; } +# table.blob .dir { color:#008200; } +# table.blob .sym { color:#000000; } +# table.blob .kwa { color:#000000; font-weight:bold; } +# table.blob .kwb { color:#830000; } +# table.blob .kwc { color:#000000; font-weight:bold; } +# table.blob .kwd { color:#010181; } +# +# +# Style definition file generated by highlight 2.6.14, http://www.andre-simon.de/ +# +# body.hl { background-color:#ffffff; } +# pre.hl { color:#000000; background-color:#ffffff; font-size:10pt; font-family:'Courier New';} +# .hl.num { color:#2928ff; } +# .hl.esc { color:#ff00ff; } +# .hl.str { color:#ff0000; } +# .hl.dstr { color:#818100; } +# .hl.slc { color:#838183; font-style:italic; } +# .hl.com { color:#838183; font-style:italic; } +# .hl.dir { color:#008200; } +# .hl.sym { color:#000000; } +# .hl.line { color:#555555; } +# .hl.mark { background-color:#ffffbb;} +# .hl.kwa { color:#000000; font-weight:bold; } +# .hl.kwb { color:#830000; } +# .hl.kwc { color:#000000; font-weight:bold; } +# .hl.kwd { color:#010181; } +# +# +# Style definition file generated by highlight 3.8, http://www.andre-simon.de/ +# +# body.hl { background-color:#e0eaee; } +# pre.hl { color:#000000; background-color:#e0eaee; font-size:10pt; font-family:'Courier New';} +# .hl.num { color:#b07e00; } +# .hl.esc { color:#ff00ff; } +# .hl.str { color:#bf0303; } +# .hl.pps { color:#818100; } +# .hl.slc { color:#838183; font-style:italic; } +# .hl.com { color:#838183; font-style:italic; } +# .hl.ppc { color:#008200; } +# .hl.opt { color:#000000; } +# .hl.lin { color:#555555; } +# .hl.kwa { color:#000000; font-weight:bold; } +# .hl.kwb { color:#0057ae; } +# .hl.kwc { color:#000000; font-weight:bold; } +# .hl.kwd { color:#010181; } +# +# +# Style definition file generated by highlight 3.13, http://www.andre-simon.de/ +# +# body.hl { background-color:#e0eaee; } +# pre.hl { color:#000000; background-color:#e0eaee; font-size:10pt; font-family:'Courier New',monospace;} +# .hl.num { color:#b07e00; } +# .hl.esc { color:#ff00ff; } +# .hl.str { color:#bf0303; } +# .hl.pps { color:#818100; } +# .hl.slc { color:#838183; font-style:italic; } +# .hl.com { color:#838183; font-style:italic; } +# .hl.ppc { color:#008200; } +# .hl.opt { color:#000000; } +# .hl.ipl { color:#0057ae; } +# .hl.lin { color:#555555; } +# .hl.kwa { color:#000000; font-weight:bold; } +# .hl.kwb { color:#0057ae; } +# .hl.kwc { color:#000000; font-weight:bold; } +# .hl.kwd { color:#010181; } +# +# +# 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 + +# highlight versions 2 and 3 have different commandline options. Specifically, +# the -X option that is used for version 2 is replaced by the -O xhtml option +# for version 3. +# +# Version 2 can be found (for example) on EPEL 5, while version 3 can be +# found (for example) on EPEL 6. +# +# This is for version 2 +#exec highlight --force -f -I -X -S "$EXTENSION" 2>/dev/null + +# This is for version 3 +exec highlight --force --inline-css -f -I -O xhtml -S "$EXTENSION" 2>/dev/null -- cgit v1.2.3