summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2021-07-11 12:03:40 +0900
committerGitHub <noreply@github.com>2021-07-11 12:03:40 +0900
commitf40c2837dcd19713573bd636bc220a41db41cd61 (patch)
treee8fa8e5922912642031ec1ddc04e5898c2193bca
parent5aed23d6818e349fabd083358dfa30b547d393a2 (diff)
parent9aedeee53891bcbbba0b0adaf72a3e30f99a00f7 (diff)
downloadsphinx-git-f40c2837dcd19713573bd636bc220a41db41cd61.tar.gz
Merge pull request #9225 from doerwalter/typehint-html
Add HTML markup to method/function return typehint
-rw-r--r--sphinx/writers/html.py6
-rw-r--r--sphinx/writers/html5.py6
-rw-r--r--tests/roots/test-html_signaturereturn_icon/conf.py1
-rw-r--r--tests/roots/test-html_signaturereturn_icon/index.rst4
-rw-r--r--tests/test_build_html.py8
5 files changed, 21 insertions, 4 deletions
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index e9a31a848..429369edc 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -174,10 +174,12 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator):
pass
def visit_desc_returns(self, node: Element) -> None:
- self.body.append(' &#x2192; ')
+ self.body.append(' <span class="sig-return">')
+ self.body.append('<span class="sig-return-icon">&#x2192;</span>')
+ self.body.append(' <span class="sig-return-typehint">')
def depart_desc_returns(self, node: Element) -> None:
- pass
+ self.body.append('</span></span>')
def visit_desc_parameterlist(self, node: Element) -> None:
self.body.append('<span class="sig-paren">(</span>')
diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py
index 5b38b3be2..31d1db7ef 100644
--- a/sphinx/writers/html5.py
+++ b/sphinx/writers/html5.py
@@ -145,10 +145,12 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
pass
def visit_desc_returns(self, node: Element) -> None:
- self.body.append(' &#x2192; ')
+ self.body.append(' <span class="sig-return">')
+ self.body.append('<span class="sig-return-icon">&#x2192;</span>')
+ self.body.append(' <span class="sig-return-typehint">')
def depart_desc_returns(self, node: Element) -> None:
- pass
+ self.body.append('</span></span>')
def visit_desc_parameterlist(self, node: Element) -> None:
self.body.append('<span class="sig-paren">(</span>')
diff --git a/tests/roots/test-html_signaturereturn_icon/conf.py b/tests/roots/test-html_signaturereturn_icon/conf.py
new file mode 100644
index 000000000..a695d1804
--- /dev/null
+++ b/tests/roots/test-html_signaturereturn_icon/conf.py
@@ -0,0 +1 @@
+extensions = ['sphinx.ext.autodoc']
diff --git a/tests/roots/test-html_signaturereturn_icon/index.rst b/tests/roots/test-html_signaturereturn_icon/index.rst
new file mode 100644
index 000000000..4ff4eb62b
--- /dev/null
+++ b/tests/roots/test-html_signaturereturn_icon/index.rst
@@ -0,0 +1,4 @@
+test-html_signaturereturn_icon
+==============================
+
+.. py:function:: foo(a: bool, b: int) -> str
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
index 2e53bdc54..e74319f19 100644
--- a/tests/test_build_html.py
+++ b/tests/test_build_html.py
@@ -1635,3 +1635,11 @@ def test_html_permalink_icon(app):
assert ('<h1>The basic Sphinx documentation for testing<a class="headerlink" '
'href="#the-basic-sphinx-documentation-for-testing" '
'title="Permalink to this headline"><span>[PERMALINK]</span></a></h1>' in content)
+
+
+@pytest.mark.sphinx('html', testroot='html_signaturereturn_icon')
+def test_html_signaturereturn_icon(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text()
+
+ assert ('<span class="sig-return-icon">&#x2192;</span>' in content)