mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #8446: html: consecutive spaces are displayed as single space
In HTML, consecutive spaces are considered as single space by HTML browsers. To represent them as is, we have to escape them on rendering them into HTML. This starts to escape the whole of desc_signature node.
This commit is contained in:
1
CHANGES
1
CHANGES
@@ -51,6 +51,7 @@ Bugs fixed
|
||||
based uninitalized variables
|
||||
* #8452: autodoc: autodoc_type_aliases doesn't work when autodoc_typehints is
|
||||
set to "description"
|
||||
* #8446: html: consecutive spaces are displayed as single space
|
||||
* #8419: html search: Do not load ``language_data.js`` in non-search pages
|
||||
* #8454: graphviz: The layout option for graph and digraph directives don't work
|
||||
* #8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous
|
||||
|
||||
@@ -129,8 +129,10 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator):
|
||||
def visit_desc_signature(self, node: Element) -> None:
|
||||
# the id is set automatically
|
||||
self.body.append(self.starttag(node, 'dt'))
|
||||
self.protect_literal_text += 1
|
||||
|
||||
def depart_desc_signature(self, node: Element) -> None:
|
||||
self.protect_literal_text -= 1
|
||||
if not node.get('is_multiline'):
|
||||
self.add_permalink_ref(node, _('Permalink to this definition'))
|
||||
self.body.append('</dt>\n')
|
||||
|
||||
@@ -100,8 +100,10 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
|
||||
def visit_desc_signature(self, node: Element) -> None:
|
||||
# the id is set automatically
|
||||
self.body.append(self.starttag(node, 'dt'))
|
||||
self.protect_literal_text += 1
|
||||
|
||||
def depart_desc_signature(self, node: Element) -> None:
|
||||
self.protect_literal_text -= 1
|
||||
if not node.get('is_multiline'):
|
||||
self.add_permalink_ref(node, _('Permalink to this definition'))
|
||||
self.body.append('</dt>\n')
|
||||
|
||||
@@ -177,8 +177,8 @@ def test_html4_output(app, status, warning):
|
||||
],
|
||||
'autodoc.html': [
|
||||
(".//dl[@class='py class']/dt[@id='autodoc_target.Class']", ''),
|
||||
(".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span", r'\*\*'),
|
||||
(".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span", r'kwds'),
|
||||
(".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'\*\*'),
|
||||
(".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'kwds'),
|
||||
(".//dd/p", r'Return spam\.'),
|
||||
],
|
||||
'extapi.html': [
|
||||
@@ -277,8 +277,10 @@ def test_html4_output(app, status, warning):
|
||||
'objects.html': [
|
||||
(".//dt[@id='mod.Cls.meth1']", ''),
|
||||
(".//dt[@id='errmod.Error']", ''),
|
||||
(".//dt/code", r'long\(parameter,\s* list\)'),
|
||||
(".//dt/code", 'another one'),
|
||||
(".//dt/code/span", r'long\(parameter,'),
|
||||
(".//dt/code/span", r'list\)'),
|
||||
(".//dt/code/span", 'another'),
|
||||
(".//dt/code/span", 'one'),
|
||||
(".//a[@href='#mod.Cls'][@class='reference internal']", ''),
|
||||
(".//dl[@class='std userdesc']", ''),
|
||||
(".//dt[@id='userdesc-myobj']", ''),
|
||||
|
||||
@@ -250,10 +250,10 @@ def test_missing_reference_cppdomain(tempdir, app, status, warning):
|
||||
'<span class="pre">Bar</span></code></a>' in html)
|
||||
assert ('<a class="reference external"'
|
||||
' href="https://docs.python.org/index.html#foons"'
|
||||
' title="(in foo v2.0)">foons</a>' in html)
|
||||
' title="(in foo v2.0)"><span class="pre">foons</span></a>' in html)
|
||||
assert ('<a class="reference external"'
|
||||
' href="https://docs.python.org/index.html#foons_bartype"'
|
||||
' title="(in foo v2.0)">bartype</a>' in html)
|
||||
' title="(in foo v2.0)"><span class="pre">bartype</span></a>' in html)
|
||||
|
||||
|
||||
def test_missing_reference_jsdomain(tempdir, app, status, warning):
|
||||
|
||||
Reference in New Issue
Block a user