quart-imp/docs/_ssg/render_engines.py

19 lines
659 B
Python
Raw Normal View History

2024-08-16 15:09:07 +01:00
import mistune
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments.lexers import get_lexer_by_name
from pygments.util import ClassNotFound
class HighlightRenderer(mistune.HTMLRenderer):
def block_code(self, code, info=None):
if info:
if info == "jinja2":
info = "jinja"
try:
lexer = get_lexer_by_name(info, stripall=True)
except ClassNotFound:
lexer = get_lexer_by_name("text", stripall=True)
return highlight(code, lexer, HtmlFormatter())
return "<pre><code>" + mistune.escape(code) + "</code></pre>"