merge #1955 with minor changes
This commit is contained in:
		| @@ -78,6 +78,7 @@ module.exports = function(grunt) { | |||||||
| 				eqnull: true, | 				eqnull: true, | ||||||
| 				browser: true, | 				browser: true, | ||||||
| 				expr: true, | 				expr: true, | ||||||
|  | 				loopfunc: true, | ||||||
| 				globals: { | 				globals: { | ||||||
| 					head: false, | 					head: false, | ||||||
| 					module: false, | 					module: false, | ||||||
|   | |||||||
| @@ -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. | 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. | 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 | ### 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. | 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. | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -204,6 +204,9 @@ | |||||||
| 			// to PDF, unlimited by default | 			// to PDF, unlimited by default | ||||||
| 			pdfMaxPagesPerSlide: Number.POSITIVE_INFINITY, | 			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. | 			// Offset used to reduce the height of content within exported PDF pages. | ||||||
| 			// This exists to account for environment differences based on how you | 			// This exists to account for environment differences based on how you | ||||||
| 			// print to PDF. CLI printing options, like phantomjs and wkpdf, can end | 			// print to PDF. CLI printing options, like phantomjs and wkpdf, can end | ||||||
| @@ -789,29 +792,38 @@ | |||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				// Copy page and show fragments one after another | 				// Copy page and show fragments one after another | ||||||
| 				if ( isPrintingPDFFragments() ) { | 				if( config.pdfSeparateFragments ) { | ||||||
|  |  | ||||||
| 					var numberOfFragments = toArray( page.querySelectorAll( '.fragment' ) ).length; | 					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 ); | 						var clonedPage = page.cloneNode( true ); | ||||||
| 						page.parentNode.insertBefore( clonedPage, page.nextSibling ); | 						page.parentNode.insertBefore( clonedPage, page.nextSibling ); | ||||||
|  |  | ||||||
| 						toArray( sortFragments( clonedPage.querySelectorAll( '.fragment' ))).forEach( function ( fragment, fragmentIndex ) { | 						toArray( sortFragments( clonedPage.querySelectorAll( '.fragment' ) ) ).forEach( function( fragment, fragmentIndex ) { | ||||||
| 							if ( fragmentIndex <= currentFragment ) { |  | ||||||
|  | 							if( fragmentIndex < currentFragment ) { | ||||||
| 								fragment.classList.add( 'visible' ); | 								fragment.classList.add( 'visible' ); | ||||||
| 							} else { | 								fragment.classList.remove( 'current-fragment' ); | ||||||
| 								fragment.classList.remove( 'visible' ); |  | ||||||
| 							} | 							} | ||||||
|  | 							else if( fragmentIndex === currentFragment ) { | ||||||
|  | 								fragment.classList.add( 'visible', 'current-fragment' ); | ||||||
|  | 							} | ||||||
|  | 							else { | ||||||
|  | 								fragment.classList.remove( 'visible', 'current-fragment' ); | ||||||
|  | 							} | ||||||
|  |  | ||||||
| 						} ); | 						} ); | ||||||
|  |  | ||||||
| 						page = clonedPage; | 						page = clonedPage; | ||||||
|  |  | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 				} | 				} | ||||||
| 				// Show all fragments | 				// Show all fragments | ||||||
| 				else { | 				else { | ||||||
| 					toArray( page.querySelectorAll( '.fragment' ) ).forEach( function( fragment ) { | 					toArray( page.querySelectorAll( '.fragment:not(.fade-out)' ) ).forEach( function( fragment ) { | ||||||
| 						fragment.classList.add( 'visible' ); | 						fragment.classList.add( 'visible' ); | ||||||
| 					} ); | 					} ); | ||||||
| 				} | 				} | ||||||
| @@ -820,7 +832,6 @@ | |||||||
|  |  | ||||||
| 		} ); | 		} ); | ||||||
|  |  | ||||||
|  |  | ||||||
| 		// Notify subscribers that the PDF layout is good to go | 		// Notify subscribers that the PDF layout is good to go | ||||||
| 		dispatchEvent( 'pdf-ready' ); | 		dispatchEvent( 'pdf-ready' ); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user