mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix referencing in rst domain.
This commit is contained in:
parent
295805f625
commit
87c0b98f0a
@ -35,14 +35,15 @@ class ReSTMarkup(ObjectDescription):
|
|||||||
self.state.document.note_explicit_target(signode)
|
self.state.document.note_explicit_target(signode)
|
||||||
|
|
||||||
objects = self.env.domaindata['rst']['objects']
|
objects = self.env.domaindata['rst']['objects']
|
||||||
if (self.objtype, name) in objects:
|
key = (self.objtype, name)
|
||||||
|
if key in objects:
|
||||||
self.env.warn(self.env.docname,
|
self.env.warn(self.env.docname,
|
||||||
'duplicate description of %s %s, ' %
|
'duplicate description of %s %s, ' %
|
||||||
(self.objtype, name) +
|
(self.objtype, name) +
|
||||||
'other instance in ' +
|
'other instance in ' +
|
||||||
self.env.doc2path(objects[name][0]),
|
self.env.doc2path(objects[key]),
|
||||||
self.lineno)
|
self.lineno)
|
||||||
objects[self.objtype, name] = self.env.docname
|
objects[key] = self.env.docname
|
||||||
indextext = self.get_index_text(self.objtype, name)
|
indextext = self.get_index_text(self.objtype, name)
|
||||||
if indextext:
|
if indextext:
|
||||||
self.indexnode['entries'].append(('single', indextext,
|
self.indexnode['entries'].append(('single', indextext,
|
||||||
@ -123,11 +124,12 @@ class ReSTDomain(Domain):
|
|||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
||||||
contnode):
|
contnode):
|
||||||
objects = self.data['objects']
|
objects = self.data['objects']
|
||||||
|
objtypes = self.objtypes_for_role(typ)
|
||||||
if not (typ, target) in objects:
|
for objtype in objtypes:
|
||||||
return None
|
if (objtype, target) in objects:
|
||||||
return make_refnode(builder, fromdocname, objects[typ, target],
|
return make_refnode(builder, fromdocname,
|
||||||
target, contnode, target)
|
objects[objtype, target],
|
||||||
|
target, contnode, target)
|
||||||
|
|
||||||
def get_objects(self):
|
def get_objects(self):
|
||||||
for (typ, name), docname in self.data['objects'].iteritems():
|
for (typ, name), docname in self.data['objects'].iteritems():
|
||||||
|
Loading…
Reference in New Issue
Block a user