class WikiMarkdown: def __init__(self): renderer = WikiRenderer() inline = WikiInlineLexer(renderer) # enable the feature inline.enable_wiki_page() inline.enable_wiki_file() self.markdown = Markdown(renderer, inline=inline) def __call__(self, wiki_page, markdown): g.wiki_page = wiki_page self.markdown.renderer.reset_toc() html = self.markdown.parse(markdown) # workaround for when there is no headings try: toc = self.markdown.renderer.render_toc(level=3) except TypeError: toc = '' return toc, html
def parse_md_file(self, renderer, markdown): """ parse markdown file according to our renderer type """ dict_renderer = renderer() md = Markdown(escape=True, renderer=dict_renderer) md.parse(markdown) return md.renderer.get_python_dict()