[ MIRROR ] NixOS & Home-Manager configuration git.ngill.net/dotfiles.git
Something went wrong. Try again.
2.0 kB · 62 lines
Python
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#!/usr/bin/env python3
# /usr/lib/cgit/filters/syntax-highlighting.py# make sure to also install catppuccin[pygments] with pip
# This script uses Pygments and Python3. You must have both installed# for this to work.## http://pygments.org/# http://python.org/## It may be used with the source-filter or repo.source-filter settings# in cgitrc.## 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 )
import sysimport iofrom pygments import highlightfrom pygments.util import ClassNotFoundfrom pygments.lexers import TextLexerfrom pygments.lexers import guess_lexerfrom pygments.lexers import guess_lexer_for_filenamefrom pygments.formatters import HtmlFormatterfrom catppuccin.extras.pygments import MochaStyle
sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8', errors='replace')sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')data = sys.stdin.read()filename = sys.argv[1]formatter = HtmlFormatter(style=MochaStyle, nobackground=True)
try: lexer = guess_lexer_for_filename(filename, data)except ClassNotFound: # check if there is any shebang if data[0:2] == '#!': try: lexer = guess_lexer(data) except ClassNotFound: lexer = TextLexer() else: lexer = TextLexer()except TypeError: lexer = TextLexer()
# highlight! :-)# printout pygments' css definitions as wellsys.stdout.write('<style>')sys.stdout.write(formatter.get_style_defs('.highlight'))sys.stdout.write('</style>')sys.stdout.write(highlight(data, lexer, formatter, outfile=None))