From b8f17d48c04b58c582bc11175016ee279bd0dbf7 Mon Sep 17 00:00:00 2001 From: tonyfast Date: Thu, 15 Aug 2024 19:33:48 -0700 Subject: [PATCH] highlight html --- src/midgy/tangle.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/midgy/tangle.py b/src/midgy/tangle.py index 90b8104..c9eb52f 100644 --- a/src/midgy/tangle.py +++ b/src/midgy/tangle.py @@ -17,6 +17,7 @@ import markdown_it import markdown_it.renderer +import pygments __all__ = () @@ -30,9 +31,10 @@ def renderToken(self, tokens, idx, options, env): string = super().renderToken(tokens, idx, options, env) if len(string) == 2 and string == "<>": return "" - + return string + @dataclass class Tangle: _type = None @@ -218,8 +220,17 @@ def initalize_parser_defaults(self, parser): parser.block.ruler.before("table", "front_matter", _front_matter_lexer) parser.use(footnote.footnote_plugin).use(deflist.deflist_plugin) parser.disable("footnote_tail") + parser.code_formatter = pygments.formatters.get_formatter_by_name("html", noclasses=True) + parser.options["highlight"] = self.highlight return parser + def highlight(self, source, lang, attrs): + return pygments.highlight( + source, + pygments.lexers.get_lexer_by_name(lang), + self.parser.code_formatter, + ) + def is_code_block(self, token): """is the token a code block entry""" if self.indented_code_blocks and token.type == BLOCK: