From 11a03ff68482c5438698af56da93e09a32ccbb6e Mon Sep 17 00:00:00 2001 From: Alexander Koeppe Date: Fri, 30 Aug 2024 10:33:11 +0200 Subject: [PATCH 1/2] feat: adapt image refuri if image uri has been adapten by i18n --- sphinx/environment/collectors/asset.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sphinx/environment/collectors/asset.py b/sphinx/environment/collectors/asset.py index 368e4773290..a83ad769a05 100644 --- a/sphinx/environment/collectors/asset.py +++ b/sphinx/environment/collectors/asset.py @@ -81,6 +81,17 @@ def process_doc(self, app: Sphinx, doctree: nodes.document) -> None: if node['uri'] != original_uri: node['original_uri'] = original_uri + # adapt refuri in figures if exists + original_refuri = node.parent.attributes.get("refuri") + if original_refuri: + new_file_name = os.path.basename(imguri) + new_refuri = os.path.join( + os.path.dirname(original_refuri), new_file_name + ) + if new_refuri != original_refuri: + node.parent.attributes["refuri"] = new_refuri + node["original_refuri"] = original_refuri + # map image paths to unique image names (so that they can be put # into a single directory) for imgpath in candidates.values(): From 8abb461a1adb968fb997138237d8244e4665771c Mon Sep 17 00:00:00 2001 From: Alexander Koeppe Date: Fri, 30 Aug 2024 12:11:39 +0200 Subject: [PATCH 2/2] fix: do not substitute if new refuri is not a file --- sphinx/environment/collectors/asset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sphinx/environment/collectors/asset.py b/sphinx/environment/collectors/asset.py index a83ad769a05..f63291fea2b 100644 --- a/sphinx/environment/collectors/asset.py +++ b/sphinx/environment/collectors/asset.py @@ -88,7 +88,7 @@ def process_doc(self, app: Sphinx, doctree: nodes.document) -> None: new_refuri = os.path.join( os.path.dirname(original_refuri), new_file_name ) - if new_refuri != original_refuri: + if new_refuri != original_refuri and os.path.isfile(new_refuri): node.parent.attributes["refuri"] = new_refuri node["original_refuri"] = original_refuri