@@ -219,40 +219,44 @@ def _generate_header_nav_before_dropdown(
219219 links_data = _generate_nav_info ()
220220
221221 links_html = []
222- boilerplate = """
222+ links_dropdown = []
223+ boilerplate = dedent (
224+ """
223225 <li class="{nav_item} {active}">
224226 <a class="{nav_link} nav-{ext_int}" href="{href}">
225227 {title}
226228 </a>
227229 </li>
228230 """
231+ )
229232 nav_item = "nav-item"
230233 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 ]:
232236 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 ,
242255 )
243256 )
244257
245258 # 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
256260
257261 def generate_header_nav_html (
258262 n_links_before_dropdown : int = 5 , dropdown_text : str = "More"
0 commit comments