4 from pygments import highlight
5 from pygments.formatters import HtmlFormatter
6 from pygments.lexers import guess_lexer, guess_lexer_for_filename
8 from sys import stdin, stderr
10 filename = stdin.readline().strip()
11 contents = stdin.read()
16 lexer = guess_lexer_for_filename(filename, contents)
17 except pygments.util.ClassNotFound:
19 lexer = guess_lexer(contents)
20 except pygments.util.ClassNotFound:
24 from pygments.lexers import TextLexer
28 if lexer.__class__ is pygments.lexers.MarkdownLexer:
29 from markdown import markdown
30 rendered = markdown(contents, extensions=[
38 FORMAT = HtmlFormatter(
46 print('<article class="markup markdown">')
49 print('<div id="blob">')
50 print(highlight(contents, lexer, FORMAT))
53 print(FORMAT.get_style_defs(''))
56 print("Filename: {}; Lexer: {}.".format(filename, lexer), file=stderr)
58 print("Markdown was rendered in addition.", file=stderr)