diff options
author | Maximilian Köhl <mail@koehlma.de> | 2017-08-08 22:47:10 +0200 |
---|---|---|
committer | Maximilian Köhl <mail@koehlma.de> | 2017-08-08 22:47:10 +0200 |
commit | a2cf23b30cbd962d752df5b9a8fc46f074fab20d (patch) | |
tree | a27b2c343e1dea85c3d3f974d7d376a6aa0a5616 /js | |
parent | 43eada79901830702bd40dce857831aef8e76759 (diff) | |
download | perl-software-in-gnu-guix-a2cf23b30cbd962d752df5b9a8fc46f074fab20d.tar perl-software-in-gnu-guix-a2cf23b30cbd962d752df5b9a8fc46f074fab20d.tar.gz |
PDF export: add option to export one page per fragment
Diffstat (limited to 'js')
-rw-r--r-- | js/reveal.js | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/js/reveal.js b/js/reveal.js index d3ba03c..4508add 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -727,14 +727,39 @@ numberElement.innerHTML = formatSlideNumber( slideNumberH, '.', slideNumberV ); page.appendChild( numberElement ); } + + // Copy page and show fragments one after another + if ( isPrintingPDFFragments() ) { + + var numberOfFragments = toArray( page.querySelectorAll( '.fragment' ) ).length; + + for ( var currentFragment = 0; currentFragment < numberOfFragments; currentFragment++ ) { + var clonedPage = page.cloneNode( true ); + page.parentNode.insertBefore( clonedPage, page.nextSibling ); + + toArray( sortFragments( clonedPage.querySelectorAll( '.fragment' ))).forEach( function ( fragment, fragmentIndex ) { + if ( fragmentIndex <= currentFragment ) { + fragment.classList.add( 'visible' ); + } else { + fragment.classList.remove( 'visible' ); + } + } ); + + page = clonedPage; + } + + } + // Show all fragments + else { + toArray( page.querySelectorAll( '.fragment' ) ).forEach( function( fragment ) { + fragment.classList.add( 'visible' ); + } ); + } + } } ); - // Show all fragments - toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ' .fragment' ) ).forEach( function( fragment ) { - fragment.classList.add( 'visible' ); - } ); // Notify subscribers that the PDF layout is good to go dispatchEvent( 'pdf-ready' ); @@ -1497,6 +1522,15 @@ } + /** + * Check if this instance is being used to print a PDF with fragments. + */ + function isPrintingPDFFragments() { + + return ( /print-pdf-fragments/gi ).test( window.location.search ); + + } + /** * Hides the address bar if we're on a mobile device. */ |