mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2026-11-01 16:33:04 -06:00
std domain: Generate node_id for cmdoptions in the right way
This commit is contained in:
1 parent
09623a97d0
commit
4d279fc5ad
1 file changed
+9
-7
@@ -214,16 +214,18 @@ class Cmdoption(ObjectDescription):
|
||||
def add_target_and_index(self, firstname: str, sig: str, signode: desc_signature) -> None:
|
||||
currprogram = self.env.ref_context.get('std:program')
|
||||
for optname in signode.get('allnames', []):
|
||||
targetname = optname.replace('/', '-')
|
||||
if not targetname.startswith('-'):
|
||||
targetname = '-arg-' + targetname
|
||||
prefixes = ['cmdoption']
|
||||
if currprogram:
|
||||
targetname = '-' + currprogram + targetname
|
||||
targetname = 'cmdoption' + targetname
|
||||
signode['names'].append(targetname)
|
||||
prefixes.append(currprogram)
|
||||
if not optname.startswith(('-', '/')):
|
||||
prefixes.append('arg')
|
||||
prefix = '-'.join(prefixes)
|
||||
node_id = make_id(self.env, self.state.document, prefix, optname)
|
||||
signode['ids'].append(node_id)
|
||||
|
||||
self.state.document.note_explicit_target(signode)
|
||||
|
||||
domain = cast(StandardDomain, self.env.get_domain('std'))
|
||||
self.state.document.note_explicit_target(signode)
|
||||
for optname in signode.get('allnames', []):
|
||||
domain.add_program_option(currprogram, optname,
|
||||
self.env.docname, signode['ids'][0])
|
||||
|
||||
Reference in new issue
Block a user