#!/usr/bin/env python
from __future__ import print_function
import argparse
import markdown
import os
import sys
import io
def convert_markdown(in_fn):
input_md = io.open(in_fn, mode="r", encoding="utf-8").read()
html = markdown.markdown(
"[TOC]\n" + input_md,
extensions=["pymdownx.extra", "pymdownx.b64", "pymdownx.highlight", "pymdownx.emoji", "pymdownx.tilde", "toc"],
extension_configs={
"pymdownx.b64": {"base_path": os.path.dirname(in_fn)},
"pymdownx.highlight": {"noclasses": True},
"toc": {"title": "Table of Contents"},
},
)
return html
def wrap_html(contents):
header = """
"""
footer = """
"""
return header + contents + footer
def parse_args(args=None):
parser = argparse.ArgumentParser()
parser.add_argument("mdfile", type=argparse.FileType("r"), nargs="?", help="File to convert. Defaults to stdin.")
parser.add_argument(
"-o", "--out", type=argparse.FileType("w"), default=sys.stdout, help="Output file name. Defaults to stdout."
)
return parser.parse_args(args)
def main(args=None):
args = parse_args(args)
converted_md = convert_markdown(args.mdfile.name)
html = wrap_html(converted_md)
args.out.write(html)
if __name__ == "__main__":
sys.exit(main())