mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Closes #1227: Add html_auto_image_link config option to conf.py, to control scaled image link.
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -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
|
||||
----------
|
||||
|
||||
|
||||
@@ -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'``.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user