]> git.armaanb.net Git - stagit.git/blob - highlight
Pass in filename not fpath.
[stagit.git] / highlight
1 #!/usr/bin/env python3
2
3 import pygments
4 from pygments import highlight
5 from pygments.formatters import HtmlFormatter
6 from pygments.lexers import guess_lexer, guess_lexer_for_filename
7
8 from sys import stdin, stderr
9
10 filename = stdin.readline().strip()
11 contents = stdin.read()
12
13 lexer=None
14
15 try:
16     lexer = guess_lexer_for_filename(filename, contents)
17 except pygments.util.ClassNotFound:
18     try:
19         lexer = guess_lexer(contents)
20     except pygments.util.ClassNotFound:
21         pass
22
23 if lexer is None:
24     from pygments.lexers import TextLexer
25     lexer = TextLexer
26
27 FORMAT = HtmlFormatter(
28     style='murphy',
29     cssclass='highlight',
30     linenos='table',
31     lineanchors='loc',
32     anchorlinenos=True)
33
34 print(highlight(contents, lexer, FORMAT))
35 print('<style>')
36 print(FORMAT.get_style_defs('.highlight'))
37 print('</style>')
38
39 print("Filename: {}; Lexer: {}.".format(filename, lexer), file=stderr)