@@ -219,40 +219,44 @@ def _generate_header_nav_before_dropdown(
219
219
links_data = _generate_nav_info ()
220
220
221
221
links_html = []
222
- boilerplate = """
222
+ links_dropdown = []
223
+ boilerplate = dedent (
224
+ """
223
225
<li class="{nav_item} {active}">
224
226
<a class="{nav_link} nav-{ext_int}" href="{href}">
225
227
{title}
226
228
</a>
227
229
</li>
228
230
"""
231
+ )
229
232
nav_item = "nav-item"
230
233
nav_link = "nav-link"
231
- for link in links_data :
234
+ dropdown_item = "dropdown-item"
235
+ for link in links_data [:n_links_before_dropdown ]:
232
236
links_html .append (
233
- dedent (
234
- boilerplate .format (
235
- active = " current active" if link .is_current else "" ,
236
- nav_link = nav_link ,
237
- nav_item = nav_item ,
238
- ext_int = "external" if link .is_external else "internal" ,
239
- href = link .href ,
240
- title = link .title ,
241
- )
237
+ boilerplate .format (
238
+ active = "current active" if link .is_current else "" ,
239
+ nav_link = nav_link ,
240
+ nav_item = nav_item ,
241
+ ext_int = "external" if link .is_external else "internal" ,
242
+ href = link .href ,
243
+ title = link .title ,
244
+ )
245
+ )
246
+ for link in links_data [n_links_before_dropdown :]:
247
+ links_dropdown .append (
248
+ boilerplate .format (
249
+ active = "current active" if link .is_current else "" ,
250
+ nav_link = nav_link + " " + dropdown_item ,
251
+ nav_item = "" ,
252
+ ext_int = "external" if link .is_external else "internal" ,
253
+ href = link .href ,
254
+ title = link .title ,
242
255
)
243
256
)
244
257
245
258
# The first links will always be visible
246
- links_solo = links_html [:n_links_before_dropdown ]
247
- out = "\n " .join (links_solo )
248
-
249
- # Wrap the final few header items in a "more" dropdown
250
- links_dropdown = [
251
- html .replace (nav_item , "" ).replace (nav_link , "nav-link dropdown-item" )
252
- for html in links_html [n_links_before_dropdown :]
253
- ]
254
-
255
- return out , links_dropdown
259
+ return "\n " .join (links_html ), links_dropdown
256
260
257
261
def generate_header_nav_html (
258
262
n_links_before_dropdown : int = 5 , dropdown_text : str = "More"
0 commit comments