From f025fa80595239ee1d6c62293a6a7da0d1c84fcf Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Thu, 17 Sep 2026 10:56:00 -0400 Subject: [PATCH] Ensure py-render codeblock title in properly escaped. Relates to #1637. --- tools/superfences_formaters.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/superfences_formaters.py b/tools/superfences_formaters.py index 4d99a8df..64a7fe24 100644 --- a/tools/superfences_formaters.py +++ b/tools/superfences_formaters.py @@ -11,6 +11,7 @@ import sys from io import StringIO from collections import OrderedDict +from markdown.util import code_escape def yaml_load(stream, loader=yaml.Loader): @@ -169,7 +170,8 @@ def py_render(src="", language="", class_name=None, options=None, md="", **kwarg elif target == 'stdout': result_options['title'] = 'Text Written to STDOUT' elif target is not None: - result_options['title'] = f'Value of `{target}`' + # Store title in stash to avoid it being escaped by Pygments. + result_options['title'] = md.htmlStash.store(f'Value of {code_escape(target)}') output = md.preprocessors['fenced_code_block'].highlight(result, output_lang, result_options, md, **kwargs) return f'{source}\n
{output}
'