mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Closes #1285: Avoid name clashes between C domain objects and section titles.
This commit is contained in:
parent
5721370438
commit
de92e3b026
2
CHANGES
2
CHANGES
@ -97,6 +97,8 @@ Bugs fixed
|
|||||||
Also make the redirect code apparent and tweak the output a bit to be
|
Also make the redirect code apparent and tweak the output a bit to be
|
||||||
more obvious.
|
more obvious.
|
||||||
|
|
||||||
|
* #1285: Avoid name clashes between C domain objects and section titles.
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -156,10 +156,12 @@ class CObject(ObjectDescription):
|
|||||||
return ''
|
return ''
|
||||||
|
|
||||||
def add_target_and_index(self, name, sig, signode):
|
def add_target_and_index(self, name, sig, signode):
|
||||||
# note target
|
# for C API items we add a prefix since names are usually not qualified
|
||||||
if name not in self.state.document.ids:
|
# by a module name and so easily clash with e.g. section titles
|
||||||
signode['names'].append(name)
|
targetname = 'c.' + name
|
||||||
signode['ids'].append(name)
|
if targetname not in self.state.document.ids:
|
||||||
|
signode['names'].append(targetname)
|
||||||
|
signode['ids'].append(targetname)
|
||||||
signode['first'] = (not self.names)
|
signode['first'] = (not self.names)
|
||||||
self.state.document.note_explicit_target(signode)
|
self.state.document.note_explicit_target(signode)
|
||||||
inv = self.env.domaindata['c']['objects']
|
inv = self.env.domaindata['c']['objects']
|
||||||
@ -172,7 +174,8 @@ class CObject(ObjectDescription):
|
|||||||
|
|
||||||
indextext = self.get_index_text(name)
|
indextext = self.get_index_text(name)
|
||||||
if indextext:
|
if indextext:
|
||||||
self.indexnode['entries'].append(('single', indextext, name, ''))
|
self.indexnode['entries'].append(('single', indextext,
|
||||||
|
targetname, ''))
|
||||||
|
|
||||||
def before_content(self):
|
def before_content(self):
|
||||||
self.typename_set = False
|
self.typename_set = False
|
||||||
@ -242,9 +245,9 @@ class CDomain(Domain):
|
|||||||
if target not in self.data['objects']:
|
if target not in self.data['objects']:
|
||||||
return None
|
return None
|
||||||
obj = self.data['objects'][target]
|
obj = self.data['objects'][target]
|
||||||
return make_refnode(builder, fromdocname, obj[0], target,
|
return make_refnode(builder, fromdocname, obj[0], 'c.' + target,
|
||||||
contnode, target)
|
contnode, target)
|
||||||
|
|
||||||
def get_objects(self):
|
def get_objects(self):
|
||||||
for refname, (docname, type) in self.data['objects'].iteritems():
|
for refname, (docname, type) in self.data['objects'].iteritems():
|
||||||
yield (refname, refname, type, docname, refname, 1)
|
yield (refname, refname, type, docname, 'c.' + refname, 1)
|
||||||
|
@ -186,13 +186,13 @@ HTML_XPATH = {
|
|||||||
(".//a[@href='#userdesc-myobj'][@class='reference internal']", ''),
|
(".//a[@href='#userdesc-myobj'][@class='reference internal']", ''),
|
||||||
# C references
|
# C references
|
||||||
(".//span[@class='pre']", 'CFunction()'),
|
(".//span[@class='pre']", 'CFunction()'),
|
||||||
(".//a[@href='#Sphinx_DoSomething']", ''),
|
(".//a[@href='#c.Sphinx_DoSomething']", ''),
|
||||||
(".//a[@href='#SphinxStruct.member']", ''),
|
(".//a[@href='#c.SphinxStruct.member']", ''),
|
||||||
(".//a[@href='#SPHINX_USE_PYTHON']", ''),
|
(".//a[@href='#c.SPHINX_USE_PYTHON']", ''),
|
||||||
(".//a[@href='#SphinxType']", ''),
|
(".//a[@href='#c.SphinxType']", ''),
|
||||||
(".//a[@href='#sphinx_global']", ''),
|
(".//a[@href='#c.sphinx_global']", ''),
|
||||||
# reference from old C markup extension
|
# reference from old C markup extension
|
||||||
(".//a[@href='#Sphinx_Func']", ''),
|
(".//a[@href='#c.Sphinx_Func']", ''),
|
||||||
# test global TOC created by toctree()
|
# test global TOC created by toctree()
|
||||||
(".//ul[@class='current']/li[@class='toctree-l1 current']/a[@href='']",
|
(".//ul[@class='current']/li[@class='toctree-l1 current']/a[@href='']",
|
||||||
'Testing object descriptions'),
|
'Testing object descriptions'),
|
||||||
|
Loading…
Reference in New Issue
Block a user