aboutsummaryrefslogtreecommitdiff
path: root/responsive/md2html
blob: 571c8d7248009d6406a7753516e5b223c7c69c46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python3
import io
import sys

import markdown
from markdown.extensions.toc import TocExtension

sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding="utf-8")
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")

sys.stdout.write("<div class='markdown-body'>")
sys.stdout.flush()

try:
    markdown.markdownFromFile(
        output_format="html5",
        extensions=[
            "markdown.extensions.fenced_code",
            "markdown.extensions.codehilite",
            "markdown.extensions.tables",
            "markdown.extensions.sane_lists",
            "markdown.extensions.admonition",
            TocExtension(anchorlink=True, permalink=True),
        ],
        extension_configs={
            "markdown.extensions.codehilite": {
                "css_class": "highlight",
                "guess_lang": False,
            }
        },
    )
except Exception as e:
    sys.stdout.write(f"<p>Error rendering markdown: {e}</p>")
    sys.stdin.seek(0)
    sys.stdout.write(f"<pre>{sys.stdin.read()}</pre>")

sys.stdout.write("</div>")