@@ -4,26 +4,28 @@ var DOC_SORTED_VERSIONS = [];
44var DOC_LATEST_VERSION = null ;
55
66function versionSplit ( v ) {
7- var nparts = v . split ( "." , 3 ) ;
7+ var parts = v . split ( "." , 4 ) ;
88
9- if ( nparts . length != 3 ) {
9+ if ( parts . length < 3 ) {
1010 throw new Error ( "Invalid version: " + v ) ;
1111 }
1212
13- var last = nparts [ 2 ] ;
14- var ix = last . search ( / [ ^ 0 - 9 ] / ) ;
15- var suffix = "" ;
16- if ( ix >= 0 ) {
17- nparts [ 2 ] = last . substring ( 0 , ix ) ;
18- suffix = last . substring ( ix ) ;
13+ var nparts = [ ] ;
14+ for ( var i = 0 ; i < 3 ; i ++ ) {
15+ nparts . push ( parseInt ( parts [ i ] ) ) ;
1916 }
2017
21- var version = nparts [ 0 ] + "." + nparts [ 1 ] + "." + nparts [ 2 ] ;
18+ var version = parts . slice ( 0 , 3 ) . join ( "." ) ;
2219
23- for ( var i = 0 ; i < 3 ; i ++ ) {
24- nparts [ i ] = parseInt ( nparts [ i ] ) ;
25- }
20+ var suffix ;
2621
22+ if ( parts . length == 3 ) {
23+ suffix = "" ;
24+ }
25+ else {
26+ suffix = parts [ 3 ] ;
27+ }
28+
2729 return { version : version , nparts : nparts , suffix : suffix , raw : v } ;
2830}
2931
@@ -69,7 +71,7 @@ function initVersions() {
6971 }
7072
7173 for ( var key in vs ) {
72- vs [ key ] . all . sort ( ( v1 , v2 ) => { return v1 . suffix . localeCompare ( v2 . suffix ) ; } ) ;
74+ vs [ key ] . all . sort ( ( v1 , v2 ) => { return - v1 . suffix . localeCompare ( v2 . suffix ) ; } ) ;
7375 vs [ key ] . latest = vs [ key ] . all [ 0 ] ;
7476 DOC_SORTED_VERSIONS . push ( vs [ key ] . latest ) ;
7577 }
@@ -102,18 +104,24 @@ function splitLocation() {
102104 }
103105 }
104106 else {
105- return [ url , "unknown " , "" ] ;
107+ return [ url , "" , "" ] ;
106108 }
107109}
108110
109111function setVersion ( ) {
110112 var s = splitLocation ( ) ;
111113
112- window . location = s [ 0 ] + "/" + this . version + "/" + s [ 2 ] ;
114+ window . location = s [ 0 ] + "/" + DOC_VERSIONS [ this . version ] . latest . raw + "/" + s [ 2 ] ;
113115}
114116
115117function getCurrentVersion ( ) {
116- return splitLocation ( ) [ 1 ] ;
118+ v = splitLocation ( ) [ 1 ] ;
119+ if ( v == "" ) {
120+ return v ;
121+ }
122+ else {
123+ return versionSplit ( v ) . version ;
124+ }
117125}
118126
119127initVersions ( ) ;
0 commit comments