MCPcopy
hub / github.com/sphinx-doc/sphinx / build_reference_node

Method build_reference_node

sphinx/domains/std/__init__.py:1002–1032  ·  view source on GitHub ↗
(
        self,
        fromdocname: str,
        builder: Builder,
        docname: str,
        labelid: str,
        sectname: str,
        rolename: str,
        *,
        node_class: type[nodes.reference] = nodes.reference,
        **options: Any,
    )

Source from the content-addressed store, hash-verified

1000 self.progoptions[program, name] = (docname, labelid)
1001
1002 def build_reference_node(
1003 self,
1004 fromdocname: str,
1005 builder: Builder,
1006 docname: str,
1007 labelid: str,
1008 sectname: str,
1009 rolename: str,
1010 *,
1011 node_class: type[nodes.reference] = nodes.reference,
1012 **options: Any,
1013 ) -> nodes.reference:
1014 newnode = node_class('', '', internal=True, **options)
1015 innernode = nodes.inline(sectname, sectname)
1016 if innernode.get('classes') is not None:
1017 innernode['classes'].append('std')
1018 innernode['classes'].append('std-' + rolename)
1019 if docname == fromdocname:
1020 newnode['refid'] = labelid
1021 else:
1022 # set more info in contnode; in case the
1023 # get_relative_uri call raises NoUri,
1024 # the builder will then have to resolve these
1025 contnode = pending_xref('')
1026 contnode['refdocname'] = docname
1027 contnode['refsectname'] = sectname
1028 newnode['refuri'] = builder.get_relative_uri(fromdocname, docname)
1029 if labelid:
1030 newnode['refuri'] += '#' + labelid
1031 newnode.append(innernode)
1032 return newnode
1033
1034 def resolve_xref(
1035 self,

Callers 2

_resolve_ref_xrefMethod · 0.95
_resolve_numref_xrefMethod · 0.95

Calls 4

pending_xrefClass · 0.90
getMethod · 0.45
appendMethod · 0.45
get_relative_uriMethod · 0.45

Tested by

no test coverage detected