diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py index e4f1c29cb..ab7b75837 100644 --- a/sphinx/transforms/post_transforms/images.py +++ b/sphinx/transforms/post_transforms/images.py @@ -16,6 +16,7 @@ from docutils import nodes from sphinx.transforms import SphinxTransform from sphinx.util import logging, requests +from sphinx.util.images import guess_mimetype from sphinx.util.osutil import ensuredir if False: @@ -74,8 +75,9 @@ class ImageDownloader(BaseImageConverter): with open(path, 'wb') as f: f.write(r.content) + mimetype = guess_mimetype(path, default='*') node['candidates'].pop('?') - node['candidates']['*'] = path + node['candidates'][mimetype] = path node['uri'] = path self.app.env.images.add_file(self.env.docname, path) except Exception as exc: diff --git a/sphinx/util/images.py b/sphinx/util/images.py index 8de8254db..7fc89f8aa 100644 --- a/sphinx/util/images.py +++ b/sphinx/util/images.py @@ -52,8 +52,8 @@ def get_image_size(filename): return None -def guess_mimetype(filename): - # type: (unicode) -> unicode +def guess_mimetype(filename, default=None): + # type: (unicode, unicode) -> unicode _, ext = path.splitext(filename) if ext in mime_suffixes: return mime_suffixes[ext] @@ -63,4 +63,4 @@ def guess_mimetype(filename): if imgtype: return 'image/' + imgtype - return None + return default