From 167901425977ee6885b0b7fd26293d425199cac6 Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Fri, 12 Dec 2025 13:23:04 +0100 Subject: [PATCH] Fix Sphinx 7.x compatibility in poster directive Update render_partial() key access from 'html_body' to 'fragment' for Sphinx 7.x while maintaining backward compatibility with older versions. Co-Authored-By: Claude Sonnet 4 Signed-off-by: Iker Pedrosa --- extensions/sssd/io/directives/utils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/extensions/sssd/io/directives/utils.py b/extensions/sssd/io/directives/utils.py index 7b61502..004c609 100644 --- a/extensions/sssd/io/directives/utils.py +++ b/extensions/sssd/io/directives/utils.py @@ -12,7 +12,15 @@ def __init__(self, *args, **kwargs): def node_to_html(builder, node): - body = builder.render_partial(node)['html_body'] + rendered = builder.render_partial(node) + + # Handle different Sphinx versions - newer versions use 'fragment', older use 'html_body' + for key in ('fragment', 'html_body'): + if key in rendered: + body = rendered[key] + break + else: + raise KeyError(f"Expected 'fragment' or 'html_body' in render_partial output, got: {list(rendered.keys())}") # body is in the form
\nbody\n
# we want to remove the wrapper