예제 #1
0
    def mkref(self, builder: Builder, term: Term, match: GlossaryListing,
              textnode):
        """Make a referenc node"""
        refuri = None
        if match:
            refuri = builder.get_relative_uri(match.doc, match.identifier)

        refnode = nodes.reference("",
                                  "",
                                  internal=True,
                                  reftitle="",
                                  refuri=refuri,
                                  refid=f"termref-{term}")
        if not match:
            refnode['classes'].append("term-missing")

        refnode.append(textnode)
        return refnode
예제 #2
0
    def resolve_xref(
        self, env: BuildEnvironment, fromdocname: str, builder: Builder,
        type: str, target: str, node: nodes.pending_xref, contnode: Element
    ) -> Optional[Element]:
        reftarget = node.attributes['reftarget']
        td_package_ref = node.attributes['reftype']

        tdproto_target = TDPROTO_TARGETS.get((td_package_ref, reftarget))
        if tdproto_target is None:
            return None

        refuri = (
            builder.get_relative_uri(fromdocname, DATA_INDEX_DOC_NAME)
            + f"#{td_package_ref}-{reftarget}"
        )

        return nodes.reference(
            text=reftarget,
            refuri=refuri,
            internal=False)