@@ -97,7 +97,9 @@ function GotoPLTRoot(ver, root_relative, here_to_root_relative) {
9797 var famroot = false ;
9898 if ( root_relative == "index.html" ) {
9999 famroot = ( GetPageArg ( "fam" , false ) ? GetPageArg ( "famroot" , false ) : false )
100- root_relative = famroot + "/index.html" ;
100+ if ( famroot ) {
101+ root_relative = famroot + "/index.html" ;
102+ }
101103 }
102104
103105 var u = GetRootPath ( ver ) ;
@@ -217,3 +219,40 @@ AddOnLoad(function(){
217219 }
218220 }
219221} ) ;
222+
223+ AddOnLoad ( function ( ) {
224+ var es = document . getElementsByClassName ( "navfamily" ) ;
225+ for ( var i = 0 ; i < es . length ; i ++ ) {
226+ var e = es [ i ] ;
227+ if ( e . dataset . fam != undefined ) {
228+ var fams = e . dataset . fam . split ( / , / ) ;
229+ var fam = GetPageArg ( "fam" , false ) ;
230+ if ( ! fam ) fam = "Racket" ;
231+ var link = document . createElement ( 'a' ) ;
232+ var root = GetRootPath ( e . dataset . version )
233+ var family_url ;
234+ if ( root == null ) {
235+ family_url = new URL ( e . dataset . famPath + "family/index.html" , window . location . href ) ;
236+ } else {
237+ family_url = new URL ( root + "family/index.html" , window . location . href ) ;
238+ }
239+ family_url . searchParams . append ( "qfrom" , window . location . href )
240+ if ( fams . indexOf ( fam ) == - 1 ) {
241+ var nav_as = document . createElement ( 'div' ) ;
242+ link . textContent = "navigating as " + fam ;
243+ link . href = family_url
244+ nav_as . appendChild ( link )
245+ e . appendChild ( nav_as )
246+ } else {
247+ var link = document . createElement ( 'a' ) ;
248+ var span = e . children [ 0 ]
249+ link . textContent = span . textContent ;
250+ link . href = family_url
251+ span . textContent = '' ; // Clear span
252+ e . removeChild ( span ) ;
253+ link . appendChild ( span ) ;
254+ e . appendChild ( link ) ;
255+ }
256+ }
257+ }
258+ } ) ;
0 commit comments