summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2021-04-17 16:51:19 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2021-04-17 16:51:19 +0900
commit5f56d4146e5ca67887d19db7df1dbe6b1af863b3 (patch)
tree608f50c8006c7c5b29353cba324877182788b71f
parent8954770f677994cfb13d93ea6d08b13db5382e31 (diff)
downloadsphinx-git-5f56d4146e5ca67887d19db7df1dbe6b1af863b3.tar.gz
Fix #9103: LaTeX: imgconverter: conversion runs even if not needed
The imgconverter unexpectedly goes to convert even if the given image is supported by the target builder when the image globbing is not used. This enables format guess-ing on not globbed.
-rw-r--r--CHANGES1
-rw-r--r--sphinx/transforms/post_transforms/images.py2
-rw-r--r--tests/roots/test-ext-imgconverter/img.pdfbin0 -> 141783 bytes
-rw-r--r--tests/roots/test-ext-imgconverter/index.rst1
-rw-r--r--tests/test_ext_imgconverter.py5
5 files changed, 8 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 28e89863f..b61fdd58b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,7 @@ Deprecated
Features added
--------------
+* #9103: LaTeX: imgconverter: conversion runs even if not needed
* #9023: More CSS classes on domain descriptions, see :ref:`nodes` for details.
Bugs fixed
diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py
index f9b78837f..c9ed572b8 100644
--- a/sphinx/transforms/post_transforms/images.py
+++ b/sphinx/transforms/post_transforms/images.py
@@ -197,7 +197,7 @@ class ImageConverter(BaseImageConverter):
def match(self, node: nodes.image) -> bool:
if not self.app.builder.supported_image_types:
return False
- elif set(node['candidates']) & set(self.app.builder.supported_image_types):
+ elif set(self.guess_mimetypes(node)) & set(self.app.builder.supported_image_types):
# builder supports the image; no need to convert
return False
elif self.available is None:
diff --git a/tests/roots/test-ext-imgconverter/img.pdf b/tests/roots/test-ext-imgconverter/img.pdf
new file mode 100644
index 000000000..cacbd855d
--- /dev/null
+++ b/tests/roots/test-ext-imgconverter/img.pdf
Binary files differ
diff --git a/tests/roots/test-ext-imgconverter/index.rst b/tests/roots/test-ext-imgconverter/index.rst
index 786c92e8d..f8ef1d6e2 100644
--- a/tests/roots/test-ext-imgconverter/index.rst
+++ b/tests/roots/test-ext-imgconverter/index.rst
@@ -2,3 +2,4 @@ test-ext-imgconverter
=====================
.. image:: svgimg.svg
+.. image:: img.pdf
diff --git a/tests/test_ext_imgconverter.py b/tests/test_ext_imgconverter.py
index 5f6f236cf..b4fd46d25 100644
--- a/tests/test_ext_imgconverter.py
+++ b/tests/test_ext_imgconverter.py
@@ -19,6 +19,11 @@ def test_ext_imgconverter(app, status, warning):
app.builder.build_all()
content = (app.outdir / 'python.tex').read_text()
+
+ # supported image (not converted)
+ assert '\\sphinxincludegraphics{{img}.pdf}' in content
+
+ # non supported image (converted)
assert '\\sphinxincludegraphics{{svgimg}.png}' in content
assert not (app.outdir / 'svgimg.svg').exists()
assert (app.outdir / 'svgimg.png').exists()