@@ -48,3 +48,54 @@ for (i = 0; i < contents.length; i++) {
4848 }
4949 }
5050}
51+
52+ document . addEventListener ( 'DOMContentLoaded' , function ( ) {
53+ const supportedVersions = [ 'master' ] ;
54+
55+ const versionDropdown = document . createElement ( 'div' ) ;
56+ versionDropdown . className = 'version-dropdown' ;
57+
58+ // Detect current version from URL
59+ const currentVersion = supportedVersions . find ( version =>
60+ window . location . pathname . includes ( `/${ version } /` )
61+ ) || 'master' ; // Default to master if none found
62+
63+ const dropdownBtn = document . createElement ( 'button' ) ;
64+ dropdownBtn . className = 'version-btn' ;
65+ dropdownBtn . innerHTML = `${ currentVersion } <span class="version-caret">▼</span>` ;
66+
67+ const dropdownContent = document . createElement ( 'div' ) ;
68+ dropdownContent . className = 'version-dropdown-content' ;
69+
70+ supportedVersions . forEach ( version => {
71+ const link = document . createElement ( 'a' ) ;
72+
73+ // Replace current version in path with selected version
74+ const newPath = window . location . pathname . replace (
75+ new RegExp ( `/(${ supportedVersions . join ( '|' ) } )/` ) ,
76+ `/${ version } /`
77+ ) ;
78+
79+ link . href = newPath ;
80+ link . textContent = version ;
81+ dropdownContent . appendChild ( link ) ;
82+ } ) ;
83+
84+ versionDropdown . appendChild ( dropdownBtn ) ;
85+ versionDropdown . appendChild ( dropdownContent ) ;
86+
87+ const searchBox = document . querySelector ( '.wy-side-nav-search' ) ;
88+ if ( searchBox ) {
89+ searchBox . parentNode . insertBefore ( versionDropdown , searchBox . nextSibling ) ;
90+ }
91+ // Toggle dropdown
92+ dropdownBtn . addEventListener ( 'click' , function ( e ) {
93+ e . stopPropagation ( ) ;
94+ dropdownContent . classList . toggle ( 'show' ) ;
95+ } ) ;
96+
97+ // Close dropdown when clicking outside
98+ document . addEventListener ( 'click' , function ( ) {
99+ dropdownContent . classList . remove ( 'show' ) ;
100+ } ) ;
101+ } ) ;
0 commit comments