Merge pull request #9225 from doerwalter/typehint-html

Add HTML markup to method/function return typehint
This commit is contained in:
Takeshi KOMIYA 2021-07-11 12:03:40 +09:00 committed by GitHub
commit f40c2837dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 4 deletions

View File

@ -174,10 +174,12 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator):
pass
def visit_desc_returns(self, node: Element) -> None:
self.body.append(' → ')
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>')

View File

@ -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>')

View File

@ -0,0 +1 @@
extensions = ['sphinx.ext.autodoc']

View File

@ -0,0 +1,4 @@
test-html_signaturereturn_icon
==============================
.. py:function:: foo(a: bool, b: int) -> str

View File

@ -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)