#!/usr/bin/env python3# 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 HtmlFormattersys.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='pastie', nobackground=True)try: lexer = guess_lexer_for_filename(filename, data)except ClassNotFound: # check if there is any shebang if data[0:2] == '#!': lexer = guess_lexer(data) 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))
#!/usr/bin/env python3
# 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 sys
import io
from pygments import highlight
from pygments.util import ClassNotFound
from pygments.lexers import TextLexer
from pygments.lexers import guess_lexer
from pygments.lexers import guess_lexer_for_filename
from pygments.formatters import HtmlFormatter
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='pastie', nobackground=True)
try:
lexer = guess_lexer_for_filename(filename, data)
except ClassNotFound:
# check if there is any shebang
if data[0:2] == '#!':
lexer = guess_lexer(data)
else:
lexer = TextLexer()
except TypeError:
lexer = TextLexer()
# highlight! :-)
# printout pygments' css definitions as well
sys.stdout.write('<style>')
sys.stdout.write(formatter.get_style_defs('.highlight'))
sys.stdout.write('</style>')
sys.stdout.write(highlight(data, lexer, formatter, outfile=None))