Skip to content

Commit 5733c84

Browse files
committed
Refactor flow logic after dropping adjusting the order
1 parent f1738cd commit 5733c84

1 file changed

Lines changed: 22 additions & 16 deletions

File tree

‎Doc/tools/extensions/meta_navigation.py‎

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ def _splice_flow(
7979
):
8080
target_position = position + offset
8181
if not 0 <= target_position < len(flow):
82+
context.pop(direction, None)
83+
relation_links.pop(accesskey, None)
8284
continue
8385

8486
target = flow[target_position]
@@ -119,22 +121,26 @@ def add_meta_page_relations(
119121
if pagename in _TEMPLATE_SOURCES:
120122
context['page_source_path'] = _TEMPLATE_SOURCES[pagename]
121123

122-
index_flow = ['glossary']
123-
if _has_module_index(app):
124-
index_flow.append('py-modindex')
125-
if app.builder.search:
126-
index_flow.append('search')
127-
index_flow.extend(_genindex_pages(app, context))
128-
index_flow.append('bugs')
129-
_splice_flow(app, pagename, context, index_flow)
130-
131-
if 'download' in app.config.html_additional_pages:
132-
_splice_flow(
133-
app,
134-
pagename,
135-
context,
136-
['copyright', 'download', 'about'],
137-
)
124+
flow = []
125+
docname = app.config.root_doc
126+
while docname is not None:
127+
if docname == 'glossary':
128+
if _has_module_index(app):
129+
flow.append('py-modindex')
130+
flow.extend(_genindex_pages(app, context))
131+
132+
flow.append(docname)
133+
if docname == 'glossary' and app.builder.search:
134+
flow.append('search')
135+
if (
136+
docname == 'bugs'
137+
and 'download' in app.config.html_additional_pages
138+
):
139+
flow.append('download')
140+
141+
docname = app.builder.relations[docname][2]
142+
143+
_splice_flow(app, pagename, context, flow)
138144

139145

140146
def setup(app: Sphinx) -> ExtensionMetadata:

0 commit comments

Comments
 (0)