aboutsummaryrefslogtreecommitdiff
path: root/js/reveal.js
diff options
context:
space:
mode:
authorMaximilian Köhl <mail@koehlma.de>2017-08-08 22:47:10 +0200
committerMaximilian Köhl <mail@koehlma.de>2017-08-08 22:47:10 +0200
commita2cf23b30cbd962d752df5b9a8fc46f074fab20d (patch)
treea27b2c343e1dea85c3d3f974d7d376a6aa0a5616 /js/reveal.js
parent43eada79901830702bd40dce857831aef8e76759 (diff)
downloadfreenode-live-2017-presentation-a2cf23b30cbd962d752df5b9a8fc46f074fab20d.tar
freenode-live-2017-presentation-a2cf23b30cbd962d752df5b9a8fc46f074fab20d.tar.gz
PDF export: add option to export one page per fragment
Diffstat (limited to 'js/reveal.js')
-rw-r--r--js/reveal.js42
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.
*/