intersphinx role, simplify role_name check

Co-authored-by: Takeshi KOMIYA <i.tkomiya@gmail.com>
This commit is contained in:
Jakob Lykke Andersen 2022-01-15 21:52:25 +01:00 committed by Jakob Lykke Andersen
parent 6ee0ecbe40
commit 5d595ec0c4

View File

@ -479,7 +479,7 @@ class IntersphinxDispatcher(CustomReSTDispatcher):
def role(self, role_name: str, language_module: ModuleType, lineno: int, reporter: Reporter def role(self, role_name: str, language_module: ModuleType, lineno: int, reporter: Reporter
) -> Tuple[RoleFunction, List[system_message]]: ) -> 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), [] return IntersphinxRole(role_name), []
else: else:
return super().role(role_name, language_module, lineno, reporter) return super().role(role_name, language_module, lineno, reporter)
@ -525,7 +525,8 @@ class IntersphinxRole(SphinxRole):
# or we look in all inventories, i.e., # or we look in all inventories, i.e.,
# :external:role: or # :external:role: or
# :external:domain:role: # :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]]: def get_role_name(self, name: str) -> Optional[Tuple[str, str]]:
names = name.split(':') names = name.split(':')