std domain: make sure that ref and doc references have proper classes set

This commit is contained in:
Georg Brandl 2015-07-25 12:34:26 +02:00
parent 5f6030bec7
commit 6efafcdca4
2 changed files with 9 additions and 6 deletions

View File

@ -585,12 +585,14 @@ class StandardDomain(Domain):
continue continue
labels[name] = docname, labelid, sectname labels[name] = docname, labelid, sectname
def build_reference_node(self, fromdocname, builder, def build_reference_node(self, fromdocname, builder, docname, labelid,
docname, labelid, sectname, sectname, rolename, **options):
**options):
nodeclass = options.pop('nodeclass', nodes.reference) nodeclass = options.pop('nodeclass', nodes.reference)
newnode = nodeclass('', '', internal=True, **options) newnode = nodeclass('', '', internal=True, **options)
innernode = nodes.inline(sectname, sectname) innernode = nodes.inline(sectname, sectname)
if innernode.get('classes') is not None:
innernode['classes'].append('std')
innernode['classes'].append('std-' + rolename)
if docname == fromdocname: if docname == fromdocname:
newnode['refid'] = labelid newnode['refid'] = labelid
else: else:
@ -624,7 +626,7 @@ class StandardDomain(Domain):
return None return None
return self.build_reference_node(fromdocname, builder, return self.build_reference_node(fromdocname, builder,
docname, labelid, sectname) docname, labelid, sectname, 'ref')
elif typ == 'numref': elif typ == 'numref':
docname, labelid = self.data['anonlabels'].get(target, ('', '')) docname, labelid = self.data['anonlabels'].get(target, ('', ''))
if not docname: if not docname:
@ -648,7 +650,7 @@ class StandardDomain(Domain):
newtitle = title % '.'.join(map(str, fignumber)) newtitle = title % '.'.join(map(str, fignumber))
return self.build_reference_node(fromdocname, builder, return self.build_reference_node(fromdocname, builder,
docname, labelid, newtitle, docname, labelid, newtitle, 'numref',
nodeclass=addnodes.number_reference, nodeclass=addnodes.number_reference,
title=title) title=title)
elif typ == 'keyword': elif typ == 'keyword':

View File

@ -1604,7 +1604,8 @@ class BuildEnvironment:
caption = node.astext() caption = node.astext()
else: else:
caption = clean_astext(self.titles[docname]) caption = clean_astext(self.titles[docname])
innernode = nodes.emphasis(caption, caption) innernode = nodes.inline(caption, caption)
innernode['classes'].append('doc')
newnode = nodes.reference('', '', internal=True) newnode = nodes.reference('', '', internal=True)
newnode['refuri'] = builder.get_relative_uri(node['refdoc'], docname) newnode['refuri'] = builder.get_relative_uri(node['refdoc'], docname)
newnode.append(innernode) newnode.append(innernode)