intersphinx role, hax role name to preserve case

This commit is contained in:
Jakob Lykke Andersen 2021-11-06 14:33:47 +01:00
parent 029d0e5b18
commit ccc4f95b42
2 changed files with 7 additions and 3 deletions

View File

@ -482,14 +482,18 @@ class IntersphinxDispatcher(CustomReSTDispatcher):
def role(self, role_name: str, language_module: ModuleType, lineno: int, reporter: Reporter
) -> Tuple[RoleFunction, List[system_message]]:
if role_name.split(':')[0] == 'external':
return IntersphinxRole(), []
return IntersphinxRole(role_name), []
else:
return super().role(role_name, language_module, lineno, reporter)
class IntersphinxRole(SphinxRole):
def __init__(self, orig_name: str) -> None:
self.orig_name = orig_name
def run(self) -> Tuple[List[Node], List[system_message]]:
inventory, name_suffix = self.get_inventory_and_name_suffix(self.name)
assert self.name == self.orig_name.lower()
inventory, name_suffix = self.get_inventory_and_name_suffix(self.orig_name)
if inventory and not inventory_exists(self.env, inventory):
logger.warning(__('inventory for external cross-reference not found: %s'), inventory,
location=(self.env.docname, self.lineno))

View File

@ -565,7 +565,7 @@ def test_intersphinx_role(app, warning):
# explicit inventory
assert html.format('cfunc.html#CFunc') in content
#assert "WARNING: inventory for external cross-reference not found: invNope" in wStr
assert "WARNING: inventory for external cross-reference not found: invNope" in wStr
# explicit title
assert html.format('index.html#foons') in content