Closes #1227: Add html_auto_image_link config option to conf.py, to control scaled image link.

This commit is contained in:
shimizukawa
2015-02-22 22:04:20 +09:00
parent bb85c1c87f
commit 27c76fcb89
4 changed files with 31 additions and 17 deletions

View File

@@ -31,6 +31,9 @@ Features added
- 'raw'
- 'image'
* #1227: Add `html_scaled_image_link` config option to conf.py, to control
scaled image link.
Bugs fixed
----------

View File

@@ -900,6 +900,14 @@ that use Sphinx's HTMLWriter class.
.. versionadded:: 1.2
.. confval:: html_scaled_image_link
If true, images itself links to the original image if it doesn't have
'target' option or scale related options: 'scale', 'width', 'height'.
The default is ``True``.
.. versionadded:: 1.3
.. confval:: htmlhelp_basename
Output file base name for HTML help builder. Default is ``'pydoc'``.

View File

@@ -654,23 +654,25 @@ class StandaloneHTMLBuilder(Builder):
their high res version.
"""
Builder.post_process_images(self, doctree)
for node in doctree.traverse(nodes.image):
scale_keys = ('scale', 'width', 'height')
if not any((key in node) for key in scale_keys) or \
isinstance(node.parent, nodes.reference):
# docutils does unfortunately not preserve the
# ``target`` attribute on images, so we need to check
# the parent node here.
continue
uri = node['uri']
reference = nodes.reference('', '', internal=True)
if uri in self.images:
reference['refuri'] = posixpath.join(self.imgpath,
self.images[uri])
else:
reference['refuri'] = uri
node.replace_self(reference)
reference.append(node)
if self.config.html_scaled_image_link:
for node in doctree.traverse(nodes.image):
scale_keys = ('scale', 'width', 'height')
if not any((key in node) for key in scale_keys) or \
isinstance(node.parent, nodes.reference):
# docutils does unfortunately not preserve the
# ``target`` attribute on images, so we need to check
# the parent node here.
continue
uri = node['uri']
reference = nodes.reference('', '', internal=True)
if uri in self.images:
reference['refuri'] = posixpath.join(self.imgpath,
self.images[uri])
else:
reference['refuri'] = uri
node.replace_self(reference)
reference.append(node)
def load_indexer(self, docnames):
keep = set(self.env.all_docs) - set(docnames)

View File

@@ -119,6 +119,7 @@ class Config(object):
html_search_language = (None, 'html'),
html_search_options = ({}, 'html'),
html_search_scorer = ('', None),
html_scaled_image_link = (True, 'html'),
# HTML help only options
htmlhelp_basename = (lambda self: make_filename(self.project), None),