From 5d595ec0c4294f45f3138c4c581b84c39cae5e29 Mon Sep 17 00:00:00 2001 From: Jakob Lykke Andersen Date: Sat, 15 Jan 2022 21:52:25 +0100 Subject: [PATCH] intersphinx role, simplify role_name check Co-authored-by: Takeshi KOMIYA --- sphinx/ext/intersphinx.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py index f19f5fa156..2f8ab2588e 100644 --- a/sphinx/ext/intersphinx.py +++ b/sphinx/ext/intersphinx.py @@ -479,7 +479,7 @@ class IntersphinxDispatcher(CustomReSTDispatcher): def role(self, role_name: str, language_module: ModuleType, lineno: int, reporter: Reporter ) -> Tuple[RoleFunction, List[system_message]]: - if len(role_name) > 9 and role_name.startswith('external') and role_name[8] in ':+': + if len(role_name) > 9 and role_name.startswith(('external:', 'external+')): return IntersphinxRole(role_name), [] else: return super().role(role_name, language_module, lineno, reporter) @@ -525,7 +525,8 @@ def get_inventory_and_name_suffix(self, name: str) -> Tuple[Optional[str], str]: # or we look in all inventories, i.e., # :external:role: or # :external:domain:role: - return IntersphinxRole._re_inv_ref.fullmatch(name, 8).group(2, 3) + inv, suffix = IntersphinxRole._re_inv_ref.fullmatch(name, 8).group(2, 3) + return inv, suffix def get_role_name(self, name: str) -> Optional[Tuple[str, str]]: names = name.split(':')