summaryrefslogtreecommitdiff
path: root/sphinx/ext/intersphinx.py
diff options
context:
space:
mode:
authorJakob Lykke Andersen <Jakob@caput.dk>2021-11-06 14:33:47 +0100
committerJakob Lykke Andersen <Jakob@caput.dk>2022-01-16 09:48:06 +0100
commitccc4f95b42c4caba74cf01f9aa898a96a3372b9e (patch)
treec8cd7686bcba47d117e62288e9f923425896c14d /sphinx/ext/intersphinx.py
parent029d0e5b1837de4e33ee92cbb88d650e9afb8a3d (diff)
downloadsphinx-git-ccc4f95b42c4caba74cf01f9aa898a96a3372b9e.tar.gz
intersphinx role, hax role name to preserve case
Diffstat (limited to 'sphinx/ext/intersphinx.py')
-rw-r--r--sphinx/ext/intersphinx.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py
index 2c640925b..90ad8e758 100644
--- a/sphinx/ext/intersphinx.py
+++ b/sphinx/ext/intersphinx.py
@@ -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))