mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
intersphinx role, hax role name to preserve case
This commit is contained in:
@@ -482,14 +482,18 @@ 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 role_name.split(':')[0] == 'external':
|
if role_name.split(':')[0] == 'external':
|
||||||
return IntersphinxRole(), []
|
return IntersphinxRole(role_name), []
|
||||||
else:
|
else:
|
||||||
return super().role(role_name, language_module, lineno, reporter)
|
return super().role(role_name, language_module, lineno, reporter)
|
||||||
|
|
||||||
|
|
||||||
class IntersphinxRole(SphinxRole):
|
class IntersphinxRole(SphinxRole):
|
||||||
|
def __init__(self, orig_name: str) -> None:
|
||||||
|
self.orig_name = orig_name
|
||||||
|
|
||||||
def run(self) -> Tuple[List[Node], List[system_message]]:
|
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):
|
if inventory and not inventory_exists(self.env, inventory):
|
||||||
logger.warning(__('inventory for external cross-reference not found: %s'), inventory,
|
logger.warning(__('inventory for external cross-reference not found: %s'), inventory,
|
||||||
location=(self.env.docname, self.lineno))
|
location=(self.env.docname, self.lineno))
|
||||||
|
|||||||
@@ -565,7 +565,7 @@ def test_intersphinx_role(app, warning):
|
|||||||
|
|
||||||
# explicit inventory
|
# explicit inventory
|
||||||
assert html.format('cfunc.html#CFunc') in content
|
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
|
# explicit title
|
||||||
assert html.format('index.html#foons') in content
|
assert html.format('index.html#foons') in content
|
||||||
|
|||||||
Reference in New Issue
Block a user