Skip to content

Commit a2cf23b

Browse files
committed
PDF export: add option to export one page per fragment
1 parent 43eada7 commit a2cf23b

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

js/reveal.js

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -727,14 +727,39 @@
727727
numberElement.innerHTML = formatSlideNumber( slideNumberH, '.', slideNumberV );
728728
page.appendChild( numberElement );
729729
}
730+
731+
// Copy page and show fragments one after another
732+
if ( isPrintingPDFFragments() ) {
733+
734+
var numberOfFragments = toArray( page.querySelectorAll( '.fragment' ) ).length;
735+
736+
for ( var currentFragment = 0; currentFragment < numberOfFragments; currentFragment++ ) {
737+
var clonedPage = page.cloneNode( true );
738+
page.parentNode.insertBefore( clonedPage, page.nextSibling );
739+
740+
toArray( sortFragments( clonedPage.querySelectorAll( '.fragment' ))).forEach( function ( fragment, fragmentIndex ) {
741+
if ( fragmentIndex <= currentFragment ) {
742+
fragment.classList.add( 'visible' );
743+
} else {
744+
fragment.classList.remove( 'visible' );
745+
}
746+
} );
747+
748+
page = clonedPage;
749+
}
750+
751+
}
752+
// Show all fragments
753+
else {
754+
toArray( page.querySelectorAll( '.fragment' ) ).forEach( function( fragment ) {
755+
fragment.classList.add( 'visible' );
756+
} );
757+
}
758+
730759
}
731760

732761
} );
733762

734-
// Show all fragments
735-
toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ' .fragment' ) ).forEach( function( fragment ) {
736-
fragment.classList.add( 'visible' );
737-
} );
738763

739764
// Notify subscribers that the PDF layout is good to go
740765
dispatchEvent( 'pdf-ready' );
@@ -1497,6 +1522,15 @@
14971522

14981523
}
14991524

1525+
/**
1526+
* Check if this instance is being used to print a PDF with fragments.
1527+
*/
1528+
function isPrintingPDFFragments() {
1529+
1530+
return ( /print-pdf-fragments/gi ).test( window.location.search );
1531+
1532+
}
1533+
15001534
/**
15011535
* Hides the address bar if we're on a mobile device.
15021536
*/

0 commit comments

Comments
 (0)