#!/usr/bin/env python3
from sys import stdin
import pygments
from markdown import markdown
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments.lexers import TextLexer, guess_lexer, guess_lexer_for_filename
filename = stdin.readline().strip()
contents = stdin.read()
lexer = None
rendered = None
try:
lexer = guess_lexer_for_filename(filename, contents)
except pygments.util.ClassNotFound:
try:
lexer = guess_lexer(contents)
except pygments.util.ClassNotFound:
pass
if lexer is None:
lexer = TextLexer()
if lexer.__class__ is pygments.lexers.MarkdownLexer:
rendered = markdown(
contents,
extensions=["codehilite", "extra", "sane_lists", "smarty", "pymdownx.tasklist"],
)
format = HtmlFormatter(
style="murphy",
cssclass="highlight",
linenos="table",
lineanchors="loc",
anchorlinenos=True,
)
if rendered:
print('<article class="markup markdown">')
print(rendered)
print("</article>")
print('<div id="blob">')
print(highlight(contents, lexer, format))
print("</div>")
print("<style>")
print(format.get_style_defs(""))
print("</style>")