File tree Expand file tree Collapse file tree 2 files changed +16
-4
lines changed
theme/pydata_sphinx_theme/components Expand file tree Collapse file tree 2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -490,8 +490,20 @@ function initRTDObserver() {
490
490
return ;
491
491
}
492
492
if ( mutation . addedNodes [ 0 ] . data . search ( "Inserted RTD Footer" ) != - 1 ) {
493
- mutation . addedNodes . forEach ( ( node ) => {
494
- document . getElementById ( "rtd-footer-container" ) . append ( node ) ;
493
+ let flyout = mutation . addedNodes [ 0 ] . cloneNode ( true ) ;
494
+ // copy the flyout menu to whichever of the 2 target nodes didn't already get
495
+ // written to by the RTD injection script.
496
+ document . querySelectorAll ( '[data-rtd-target="rtd"]' ) . forEach ( ( node ) => {
497
+ if ( ! node . hasChildNodes ( ) ) {
498
+ node . appendChild ( flyout ) ;
499
+ flyout . onclick = toggleFlyout ;
500
+ // replicate the onclick function RTD uses: it can't be cloned by cloneNode()
501
+ flyout
502
+ . querySelector ( ".rst-current-version" )
503
+ . addEventListener ( "click" , function ( e ) {
504
+ e . currentTarget . classList . toggleClass ( "shift-up" ) ;
505
+ } ) ;
506
+ }
495
507
} ) ;
496
508
}
497
509
} ) ;
@@ -531,4 +543,4 @@ documentReady(addModeListener);
531
543
documentReady ( scrollToActive ) ;
532
544
documentReady ( addTOCInteractivity ) ;
533
545
documentReady ( setupSearchButtons ) ;
534
- // documentReady(initRTDObserver);
546
+ documentReady ( initRTDObserver ) ;
Original file line number Diff line number Diff line change 2
2
#}
3
3
{% if theme_switcher.get('use_rtd') is defined and theme_switcher.get('use_rtd') %}
4
4
< script >
5
- document . write ( `<div id="readthedocs-embed-flyout"></div>` ) ;
5
+ document . write ( `<div id="readthedocs-embed-flyout" data-rtd-target="rtd" ></div>` ) ;
6
6
</ script >
7
7
{% else %}
8
8
< script >
You can’t perform that action at this time.
0 commit comments