-#!/usr/bin/env python3
-
-import pygments
-from pygments import highlight
-from pygments.formatters import HtmlFormatter
-import pygments.lexers
-from markdown import markdown
-
-from sys import stdin, stderr
-
-filename = stdin.readline().strip()
-contents = stdin.read()
-lexer = None
-
-try:
- lexer = pygments.lexers.guess_lexer_for_filename(filename, contents)
-except pygments.util.ClassNotFound:
- try:
- lexer = pygments.lexers.guess_lexer(contents)
- except pygments.util.ClassNotFound:
- pass
-
-if lexer is None:
- lexer = pygments.lexers.special.TextLexer
-
-rendered = (
- markdown(
- contents,
- extensions=[
- "codehilite",
- "extra",
- "sane_lists",
- "smarty",
- "pymdownx.tasklist",
- ],
- )
- if lexer.__class__ is pygments.lexers.MarkdownLexer
- else None
-)
-
-formatter = HtmlFormatter(
- style="monokai",
- cssclass="highlight",
- linenos="table",
- lineanchors="loc",
- anchorlinenos=True,
-)
-
-outp = ""
-if rendered:
- outp += '<article class="markup markdown">'
- outp += rendered
- outp += "</article>"
-outp += f'<div id="blob">{highlight(contents, lexer, formatter)}</div>"'
-outp += '<link rel="stylesheet" href="/syntax.css"'
-
-print(outp)
-
-print(f"Filename: {filename}; Lexer: {lexer}.", file=stderr)
-
-if rendered:
- print("Markdown was rendered in addition.", file=stderr)