@@ -73,45 +73,17 @@ window.$docsify = {
7373 }
7474 } )
7575
76- // search icon
77- let searchIcon = document . createElement ( 'div' )
78- searchIcon . innerHTML = "<i class='gg-search'></i>"
79- searchIcon . classList = "search-icon"
80- searchIcon . addEventListener ( 'click' , function ( ) {
81- document . querySelector ( 'aside' ) . classList . toggle ( 'open' )
82- document . querySelector ( 'nav > ul' ) . classList . remove ( 'open' )
83- document . querySelector ( '.menu-icon' ) . classList . remove ( "open" )
84- } )
85- document . querySelector ( 'nav' ) . appendChild ( searchIcon )
86-
87- // menu icon
88- let menuIcon = document . createElement ( 'div' )
89- menuIcon . innerHTML = "<i class='gg-menu'></i><i class='gg-close'></i>"
90- menuIcon . classList = "menu-icon"
91- menuIcon . addEventListener ( 'click' , function ( ) {
92- document . querySelector ( 'nav > ul' ) . classList . toggle ( 'open' )
93- this . classList . toggle ( "open" )
94- } )
95- document . querySelector ( 'nav' ) . appendChild ( menuIcon )
96-
97- // Back button url correct
98- let backBtn = document . querySelector ( "#back" )
99- if ( backBtn ) {
100- backBtn . href = baseUrl
101- const backBtnClone = backBtn . cloneNode ( true )
102- const li = document . createElement ( 'li' )
103- li . appendChild ( backBtnClone )
104- const nav = document . querySelector ( 'nav > ul' )
105- nav . insertBefore ( li , nav . children [ 0 ] )
106- }
107- } ) ;
76+ // We need to do it each time cause the `nav` element is dyanmically replaced by the content of
77+ // `_navbar.md` each time we navigates to a new page
78+ initCustomNavMenu ( )
79+ } )
10880
10981 hook . ready ( function ( ) {
11082 // Redirect properly to home page, otherwise we stay on "#/" hash
11183 // and it cause some translations issues
112- if ( location . hash == "#/" ) location . hash = `/docs/users/${ locale } /`
84+ if ( location . hash == "#/" ) location . hash = `/docs/users/${ locale } /README `
11385
114- // backdrop
86+ // adds backdrop for mobile search menu
11587 let backdrop = document . createElement ( 'div' )
11688 backdrop . classList = "backdrop"
11789 backdrop . addEventListener ( 'click' , function ( ) {
@@ -125,4 +97,49 @@ window.$docsify = {
12597
12698function insertAfter ( referenceNode , newNode ) {
12799 referenceNode . parentNode . insertBefore ( newNode , referenceNode . nextSibling ) ;
128- }
100+ }
101+
102+ // Handle browser back navigation, not handled by hook.doneEach
103+ window . addEventListener ( 'popstate' , function ( ) {
104+ setTimeout ( function ( ) {
105+ initCustomNavMenu ( ) ;
106+ } , 100 )
107+ } )
108+
109+ // Improve navbar menu by adding mobile icons and auto fixing the "back to my wiki" url
110+ function initCustomNavMenu ( ) {
111+ // Do not run this method twice
112+ if ( document . querySelector ( "nav .search-icon" ) ) return
113+
114+ // search icon
115+ let searchIcon = document . createElement ( 'div' )
116+ searchIcon . innerHTML = "<i class='gg-search'></i>"
117+ searchIcon . classList = "search-icon"
118+ searchIcon . addEventListener ( 'click' , function ( ) {
119+ document . querySelector ( 'aside' ) . classList . toggle ( 'open' )
120+ document . querySelector ( 'nav > ul' ) . classList . remove ( 'open' )
121+ document . querySelector ( '.menu-icon' ) . classList . remove ( "open" )
122+ } )
123+ document . querySelector ( 'nav' ) . appendChild ( searchIcon )
124+
125+ // menu icon
126+ let menuIcon = document . createElement ( 'div' )
127+ menuIcon . innerHTML = "<i class='gg-menu'></i><i class='gg-close'></i>"
128+ menuIcon . classList = "menu-icon"
129+ menuIcon . addEventListener ( 'click' , function ( ) {
130+ document . querySelector ( 'nav > ul' ) . classList . toggle ( 'open' )
131+ this . classList . toggle ( "open" )
132+ } )
133+ document . querySelector ( 'nav' ) . appendChild ( menuIcon )
134+
135+ // Back button url correct
136+ let backBtn = document . querySelector ( "#back" )
137+ if ( backBtn ) {
138+ backBtn . href = baseUrl
139+ const backBtnClone = backBtn . cloneNode ( true )
140+ const li = document . createElement ( 'li' )
141+ li . appendChild ( backBtnClone )
142+ const nav = document . querySelector ( 'nav > ul' )
143+ nav . insertBefore ( li , nav . children [ 0 ] )
144+ }
145+
0 commit comments