Skip to content

Commit f40c283

Browse files
authored
Merge pull request #9225 from doerwalter/typehint-html
Add HTML markup to method/function return typehint
2 parents 5aed23d + 9aedeee commit f40c283

File tree

5 files changed

+21
-4
lines changed

5 files changed

+21
-4
lines changed

sphinx/writers/html.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,12 @@ def depart_desc_type(self, node: Element) -> None:
174174
pass
175175

176176
def visit_desc_returns(self, node: Element) -> None:
177-
self.body.append(' → ')
177+
self.body.append(' <span class="sig-return">')
178+
self.body.append('<span class="sig-return-icon">&#x2192;</span>')
179+
self.body.append(' <span class="sig-return-typehint">')
178180

179181
def depart_desc_returns(self, node: Element) -> None:
180-
pass
182+
self.body.append('</span></span>')
181183

182184
def visit_desc_parameterlist(self, node: Element) -> None:
183185
self.body.append('<span class="sig-paren">(</span>')

sphinx/writers/html5.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,12 @@ def depart_desc_type(self, node: Element) -> None:
145145
pass
146146

147147
def visit_desc_returns(self, node: Element) -> None:
148-
self.body.append(' &#x2192; ')
148+
self.body.append(' <span class="sig-return">')
149+
self.body.append('<span class="sig-return-icon">&#x2192;</span>')
150+
self.body.append(' <span class="sig-return-typehint">')
149151

150152
def depart_desc_returns(self, node: Element) -> None:
151-
pass
153+
self.body.append('</span></span>')
152154

153155
def visit_desc_parameterlist(self, node: Element) -> None:
154156
self.body.append('<span class="sig-paren">(</span>')
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
extensions = ['sphinx.ext.autodoc']
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
test-html_signaturereturn_icon
2+
==============================
3+
4+
.. py:function:: foo(a: bool, b: int) -> str

tests/test_build_html.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,3 +1635,11 @@ def test_html_permalink_icon(app):
16351635
assert ('<h1>The basic Sphinx documentation for testing<a class="headerlink" '
16361636
'href="#the-basic-sphinx-documentation-for-testing" '
16371637
'title="Permalink to this headline"><span>[PERMALINK]</span></a></h1>' in content)
1638+
1639+
1640+
@pytest.mark.sphinx('html', testroot='html_signaturereturn_icon')
1641+
def test_html_signaturereturn_icon(app):
1642+
app.build()
1643+
content = (app.outdir / 'index.html').read_text()
1644+
1645+
assert ('<span class="sig-return-icon">&#x2192;</span>' in content)

0 commit comments

Comments
 (0)