From 037eee8e0575dea14df07c661ff60ecc4efd23b4 Mon Sep 17 00:00:00 2001 From: AakashGC Date: Thu, 14 Oct 2021 10:01:51 +1100 Subject: [PATCH] faulty resolve_xref --- sphinx_proof/domain.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/sphinx_proof/domain.py b/sphinx_proof/domain.py index 7762fc4..9dab1cc 100644 --- a/sphinx_proof/domain.py +++ b/sphinx_proof/domain.py @@ -109,22 +109,27 @@ def resolve_xref( and if that yields no resolution, replaced by contnode.The method can also raise sphinx.environment.NoUri to suppress the missing-reference event being emitted. """ - try: - match = env.proof_list[target] - except Exception: - path = self.env.doc2path(fromdocname)[:-3] - msg = "label '{}' not found.".format(target) - logger.warning(msg, location=path, color="red") + if node.attributes.get("refdomain", "") == self.name: + try: + match = env.proof_list[target] + except Exception: + path = self.env.doc2path(fromdocname)[:-3] + msg = "label '{}' not found.".format(target) + logger.warning(msg, location=path, color="red") + return None + + todocname = match["docname"] + title = contnode[0] + + if target in contnode[0]: + number = "" + if not env.proof_list[target]["nonumber"]: + typ = env.proof_list[target]["type"] + number = ".".join( + map(str, env.toc_fignumbers[todocname][typ][target]) + ) + title = nodes.Text(f"{match['type'].title()} {number}") + # builder, fromdocname, todocname, targetid, child, title=None + return make_refnode(builder, fromdocname, todocname, target, title) + else: return None - - todocname = match["docname"] - title = contnode[0] - - if target in contnode[0]: - number = "" - if not env.proof_list[target]["nonumber"]: - typ = env.proof_list[target]["type"] - number = ".".join(map(str, env.toc_fignumbers[todocname][typ][target])) - title = nodes.Text(f"{match['type'].title()} {number}") - # builder, fromdocname, todocname, targetid, child, title=None - return make_refnode(builder, fromdocname, todocname, target, title)