diff --git a/aprendizations/renderer_markdown.py b/aprendizations/renderer_markdown.py new file mode 100644 index 0000000..c504126 --- /dev/null +++ b/aprendizations/renderer_markdown.py @@ -0,0 +1,27 @@ + +# third party libraries +import mistune +from mistune.plugins.math import math + +from pygments import highlight +from pygments.lexers import get_lexer_by_name +# from pygments.formatters import HtmlFormatter +from pygments.formatters import html + +class HighlightRenderer(mistune.HTMLRenderer): + def block_code(self, code, info=None): + if info: + lexer = get_lexer_by_name(info, stripall=True) + formatter = html.HtmlFormatter() + return highlight(code, lexer, formatter) + return '
' + mistune.escape(code) + '
' + + def image(self, text, url, title=None): + text = mistune.escape(text, quote=True) + title = mistune.escape(title or '', quote=True) + return (f'{text}') + +md_to_html = mistune.create_markdown(renderer=HighlightRenderer(), plugins=[math]) +# FIXME error "argument HighlightRenderer cannot be assigned to parameter +# renderer of type str. HighlightRenderer is incimpatible with str" -- libgit2 0.21.2