aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2018-06-11 12:35:11 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2018-06-11 12:35:11 +0200
commit3680f1ad10d1cbb4a48eb98673fa7018d1ab36e5 (patch)
treed7f3a3c09410f93b610416700119d6b7bf354a12
parenta86146180f62f38ccbdc9da68fd38ebee5da074a (diff)
downloadperl-software-in-gnu-guix-3680f1ad10d1cbb4a48eb98673fa7018d1ab36e5.tar
perl-software-in-gnu-guix-3680f1ad10d1cbb4a48eb98673fa7018d1ab36e5.tar.gz
merge #1955 with minor changes
-rw-r--r--Gruntfile.js1
-rw-r--r--README.md5
-rw-r--r--js/reveal.js27
3 files changed, 25 insertions, 8 deletions
diff --git a/Gruntfile.js b/Gruntfile.js
index fc38abb..8d8300b 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -78,6 +78,7 @@ module.exports = function(grunt) {
eqnull: true,
browser: true,
expr: true,
+ loopfunc: true,
globals: {
head: false,
module: false,
diff --git a/README.md b/README.md
index 9c7b3d8..7a570d5 100644
--- a/README.md
+++ b/README.md
@@ -947,6 +947,11 @@ Reveal.initialize({
Presentations can be exported to PDF via a special print stylesheet. This feature requires that you use [Google Chrome](http://google.com/chrome) or [Chromium](https://www.chromium.org/Home) and to be serving the presentation from a webserver.
Here's an example of an exported presentation that's been uploaded to SlideShare: http://www.slideshare.net/hakimel/revealjs-300.
+### Separate pages for fragments
+[Fragments](#fragments) are printed on separate slides by default. Meaning if you have a slide with three fragment steps, it will generate three separate slides where the fragments appear incrementally.
+
+If you prefer printing all fragments in their visible states on the same slide you can set the `pdfSeparateFragments` config option to false.
+
### Page size
Export dimensions are inferred from the configured [presentation size](#presentation-size). Slides that are too tall to fit within a single page will expand onto multiple pages. You can limit how many pages a slide may expand onto using the `pdfMaxPagesPerSlide` config option, for example `Reveal.configure({ pdfMaxPagesPerSlide: 1 })` ensures that no slide ever grows to more than one printed page.
diff --git a/js/reveal.js b/js/reveal.js
index 926b1d9..921b633 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -204,6 +204,9 @@
// to PDF, unlimited by default
pdfMaxPagesPerSlide: Number.POSITIVE_INFINITY,
+ // Prints each fragment on a separate slide
+ pdfSeparateFragments: true,
+
// Offset used to reduce the height of content within exported PDF pages.
// This exists to account for environment differences based on how you
// print to PDF. CLI printing options, like phantomjs and wkpdf, can end
@@ -789,29 +792,38 @@
}
// Copy page and show fragments one after another
- if ( isPrintingPDFFragments() ) {
+ if( config.pdfSeparateFragments ) {
var numberOfFragments = toArray( page.querySelectorAll( '.fragment' ) ).length;
- for ( var currentFragment = 0; currentFragment < numberOfFragments; currentFragment++ ) {
+ 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 ) {
+ toArray( sortFragments( clonedPage.querySelectorAll( '.fragment' ) ) ).forEach( function( fragment, fragmentIndex ) {
+
+ if( fragmentIndex < currentFragment ) {
fragment.classList.add( 'visible' );
- } else {
- fragment.classList.remove( 'visible' );
+ fragment.classList.remove( 'current-fragment' );
+ }
+ else if( fragmentIndex === currentFragment ) {
+ fragment.classList.add( 'visible', 'current-fragment' );
}
+ else {
+ fragment.classList.remove( 'visible', 'current-fragment' );
+ }
+
} );
page = clonedPage;
+
}
}
// Show all fragments
else {
- toArray( page.querySelectorAll( '.fragment' ) ).forEach( function( fragment ) {
+ toArray( page.querySelectorAll( '.fragment:not(.fade-out)' ) ).forEach( function( fragment ) {
fragment.classList.add( 'visible' );
} );
}
@@ -820,7 +832,6 @@
} );
-
// Notify subscribers that the PDF layout is good to go
dispatchEvent( 'pdf-ready' );