mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
rst domain now properly implements clear_doc() and warns on duplicate object descriptions.
This commit is contained in:
parent
59739908e3
commit
40d7c5c081
@ -30,7 +30,14 @@ 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']
|
||||||
#XXX add warning for duplicate definitions
|
print objects
|
||||||
|
if name in objects:
|
||||||
|
self.env.warn(
|
||||||
|
self.env.docname,
|
||||||
|
'duplicate object description of %s, ' % name +
|
||||||
|
'other instance in ' +
|
||||||
|
self.env.doc2path(objects[name][0]),
|
||||||
|
self.lineno)
|
||||||
objects[name] = self.env.docname, self.objtype
|
objects[name] = self.env.docname, self.objtype
|
||||||
indextext = self.get_index_text(self.objtype, name)
|
indextext = self.get_index_text(self.objtype, name)
|
||||||
if indextext:
|
if indextext:
|
||||||
@ -90,6 +97,11 @@ class ReSTDomain(Domain):
|
|||||||
'objects': {}, # fullname -> docname, objtype
|
'objects': {}, # fullname -> docname, objtype
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def clear_doc(self, docname):
|
||||||
|
for name, (doc, _) in self.data['objects'].items():
|
||||||
|
if doc == docname:
|
||||||
|
del self.data['objects'][name]
|
||||||
|
|
||||||
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']
|
||||||
|
Loading…
Reference in New Issue
Block a user