Skip to content

Commit

Permalink
Merge pull request #8638 from tk0miya/5977_dont_link_var_field
Browse files Browse the repository at this point in the history
Close #5977: :var: field do not create a cross-reference …
  • Loading branch information
tk0miya committed Jan 5, 2021
2 parents dc24c93 + 918086b commit 5ba5602
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES
Expand Up @@ -23,6 +23,8 @@ Incompatible changes
* html theme: Move CSS tags in basic/layout.html to ``css_files`` variable
* #8508: LaTeX: uplatex becomes a default setting of latex_engine for Japanese
documents
* #5977: py domain: ``:var:``, ``:cvar:`` and ``:ivar:`` fields do not create
cross-references

Deprecated
----------
Expand Down
2 changes: 1 addition & 1 deletion sphinx/domains/python.py
Expand Up @@ -354,7 +354,7 @@ class PyObject(ObjectDescription):
'keyword', 'kwarg', 'kwparam'),
typerolename='class', typenames=('paramtype', 'type'),
can_collapse=True),
PyTypedField('variable', label=_('Variables'), rolename='obj',
PyTypedField('variable', label=_('Variables'),
names=('var', 'ivar', 'cvar'),
typerolename='class', typenames=('vartype',),
can_collapse=True),
Expand Down
24 changes: 24 additions & 0 deletions tests/test_domain_py.py
Expand Up @@ -838,6 +838,30 @@ def test_info_field_list(app):
**{"py:module": "example", "py:class": "Class"})


def test_info_field_list_var(app):
text = (".. py:class:: Class\n"
"\n"
" :var int attr: blah blah\n")
doctree = restructuredtext.parse(app, text)

assert_node(doctree, (addnodes.index,
[desc, (desc_signature,
[desc_content, nodes.field_list, nodes.field])]))
assert_node(doctree[1][1][0][0], ([nodes.field_name, "Variables"],
[nodes.field_body, nodes.paragraph]))

# :var int attr:
assert_node(doctree[1][1][0][0][1][0],
([addnodes.literal_strong, "attr"],
" (",
[pending_xref, addnodes.literal_emphasis, "int"],
")",
" -- ",
"blah blah"))
assert_node(doctree[1][1][0][0][1][0][2], pending_xref,
refdomain="py", reftype="class", reftarget="int", **{"py:class": "Class"})


@pytest.mark.sphinx(freshenv=True)
def test_module_index(app):
text = (".. py:module:: docutils\n"
Expand Down

0 comments on commit 5ba5602

Please sign in to comment.