lepture/mistune

Does mistune support code/syntax highlighting? [question]

avinassh opened this issue · 2 comments

^question. If so, how can I use Pygments or some other library? Thanks!

aha, I should have read the README, oops.

xzava commented

This is the top link in google search, so ill add this for anyone else looking for it.

        import mistune
	from pygments import highlight
	from pygments.lexers import get_lexer_by_name
	from pygments.formatters import html

	class HighlightRenderer(mistune.Renderer):
	    def block_code(self, code, lang):
	        if not lang:
	            return '\n<pre><code>%s</code></pre>\n' % \
	                mistune.escape(code)
	        lexer = get_lexer_by_name(lang, stripall=True)
	        formatter = html.HtmlFormatter(lineseparator="<br>")
	        return highlight(code, lexer, formatter)

	renderer = HighlightRenderer()
	markdown = mistune.Markdown(renderer=renderer)
	output_html = markdown(content_document)
	print(output_html)

https://mistune.readthedocs.io/en/latest/