From 528870b8e652addfe9c8910ec42be1c9083f61a3 Mon Sep 17 00:00:00 2001 From: jomae Date: Wed, 5 Feb 2025 11:03:34 +0000 Subject: [PATCH] 1.6.1dev: prevent uses of unnecessary lineno styles from Pygments 2.7.0+ (closes #13866) git-svn-id: http://trac.edgewall.org/intertrac/log:/branches/1.6-stable@17877 af82e41b-90c4-0310-8c96-b1721e28e2e2 --- trac/mimeview/pygments.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/trac/mimeview/pygments.py b/trac/mimeview/pygments.py index da3775233e..290a17f9bc 100644 --- a/trac/mimeview/pygments.py +++ b/trac/mimeview/pygments.py @@ -37,6 +37,20 @@ __all__ = ['PygmentsRenderer'] +if hasattr(HtmlFormatter, 'get_background_style_defs') and \ + hasattr(HtmlFormatter, 'get_token_style_defs'): + def _get_style_defs(style, arg): + lines = [] + formatter = HtmlFormatter(style=style) + lines.extend(formatter.get_background_style_defs(arg)) + lines.extend(formatter.get_token_style_defs(arg)) + return '\n'.join(lines) +else: + def _get_style_defs(style, arg): + formatter = HtmlFormatter(style=style) + return formatter.get_style_defs(arg) + + class PygmentsRenderer(Component): """HTML renderer for syntax highlighting based on Pygments.""" @@ -186,8 +200,7 @@ def process_request(self, req): req.end_headers() return - formatter = HtmlFormatter(style=style_cls) - content = formatter.get_style_defs(['div.code pre', 'table.code td']) + content = _get_style_defs(style_cls, ['div.code pre', 'table.code td']) content = content.encode('utf-8') req.send_response(200)