Skip to content

Commit

Permalink
intersphinx, allow an inventory to be a self ref
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobandersen committed Jan 22, 2022
1 parent 0cc338f commit 0ce205c
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions sphinx/ext/intersphinx.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,10 @@ def __init__(self, orig_name: str) -> None:
def run(self) -> Tuple[List[Node], List[system_message]]:
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):
self_map = self.env.config.intersphinx_self_mapping
is_self_ref = self_map is not None and self_map == inventory

if not is_self_ref and inventory is not None and not inventory_exists(self.env, inventory):
logger.warning(__('inventory for external cross-reference not found: %s'),
inventory, location=(self.env.docname, self.lineno))
return [], []
Expand All @@ -509,10 +512,14 @@ def run(self) -> Tuple[List[Node], List[system_message]]:
return [], []

result, messages = self.invoke_role(role_name)
for node in result:
if isinstance(node, pending_xref):
node['intersphinx'] = True
node['inventory'] = inventory

if not is_self_ref:
# we do the intersphinx resolution by hijacking the nodes,
# so only do that when it's not a special self ref.
for node in result:
if isinstance(node, pending_xref):
node['intersphinx'] = True
node['inventory'] = inventory

return result, messages

Expand Down Expand Up @@ -635,6 +642,7 @@ def normalize_intersphinx_mapping(app: Sphinx, config: Config) -> None:

def setup(app: Sphinx) -> Dict[str, Any]:
app.add_config_value('intersphinx_mapping', {}, True)
app.add_config_value('intersphinx_self_mapping', None, True)
app.add_config_value('intersphinx_cache_limit', 5, False)
app.add_config_value('intersphinx_timeout', None, False)
app.add_config_value('intersphinx_disabled_reftypes', [], True)
Expand Down

0 comments on commit 0ce205c

Please sign in to comment.