@@ -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
140146def setup (app : Sphinx ) -> ExtensionMetadata :
0 commit comments