diff options
| author | Georg Brandl <georg@python.org> | 2010-08-14 16:51:04 +0200 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2010-08-14 16:51:04 +0200 |
| commit | 61ca36770abba35e326c564bb004105cbe2dbe4e (patch) | |
| tree | dbc4ddf08b3e99790481774f6f50d53dd82b754a | |
| parent | 9b6043c60857fd009e6b0c4210f9d400242b3289 (diff) | |
| download | sphinx-61ca36770abba35e326c564bb004105cbe2dbe4e.tar.gz | |
#490: Fix cross-references to objects of types added by the :func:`~.Sphinx.add_object_type` API function.
| -rw-r--r-- | CHANGES | 3 | ||||
| -rw-r--r-- | sphinx/domains/std.py | 8 | ||||
| -rw-r--r-- | tests/test_build_html.py | 2 |
3 files changed, 11 insertions, 2 deletions
@@ -1,6 +1,9 @@ Release 1.0.2 (Aug 05, 2010) ============================ +* #490: Fix cross-references to objects of types added by the + :func:`~.Sphinx.add_object_type` API function. + * Allow breaking long signatures, continuing with backlash-escaped newlines. diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index 63a3bf6d..6194ace9 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -484,7 +484,13 @@ class StandardDomain(Domain): return make_refnode(builder, fromdocname, docname, labelid, contnode) else: - docname, labelid = self.data['objects'].get((typ, target), ('', '')) + objtypes = self.objtypes_for_role(typ) or [] + for objtype in objtypes: + if (objtype, target) in self.data['objects']: + docname, labelid = self.data['objects'][objtype, target] + break + else: + docname, labelid = '', '' if not docname: if typ == 'term': env.warn(node.get('refdoc', fromdocname), diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 6857d330..912a0b42 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -166,7 +166,7 @@ HTML_XPATH = { (".//a[@href='#mod.Cls'][@class='reference internal']", ''), (".//dl[@class='userdesc']", ''), (".//dt[@id='userdesc-myobj']", ''), - (".//a[@href='#userdesc-myobj']", ''), + (".//a[@href='#userdesc-myobj'][@class='reference internal']", ''), # C references (".//span[@class='pre']", 'CFunction()'), (".//a[@href='#Sphinx_DoSomething']", ''), |
