Files
pylight/pylight.py

35 lines
959 B
Python

from pygments import highlight
from pygments.lexers import *
from pygments.formatters import get_formatter_by_name
def pylight(args):
if 'source' not in args:
return False
try:
lexer = detect_lexer(args)
formatter = detect_formatter(args)
return { 'lexer': lexer.name,
'body': highlight(args['source'], lexer, formatter) }
except:
return False
def detect_lexer(args):
if 'lang' in args:
return get_lexer_by_name(args['lang'])
elif 'mimetype' in args:
return get_lexer_for_mimetype(args['mimetype'])
elif 'filename' in args:
return guess_lexer_for_filename(args['filename'],
args['source'])
else:
return guess_lexer(args['source'])
def detect_formatter(args):
if 'format' in args:
return get_formatter_by_name(args['format'])
else:
return get_formatter_by_name('html')