Sfoglia il codice sorgente

Package paper and pdf style sheets and apply them conditionally

quilicicf 5 anni fa
parent
commit
499dc68536
13 ha cambiato i file con 659 aggiunte e 685 eliminazioni
  1. 0 2
      .gitignore
  2. 0 203
      css/print/paper.css
  3. 202 0
      css/print/paper.scss
  4. 0 165
      css/print/pdf.css
  5. 167 0
      css/print/pdf.scss
  6. 4 9
      demo.html
  7. 160 160
      dist/print/paper.css
  8. 118 134
      dist/print/pdf.css
  9. 1 1
      dist/reveal.css
  10. 0 0
      dist/reveal.min.js
  11. 4 9
      index.html
  12. 1 1
      js/reveal.js
  13. 2 1
      test/test-pdf.html

+ 0 - 2
.gitignore

@@ -9,5 +9,3 @@ log/*.log
 tmp/**
 tmp/**
 node_modules/
 node_modules/
 .sass-cache
 .sass-cache
-css/reveal.min.css
-js/reveal.min.js

+ 0 - 203
css/print/paper.css

@@ -1,203 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and
-   manipulate this file as you see fit. */
-
-
-@media print {
-
-	/* SECTION 1: Set default width, margin, float, and
-	   background. This prevents elements from extending
-	   beyond the edge of the printed page, and prevents
-	   unnecessary background images from printing */
-	html {
-		background: #fff;
-		width: auto;
-		height: auto;
-		overflow: visible;
-	}
-	body {
-		background: #fff;
-		font-size: 20pt;
-		width: auto;
-		height: auto;
-		border: 0;
-		margin: 0 5%;
-		padding: 0;
-		overflow: visible;
-		float: none !important;
-	}
-
-	/* SECTION 2: Remove any elements not needed in print.
-	   This would include navigation, ads, sidebars, etc. */
-	.nestedarrow,
-	.controls,
-	.fork-reveal,
-	.share-reveal,
-	.state-background,
-	.reveal .progress,
-	.reveal .backgrounds,
-	.reveal .slide-number {
-		display: none !important;
-	}
-
-	/* SECTION 3: Set body font face, size, and color.
-	   Consider using a serif font for readability. */
-	body, p, td, li, div {
-		font-size: 20pt!important;
-		font-family: Georgia, "Times New Roman", Times, serif !important;
-		color: #000;
-	}
-
-	/* SECTION 4: Set heading font face, sizes, and color.
-	   Differentiate your headings from your body text.
-	   Perhaps use a large sans-serif for distinction. */
-	h1,h2,h3,h4,h5,h6 {
-		color: #000!important;
-		height: auto;
-		line-height: normal;
-		font-family: Georgia, "Times New Roman", Times, serif !important;
-		text-shadow: 0 0 0 #000 !important;
-		text-align: left;
-		letter-spacing: normal;
-	}
-	/* Need to reduce the size of the fonts for printing */
-	h1 { font-size: 28pt !important;  }
-	h2 { font-size: 24pt !important; }
-	h3 { font-size: 22pt !important; }
-	h4 { font-size: 22pt !important; font-variant: small-caps; }
-	h5 { font-size: 21pt !important; }
-	h6 { font-size: 20pt !important; font-style: italic; }
-
-	/* SECTION 5: Make hyperlinks more usable.
-	   Ensure links are underlined, and consider appending
-	   the URL to the end of the link for usability. */
-	a:link,
-	a:visited {
-		color: #000 !important;
-		font-weight: bold;
-		text-decoration: underline;
-	}
-	/*
-	.reveal a:link:after,
-	.reveal a:visited:after {
-		content: " (" attr(href) ") ";
-		color: #222 !important;
-		font-size: 90%;
-	}
-	*/
-
-
-	/* SECTION 6: more reveal.js specific additions by @skypanther */
-	ul, ol, div, p {
-		visibility: visible;
-		position: static;
-		width: auto;
-		height: auto;
-		display: block;
-		overflow: visible;
-		margin: 0;
-		text-align: left !important;
-	}
-	.reveal pre,
-	.reveal table {
-		margin-left: 0;
-		margin-right: 0;
-	}
-	.reveal pre code {
-		padding: 20px;
-		border: 1px solid #ddd;
-	}
-	.reveal blockquote {
-		margin: 20px 0;
-	}
-	.reveal .slides {
-		position: static !important;
-		width: auto !important;
-		height: auto !important;
-
-		left: 0 !important;
-		top: 0 !important;
-		margin-left: 0 !important;
-		margin-top: 0 !important;
-		padding: 0 !important;
-		zoom: 1 !important;
-
-		overflow: visible !important;
-		display: block !important;
-
-		text-align: left !important;
-		-webkit-perspective: none;
-		   -moz-perspective: none;
-		    -ms-perspective: none;
-		        perspective: none;
-
-		-webkit-perspective-origin: 50% 50%;
-		   -moz-perspective-origin: 50% 50%;
-		    -ms-perspective-origin: 50% 50%;
-		        perspective-origin: 50% 50%;
-	}
-	.reveal .slides section {
-		visibility: visible !important;
-		position: static !important;
-		width: auto !important;
-		height: auto !important;
-		display: block !important;
-		overflow: visible !important;
-
-		left: 0 !important;
-		top: 0 !important;
-		margin-left: 0 !important;
-		margin-top: 0 !important;
-		padding: 60px 20px !important;
-		z-index: auto !important;
-
-		opacity: 1 !important;
-
-		page-break-after: always !important;
-
-		-webkit-transform-style: flat !important;
-		   -moz-transform-style: flat !important;
-		    -ms-transform-style: flat !important;
-		        transform-style: flat !important;
-
-		-webkit-transform: none !important;
-		   -moz-transform: none !important;
-		    -ms-transform: none !important;
-		        transform: none !important;
-
-		-webkit-transition: none !important;
-		   -moz-transition: none !important;
-		    -ms-transition: none !important;
-		        transition: none !important;
-	}
-	.reveal .slides section.stack {
-		padding: 0 !important;
-	}
-	.reveal section:last-of-type {
-		page-break-after: avoid !important;
-	}
-	.reveal section .fragment {
-		opacity: 1 !important;
-		visibility: visible !important;
-
-		-webkit-transform: none !important;
-		   -moz-transform: none !important;
-		    -ms-transform: none !important;
-		        transform: none !important;
-	}
-	.reveal section img {
-		display: block;
-		margin: 15px 0px;
-		background: rgba(255,255,255,1);
-		border: 1px solid #666;
-		box-shadow: none;
-	}
-
-	.reveal section small {
-		font-size: 0.8em;
-	}
-
-}

+ 202 - 0
css/print/paper.scss

@@ -0,0 +1,202 @@
+/* Default Print Stylesheet Template
+   by Rob Glazebrook of CSSnewbie.com
+   Last Updated: June 4, 2008
+
+   Feel free (nay, compelled) to edit, append, and
+   manipulate this file as you see fit. */
+
+@media print {
+	html:not(.print-pdf) {
+
+		/* SECTION 1: Set default width, margin, float, and
+       background. This prevents elements from extending
+       beyond the edge of the printed page, and prevents
+       unnecessary background images from printing */
+		background: #fff;
+		width: auto;
+		height: auto;
+		overflow: visible;
+
+		body {
+			background: #fff;
+			font-size: 20pt;
+			width: auto;
+			height: auto;
+			border: 0;
+			margin: 0 5%;
+			padding: 0;
+			overflow: visible;
+			float: none !important;
+		}
+
+		/* SECTION 2: Remove any elements not needed in print.
+       This would include navigation, ads, sidebars, etc. */
+		.nestedarrow,
+		.controls,
+		.fork-reveal,
+		.share-reveal,
+		.state-background,
+		.reveal .progress,
+		.reveal .backgrounds,
+		.reveal .slide-number {
+			display: none !important;
+		}
+
+		/* SECTION 3: Set body font face, size, and color.
+       Consider using a serif font for readability. */
+		body, p, td, li, div {
+			font-size: 20pt!important;
+			font-family: Georgia, "Times New Roman", Times, serif !important;
+			color: #000;
+		}
+
+		/* SECTION 4: Set heading font face, sizes, and color.
+       Differentiate your headings from your body text.
+       Perhaps use a large sans-serif for distinction. */
+		h1,h2,h3,h4,h5,h6 {
+			color: #000!important;
+			height: auto;
+			line-height: normal;
+			font-family: Georgia, "Times New Roman", Times, serif !important;
+			text-shadow: 0 0 0 #000 !important;
+			text-align: left;
+			letter-spacing: normal;
+		}
+		/* Need to reduce the size of the fonts for printing */
+		h1 { font-size: 28pt !important;  }
+		h2 { font-size: 24pt !important; }
+		h3 { font-size: 22pt !important; }
+		h4 { font-size: 22pt !important; font-variant: small-caps; }
+		h5 { font-size: 21pt !important; }
+		h6 { font-size: 20pt !important; font-style: italic; }
+
+		/* SECTION 5: Make hyperlinks more usable.
+       Ensure links are underlined, and consider appending
+       the URL to the end of the link for usability. */
+		a:link,
+		a:visited {
+			color: #000 !important;
+			font-weight: bold;
+			text-decoration: underline;
+		}
+		/*
+    .reveal a:link:after,
+    .reveal a:visited:after {
+      content: " (" attr(href) ") ";
+      color: #222 !important;
+      font-size: 90%;
+    }
+    */
+
+
+		/* SECTION 6: more reveal.js specific additions by @skypanther */
+		ul, ol, div, p {
+			visibility: visible;
+			position: static;
+			width: auto;
+			height: auto;
+			display: block;
+			overflow: visible;
+			margin: 0;
+			text-align: left !important;
+		}
+		.reveal pre,
+		.reveal table {
+			margin-left: 0;
+			margin-right: 0;
+		}
+		.reveal pre code {
+			padding: 20px;
+			border: 1px solid #ddd;
+		}
+		.reveal blockquote {
+			margin: 20px 0;
+		}
+		.reveal .slides {
+			position: static !important;
+			width: auto !important;
+			height: auto !important;
+
+			left: 0 !important;
+			top: 0 !important;
+			margin-left: 0 !important;
+			margin-top: 0 !important;
+			padding: 0 !important;
+			zoom: 1 !important;
+
+			overflow: visible !important;
+			display: block !important;
+
+			text-align: left !important;
+			-webkit-perspective: none;
+			-moz-perspective: none;
+			-ms-perspective: none;
+			perspective: none;
+
+			-webkit-perspective-origin: 50% 50%;
+			-moz-perspective-origin: 50% 50%;
+			-ms-perspective-origin: 50% 50%;
+			perspective-origin: 50% 50%;
+		}
+		.reveal .slides section {
+			visibility: visible !important;
+			position: static !important;
+			width: auto !important;
+			height: auto !important;
+			display: block !important;
+			overflow: visible !important;
+
+			left: 0 !important;
+			top: 0 !important;
+			margin-left: 0 !important;
+			margin-top: 0 !important;
+			padding: 60px 20px !important;
+			z-index: auto !important;
+
+			opacity: 1 !important;
+
+			page-break-after: always !important;
+
+			-webkit-transform-style: flat !important;
+			-moz-transform-style: flat !important;
+			-ms-transform-style: flat !important;
+			transform-style: flat !important;
+
+			-webkit-transform: none !important;
+			-moz-transform: none !important;
+			-ms-transform: none !important;
+			transform: none !important;
+
+			-webkit-transition: none !important;
+			-moz-transition: none !important;
+			-ms-transition: none !important;
+			transition: none !important;
+		}
+		.reveal .slides section.stack {
+			padding: 0 !important;
+		}
+		.reveal section:last-of-type {
+			page-break-after: avoid !important;
+		}
+		.reveal section .fragment {
+			opacity: 1 !important;
+			visibility: visible !important;
+
+			-webkit-transform: none !important;
+			-moz-transform: none !important;
+			-ms-transform: none !important;
+			transform: none !important;
+		}
+		.reveal section img {
+			display: block;
+			margin: 15px 0px;
+			background: rgba(255,255,255,1);
+			border: 1px solid #666;
+			box-shadow: none;
+		}
+
+		.reveal section small {
+			font-size: 0.8em;
+		}
+	}
+}

+ 0 - 165
css/print/pdf.css

@@ -1,165 +0,0 @@
-/**
- * This stylesheet is used to print reveal.js
- * presentations to PDF.
- *
- * https://github.com/hakimel/reveal.js#pdf-export
- */
-
-* {
-	-webkit-print-color-adjust: exact;
-}
-
-body {
-	margin: 0 auto !important;
-	border: 0;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-
-html {
-	width: 100%;
-	height: 100%;
-	overflow: visible;
-}
-
-/* Remove any elements not needed in print. */
-.nestedarrow,
-.reveal .controls,
-.reveal .progress,
-.reveal .playback,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display: none !important;
-}
-
-h1, h2, h3, h4, h5, h6 {
-	text-shadow: 0 0 0 #000 !important;
-}
-
-.reveal pre code {
-	overflow: hidden !important;
-	font-family: Courier, 'Courier New', monospace !important;
-}
-
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-}
-.reveal {
-	width: auto !important;
-	height: auto !important;
-	overflow: hidden !important;
-}
-.reveal .slides {
-	position: static;
-	width: 100% !important;
-	height: auto !important;
-	zoom: 1 !important;
-	pointer-events: initial;
-
-	left: auto;
-	top: auto;
-	margin: 0 !important;
-	padding: 0 !important;
-
-	overflow: visible;
-	display: block;
-
-	perspective: none;
-	perspective-origin: 50% 50%;
-}
-
-.reveal .slides .pdf-page {
-	position: relative;
-	overflow: hidden;
-	z-index: 1;
-
-	page-break-after: always;
-}
-
-.reveal .slides section {
-	visibility: visible !important;
-	display: block !important;
-	position: absolute !important;
-
-	margin: 0 !important;
-	padding: 0 !important;
-	box-sizing: border-box !important;
-	min-height: 1px;
-
-	opacity: 1 !important;
-
-	transform-style: flat !important;
-	transform: none !important;
-}
-
-.reveal section.stack {
-	position: relative !important;
-	margin: 0 !important;
-	padding: 0 !important;
-	page-break-after: avoid !important;
-	height: auto !important;
-	min-height: auto !important;
-}
-
-.reveal img {
-	box-shadow: none;
-}
-
-.reveal .roll {
-	overflow: visible;
-	line-height: 1em;
-}
-
-/* Slide backgrounds are placed inside of their slide when exporting to PDF */
-.reveal .slide-background {
-	display: block !important;
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	z-index: auto !important;
-}
-
-/* Display slide speaker notes when 'showNotes' is enabled */
-.reveal.show-notes {
-	max-width: none;
-	max-height: none;
-}
-.reveal .speaker-notes-pdf {
-	display: block;
-	width: 100%;
-	height: auto;
-	max-height: none;
-	top: auto;
-	right: auto;
-	bottom: auto;
-	left: auto;
-	z-index: 100;
-}
-
-/* Layout option which makes notes appear on a separate page */
-.reveal .speaker-notes-pdf[data-layout="separate-page"] {
-	position: relative;
-	color: inherit;
-	background-color: transparent;
-	padding: 20px;
-	page-break-after: always;
-	border: 0;
-}
-
-/* Display slide numbers when 'slideNumber' is enabled */
-.reveal .slide-number-pdf {
-	display: block;
-	position: absolute;
-	font-size: 14px;
-}

+ 167 - 0
css/print/pdf.scss

@@ -0,0 +1,167 @@
+/**
+ * This stylesheet is used to print reveal.js
+ * presentations to PDF.
+ *
+ * https://github.com/hakimel/reveal.js#pdf-export
+ */
+
+html.print-pdf {
+	* {
+		-webkit-print-color-adjust: exact;
+	}
+
+	& {
+		width: 100%;
+		height: 100%;
+		overflow: visible;
+	}
+
+	body {
+		margin: 0 auto !important;
+		border: 0;
+		padding: 0;
+		float: none !important;
+		overflow: visible;
+	}
+
+	/* Remove any elements not needed in print. */
+	.nestedarrow,
+	.reveal .controls,
+	.reveal .progress,
+	.reveal .playback,
+	.reveal.overview,
+	.fork-reveal,
+	.share-reveal,
+	.state-background {
+		display: none !important;
+	}
+
+	h1, h2, h3, h4, h5, h6 {
+		text-shadow: 0 0 0 #000 !important;
+	}
+
+	.reveal pre code {
+		overflow: hidden !important;
+		font-family: Courier, 'Courier New', monospace !important;
+	}
+
+	ul, ol, div, p {
+		visibility: visible;
+		position: static;
+		width: auto;
+		height: auto;
+		display: block;
+		overflow: visible;
+		margin: auto;
+	}
+	.reveal {
+		width: auto !important;
+		height: auto !important;
+		overflow: hidden !important;
+	}
+	.reveal .slides {
+		position: static;
+		width: 100% !important;
+		height: auto !important;
+		zoom: 1 !important;
+		pointer-events: initial;
+
+		left: auto;
+		top: auto;
+		margin: 0 !important;
+		padding: 0 !important;
+
+		overflow: visible;
+		display: block;
+
+		perspective: none;
+		perspective-origin: 50% 50%;
+	}
+
+	.reveal .slides .pdf-page {
+		position: relative;
+		overflow: hidden;
+		z-index: 1;
+
+		page-break-after: always;
+	}
+
+	.reveal .slides section {
+		visibility: visible !important;
+		display: block !important;
+		position: absolute !important;
+
+		margin: 0 !important;
+		padding: 0 !important;
+		box-sizing: border-box !important;
+		min-height: 1px;
+
+		opacity: 1 !important;
+
+		transform-style: flat !important;
+		transform: none !important;
+	}
+
+	.reveal section.stack {
+		position: relative !important;
+		margin: 0 !important;
+		padding: 0 !important;
+		page-break-after: avoid !important;
+		height: auto !important;
+		min-height: auto !important;
+	}
+
+	.reveal img {
+		box-shadow: none;
+	}
+
+	.reveal .roll {
+		overflow: visible;
+		line-height: 1em;
+	}
+
+	/* Slide backgrounds are placed inside of their slide when exporting to PDF */
+	.reveal .slide-background {
+		display: block !important;
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		z-index: auto !important;
+	}
+
+	/* Display slide speaker notes when 'showNotes' is enabled */
+	.reveal.show-notes {
+		max-width: none;
+		max-height: none;
+	}
+	.reveal .speaker-notes-pdf {
+		display: block;
+		width: 100%;
+		height: auto;
+		max-height: none;
+		top: auto;
+		right: auto;
+		bottom: auto;
+		left: auto;
+		z-index: 100;
+	}
+
+	/* Layout option which makes notes appear on a separate page */
+	.reveal .speaker-notes-pdf[data-layout="separate-page"] {
+		position: relative;
+		color: inherit;
+		background-color: transparent;
+		padding: 20px;
+		page-break-after: always;
+		border: 0;
+	}
+
+	/* Display slide numbers when 'slideNumber' is enabled */
+	.reveal .slide-number-pdf {
+		display: block;
+		position: absolute;
+		font-size: 14px;
+	}
+}

+ 4 - 9
demo.html

@@ -18,17 +18,12 @@
 		<link rel="stylesheet" href="dist/reveal.css">
 		<link rel="stylesheet" href="dist/reveal.css">
 		<link rel="stylesheet" href="dist/theme/black.css" id="theme">
 		<link rel="stylesheet" href="dist/theme/black.css" id="theme">
 
 
+		<!-- Print on paper or PDF -->
+		<link rel="stylesheet" href="dist/print/paper.css">
+		<link rel="stylesheet" href="dist/print/pdf.css">
+
 		<!-- Theme used for syntax highlighting of code -->
 		<!-- Theme used for syntax highlighting of code -->
 		<link rel="stylesheet" href="lib/css/monokai.css">
 		<link rel="stylesheet" href="lib/css/monokai.css">
-
-		<!-- Printing and PDF exports -->
-		<script>
-			var link = document.createElement( 'link' );
-			link.rel = 'stylesheet';
-			link.type = 'text/css';
-			link.href = window.location.search.match( /print-pdf/gi ) ? 'dist/print/pdf.css' : 'dist/print/paper.css';
-			document.getElementsByTagName( 'head' )[0].appendChild( link );
-		</script>
 	</head>
 	</head>
 
 
 	<body>
 	<body>

+ 160 - 160
dist/print/paper.css

@@ -5,167 +5,167 @@
    Feel free (nay, compelled) to edit, append, and
    Feel free (nay, compelled) to edit, append, and
    manipulate this file as you see fit. */
    manipulate this file as you see fit. */
 @media print {
 @media print {
-  /* SECTION 1: Set default width, margin, float, and
-	   background. This prevents elements from extending
-	   beyond the edge of the printed page, and prevents
-	   unnecessary background images from printing */
-  html {
+  html:not(.print-pdf) {
+    /* SECTION 1: Set default width, margin, float, and
+       background. This prevents elements from extending
+       beyond the edge of the printed page, and prevents
+       unnecessary background images from printing */
     background: #fff;
     background: #fff;
     width: auto;
     width: auto;
     height: auto;
     height: auto;
-    overflow: visible; }
-  body {
-    background: #fff;
-    font-size: 20pt;
-    width: auto;
-    height: auto;
-    border: 0;
-    margin: 0 5%;
-    padding: 0;
-    overflow: visible;
-    float: none !important; }
-  /* SECTION 2: Remove any elements not needed in print.
-	   This would include navigation, ads, sidebars, etc. */
-  .nestedarrow,
-  .controls,
-  .fork-reveal,
-  .share-reveal,
-  .state-background,
-  .reveal .progress,
-  .reveal .backgrounds,
-  .reveal .slide-number {
-    display: none !important; }
-  /* SECTION 3: Set body font face, size, and color.
-	   Consider using a serif font for readability. */
-  body, p, td, li, div {
-    font-size: 20pt !important;
-    font-family: Georgia, "Times New Roman", Times, serif !important;
-    color: #000; }
-  /* SECTION 4: Set heading font face, sizes, and color.
-	   Differentiate your headings from your body text.
-	   Perhaps use a large sans-serif for distinction. */
-  h1, h2, h3, h4, h5, h6 {
-    color: #000 !important;
-    height: auto;
-    line-height: normal;
-    font-family: Georgia, "Times New Roman", Times, serif !important;
-    text-shadow: 0 0 0 #000 !important;
-    text-align: left;
-    letter-spacing: normal; }
-  /* Need to reduce the size of the fonts for printing */
-  h1 {
-    font-size: 28pt !important; }
-  h2 {
-    font-size: 24pt !important; }
-  h3 {
-    font-size: 22pt !important; }
-  h4 {
-    font-size: 22pt !important;
-    font-variant: small-caps; }
-  h5 {
-    font-size: 21pt !important; }
-  h6 {
-    font-size: 20pt !important;
-    font-style: italic; }
-  /* SECTION 5: Make hyperlinks more usable.
-	   Ensure links are underlined, and consider appending
-	   the URL to the end of the link for usability. */
-  a:link,
-  a:visited {
-    color: #000 !important;
-    font-weight: bold;
-    text-decoration: underline; }
-  /*
-	.reveal a:link:after,
-	.reveal a:visited:after {
-		content: " (" attr(href) ") ";
-		color: #222 !important;
-		font-size: 90%;
-	}
-	*/
-  /* SECTION 6: more reveal.js specific additions by @skypanther */
-  ul, ol, div, p {
-    visibility: visible;
-    position: static;
-    width: auto;
-    height: auto;
-    display: block;
     overflow: visible;
     overflow: visible;
-    margin: 0;
-    text-align: left !important; }
-  .reveal pre,
-  .reveal table {
-    margin-left: 0;
-    margin-right: 0; }
-  .reveal pre code {
-    padding: 20px;
-    border: 1px solid #ddd; }
-  .reveal blockquote {
-    margin: 20px 0; }
-  .reveal .slides {
-    position: static !important;
-    width: auto !important;
-    height: auto !important;
-    left: 0 !important;
-    top: 0 !important;
-    margin-left: 0 !important;
-    margin-top: 0 !important;
-    padding: 0 !important;
-    zoom: 1 !important;
-    overflow: visible !important;
-    display: block !important;
-    text-align: left !important;
-    -webkit-perspective: none;
-    -moz-perspective: none;
-    -ms-perspective: none;
-    perspective: none;
-    -webkit-perspective-origin: 50% 50%;
-    -moz-perspective-origin: 50% 50%;
-    -ms-perspective-origin: 50% 50%;
-    perspective-origin: 50% 50%; }
-  .reveal .slides section {
-    visibility: visible !important;
-    position: static !important;
-    width: auto !important;
-    height: auto !important;
-    display: block !important;
-    overflow: visible !important;
-    left: 0 !important;
-    top: 0 !important;
-    margin-left: 0 !important;
-    margin-top: 0 !important;
-    padding: 60px 20px !important;
-    z-index: auto !important;
-    opacity: 1 !important;
-    page-break-after: always !important;
-    -webkit-transform-style: flat !important;
-    -moz-transform-style: flat !important;
-    -ms-transform-style: flat !important;
-    transform-style: flat !important;
-    -webkit-transform: none !important;
-    -moz-transform: none !important;
-    -ms-transform: none !important;
-    transform: none !important;
-    -webkit-transition: none !important;
-    -moz-transition: none !important;
-    -ms-transition: none !important;
-    transition: none !important; }
-  .reveal .slides section.stack {
-    padding: 0 !important; }
-  .reveal section:last-of-type {
-    page-break-after: avoid !important; }
-  .reveal section .fragment {
-    opacity: 1 !important;
-    visibility: visible !important;
-    -webkit-transform: none !important;
-    -moz-transform: none !important;
-    -ms-transform: none !important;
-    transform: none !important; }
-  .reveal section img {
-    display: block;
-    margin: 15px 0px;
-    background: white;
-    border: 1px solid #666;
-    box-shadow: none; }
-  .reveal section small {
-    font-size: 0.8em; } }
+    /* SECTION 2: Remove any elements not needed in print.
+       This would include navigation, ads, sidebars, etc. */
+    /* SECTION 3: Set body font face, size, and color.
+       Consider using a serif font for readability. */
+    /* SECTION 4: Set heading font face, sizes, and color.
+       Differentiate your headings from your body text.
+       Perhaps use a large sans-serif for distinction. */
+    /* Need to reduce the size of the fonts for printing */
+    /* SECTION 5: Make hyperlinks more usable.
+       Ensure links are underlined, and consider appending
+       the URL to the end of the link for usability. */
+    /*
+    .reveal a:link:after,
+    .reveal a:visited:after {
+      content: " (" attr(href) ") ";
+      color: #222 !important;
+      font-size: 90%;
+    }
+    */
+    /* SECTION 6: more reveal.js specific additions by @skypanther */ }
+    html:not(.print-pdf) body {
+      background: #fff;
+      font-size: 20pt;
+      width: auto;
+      height: auto;
+      border: 0;
+      margin: 0 5%;
+      padding: 0;
+      overflow: visible;
+      float: none !important; }
+    html:not(.print-pdf) .nestedarrow,
+    html:not(.print-pdf) .controls,
+    html:not(.print-pdf) .fork-reveal,
+    html:not(.print-pdf) .share-reveal,
+    html:not(.print-pdf) .state-background,
+    html:not(.print-pdf) .reveal .progress,
+    html:not(.print-pdf) .reveal .backgrounds,
+    html:not(.print-pdf) .reveal .slide-number {
+      display: none !important; }
+    html:not(.print-pdf) body, html:not(.print-pdf) p, html:not(.print-pdf) td, html:not(.print-pdf) li, html:not(.print-pdf) div {
+      font-size: 20pt !important;
+      font-family: Georgia, "Times New Roman", Times, serif !important;
+      color: #000; }
+    html:not(.print-pdf) h1, html:not(.print-pdf) h2, html:not(.print-pdf) h3, html:not(.print-pdf) h4, html:not(.print-pdf) h5, html:not(.print-pdf) h6 {
+      color: #000 !important;
+      height: auto;
+      line-height: normal;
+      font-family: Georgia, "Times New Roman", Times, serif !important;
+      text-shadow: 0 0 0 #000 !important;
+      text-align: left;
+      letter-spacing: normal; }
+    html:not(.print-pdf) h1 {
+      font-size: 28pt !important; }
+    html:not(.print-pdf) h2 {
+      font-size: 24pt !important; }
+    html:not(.print-pdf) h3 {
+      font-size: 22pt !important; }
+    html:not(.print-pdf) h4 {
+      font-size: 22pt !important;
+      font-variant: small-caps; }
+    html:not(.print-pdf) h5 {
+      font-size: 21pt !important; }
+    html:not(.print-pdf) h6 {
+      font-size: 20pt !important;
+      font-style: italic; }
+    html:not(.print-pdf) a:link,
+    html:not(.print-pdf) a:visited {
+      color: #000 !important;
+      font-weight: bold;
+      text-decoration: underline; }
+    html:not(.print-pdf) ul, html:not(.print-pdf) ol, html:not(.print-pdf) div, html:not(.print-pdf) p {
+      visibility: visible;
+      position: static;
+      width: auto;
+      height: auto;
+      display: block;
+      overflow: visible;
+      margin: 0;
+      text-align: left !important; }
+    html:not(.print-pdf) .reveal pre,
+    html:not(.print-pdf) .reveal table {
+      margin-left: 0;
+      margin-right: 0; }
+    html:not(.print-pdf) .reveal pre code {
+      padding: 20px;
+      border: 1px solid #ddd; }
+    html:not(.print-pdf) .reveal blockquote {
+      margin: 20px 0; }
+    html:not(.print-pdf) .reveal .slides {
+      position: static !important;
+      width: auto !important;
+      height: auto !important;
+      left: 0 !important;
+      top: 0 !important;
+      margin-left: 0 !important;
+      margin-top: 0 !important;
+      padding: 0 !important;
+      zoom: 1 !important;
+      overflow: visible !important;
+      display: block !important;
+      text-align: left !important;
+      -webkit-perspective: none;
+      -moz-perspective: none;
+      -ms-perspective: none;
+      perspective: none;
+      -webkit-perspective-origin: 50% 50%;
+      -moz-perspective-origin: 50% 50%;
+      -ms-perspective-origin: 50% 50%;
+      perspective-origin: 50% 50%; }
+    html:not(.print-pdf) .reveal .slides section {
+      visibility: visible !important;
+      position: static !important;
+      width: auto !important;
+      height: auto !important;
+      display: block !important;
+      overflow: visible !important;
+      left: 0 !important;
+      top: 0 !important;
+      margin-left: 0 !important;
+      margin-top: 0 !important;
+      padding: 60px 20px !important;
+      z-index: auto !important;
+      opacity: 1 !important;
+      page-break-after: always !important;
+      -webkit-transform-style: flat !important;
+      -moz-transform-style: flat !important;
+      -ms-transform-style: flat !important;
+      transform-style: flat !important;
+      -webkit-transform: none !important;
+      -moz-transform: none !important;
+      -ms-transform: none !important;
+      transform: none !important;
+      -webkit-transition: none !important;
+      -moz-transition: none !important;
+      -ms-transition: none !important;
+      transition: none !important; }
+    html:not(.print-pdf) .reveal .slides section.stack {
+      padding: 0 !important; }
+    html:not(.print-pdf) .reveal section:last-of-type {
+      page-break-after: avoid !important; }
+    html:not(.print-pdf) .reveal section .fragment {
+      opacity: 1 !important;
+      visibility: visible !important;
+      -webkit-transform: none !important;
+      -moz-transform: none !important;
+      -ms-transform: none !important;
+      transform: none !important; }
+    html:not(.print-pdf) .reveal section img {
+      display: block;
+      margin: 15px 0px;
+      background: white;
+      border: 1px solid #666;
+      box-shadow: none; }
+    html:not(.print-pdf) .reveal section small {
+      font-size: 0.8em; } }

+ 118 - 134
dist/print/pdf.css

@@ -4,137 +4,121 @@
  *
  *
  * https://github.com/hakimel/reveal.js#pdf-export
  * https://github.com/hakimel/reveal.js#pdf-export
  */
  */
-* {
-  -webkit-print-color-adjust: exact; }
-
-body {
-  margin: 0 auto !important;
-  border: 0;
-  padding: 0;
-  float: none !important;
-  overflow: visible; }
-
-html {
-  width: 100%;
-  height: 100%;
-  overflow: visible; }
-
-/* Remove any elements not needed in print. */
-.nestedarrow,
-.reveal .controls,
-.reveal .progress,
-.reveal .playback,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-  display: none !important; }
-
-h1, h2, h3, h4, h5, h6 {
-  text-shadow: 0 0 0 #000 !important; }
-
-.reveal pre code {
-  overflow: hidden !important;
-  font-family: Courier, 'Courier New', monospace !important; }
-
-ul, ol, div, p {
-  visibility: visible;
-  position: static;
-  width: auto;
-  height: auto;
-  display: block;
-  overflow: visible;
-  margin: auto; }
-
-.reveal {
-  width: auto !important;
-  height: auto !important;
-  overflow: hidden !important; }
-
-.reveal .slides {
-  position: static;
-  width: 100% !important;
-  height: auto !important;
-  zoom: 1 !important;
-  left: auto;
-  top: auto;
-  margin: 0 !important;
-  padding: 0 !important;
-  overflow: visible;
-  display: block;
-  perspective: none;
-  perspective-origin: 50% 50%; }
-
-.reveal .slides .pdf-page {
-  position: relative;
-  overflow: hidden;
-  z-index: 1;
-  page-break-after: always; }
-
-.reveal .slides section {
-  visibility: visible !important;
-  display: block !important;
-  position: absolute !important;
-  margin: 0 !important;
-  padding: 0 !important;
-  box-sizing: border-box !important;
-  min-height: 1px;
-  opacity: 1 !important;
-  transform-style: flat !important;
-  transform: none !important; }
-
-.reveal section.stack {
-  position: relative !important;
-  margin: 0 !important;
-  padding: 0 !important;
-  page-break-after: avoid !important;
-  height: auto !important;
-  min-height: auto !important; }
-
-.reveal img {
-  box-shadow: none; }
-
-.reveal .roll {
-  overflow: visible;
-  line-height: 1em; }
-
-/* Slide backgrounds are placed inside of their slide when exporting to PDF */
-.reveal .slide-background {
-  display: block !important;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  z-index: auto !important; }
-
-/* Display slide speaker notes when 'showNotes' is enabled */
-.reveal.show-notes {
-  max-width: none;
-  max-height: none; }
-
-.reveal .speaker-notes-pdf {
-  display: block;
-  width: 100%;
-  height: auto;
-  max-height: none;
-  top: auto;
-  right: auto;
-  bottom: auto;
-  left: auto;
-  z-index: 100; }
-
-/* Layout option which makes notes appear on a separate page */
-.reveal .speaker-notes-pdf[data-layout="separate-page"] {
-  position: relative;
-  color: inherit;
-  background-color: transparent;
-  padding: 20px;
-  page-break-after: always;
-  border: 0; }
-
-/* Display slide numbers when 'slideNumber' is enabled */
-.reveal .slide-number-pdf {
-  display: block;
-  position: absolute;
-  font-size: 14px; }
+html.print-pdf {
+  /* Remove any elements not needed in print. */
+  /* Slide backgrounds are placed inside of their slide when exporting to PDF */
+  /* Display slide speaker notes when 'showNotes' is enabled */
+  /* Layout option which makes notes appear on a separate page */
+  /* Display slide numbers when 'slideNumber' is enabled */ }
+  html.print-pdf * {
+    -webkit-print-color-adjust: exact; }
+  html.print-pdf {
+    width: 100%;
+    height: 100%;
+    overflow: visible; }
+  html.print-pdf body {
+    margin: 0 auto !important;
+    border: 0;
+    padding: 0;
+    float: none !important;
+    overflow: visible; }
+  html.print-pdf .nestedarrow,
+  html.print-pdf .reveal .controls,
+  html.print-pdf .reveal .progress,
+  html.print-pdf .reveal .playback,
+  html.print-pdf .reveal.overview,
+  html.print-pdf .fork-reveal,
+  html.print-pdf .share-reveal,
+  html.print-pdf .state-background {
+    display: none !important; }
+  html.print-pdf h1, html.print-pdf h2, html.print-pdf h3, html.print-pdf h4, html.print-pdf h5, html.print-pdf h6 {
+    text-shadow: 0 0 0 #000 !important; }
+  html.print-pdf .reveal pre code {
+    overflow: hidden !important;
+    font-family: Courier, 'Courier New', monospace !important; }
+  html.print-pdf ul, html.print-pdf ol, html.print-pdf div, html.print-pdf p {
+    visibility: visible;
+    position: static;
+    width: auto;
+    height: auto;
+    display: block;
+    overflow: visible;
+    margin: auto; }
+  html.print-pdf .reveal {
+    width: auto !important;
+    height: auto !important;
+    overflow: hidden !important; }
+  html.print-pdf .reveal .slides {
+    position: static;
+    width: 100% !important;
+    height: auto !important;
+    zoom: 1 !important;
+    pointer-events: initial;
+    left: auto;
+    top: auto;
+    margin: 0 !important;
+    padding: 0 !important;
+    overflow: visible;
+    display: block;
+    perspective: none;
+    perspective-origin: 50% 50%; }
+  html.print-pdf .reveal .slides .pdf-page {
+    position: relative;
+    overflow: hidden;
+    z-index: 1;
+    page-break-after: always; }
+  html.print-pdf .reveal .slides section {
+    visibility: visible !important;
+    display: block !important;
+    position: absolute !important;
+    margin: 0 !important;
+    padding: 0 !important;
+    box-sizing: border-box !important;
+    min-height: 1px;
+    opacity: 1 !important;
+    transform-style: flat !important;
+    transform: none !important; }
+  html.print-pdf .reveal section.stack {
+    position: relative !important;
+    margin: 0 !important;
+    padding: 0 !important;
+    page-break-after: avoid !important;
+    height: auto !important;
+    min-height: auto !important; }
+  html.print-pdf .reveal img {
+    box-shadow: none; }
+  html.print-pdf .reveal .roll {
+    overflow: visible;
+    line-height: 1em; }
+  html.print-pdf .reveal .slide-background {
+    display: block !important;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: auto !important; }
+  html.print-pdf .reveal.show-notes {
+    max-width: none;
+    max-height: none; }
+  html.print-pdf .reveal .speaker-notes-pdf {
+    display: block;
+    width: 100%;
+    height: auto;
+    max-height: none;
+    top: auto;
+    right: auto;
+    bottom: auto;
+    left: auto;
+    z-index: 100; }
+  html.print-pdf .reveal .speaker-notes-pdf[data-layout="separate-page"] {
+    position: relative;
+    color: inherit;
+    background-color: transparent;
+    padding: 20px;
+    page-break-after: always;
+    border: 0; }
+  html.print-pdf .reveal .slide-number-pdf {
+    display: block;
+    position: absolute;
+    font-size: 14px; }

+ 1 - 1
dist/reveal.css

@@ -1,5 +1,5 @@
 /*!
 /*!
-* reveal.js 4.0.0-dev (Tue Mar 10 2020)
+* reveal.js 4.0.0-dev (Wed Mar 11 2020)
 * https://revealjs.com
 * https://revealjs.com
 * MIT licensed
 * MIT licensed
 *
 *

File diff suppressed because it is too large
+ 0 - 0
dist/reveal.min.js


+ 4 - 9
index.html

@@ -10,17 +10,12 @@
 		<link rel="stylesheet" href="dist/reveal.css">
 		<link rel="stylesheet" href="dist/reveal.css">
 		<link rel="stylesheet" href="dist/theme/black.css">
 		<link rel="stylesheet" href="dist/theme/black.css">
 
 
+		<!-- Print on paper or PDF -->
+		<link rel="stylesheet" href="dist/print/paper.css">
+		<link rel="stylesheet" href="dist/print/pdf.css">
+
 		<!-- Theme used for syntax highlighting of code -->
 		<!-- Theme used for syntax highlighting of code -->
 		<link rel="stylesheet" href="lib/css/monokai.css">
 		<link rel="stylesheet" href="lib/css/monokai.css">
-
-		<!-- Printing and PDF exports -->
-		<script>
-			var link = document.createElement( 'link' );
-			link.rel = 'stylesheet';
-			link.type = 'text/css';
-			link.href = window.location.search.match( /print-pdf/gi ) ? 'dist/print/pdf.css' : 'dist/print/paper.css';
-			document.getElementsByTagName( 'head' )[0].appendChild( link );
-		</script>
 	</head>
 	</head>
 	<body>
 	<body>
 		<div class="reveal">
 		<div class="reveal">

+ 1 - 1
js/reveal.js

@@ -368,7 +368,7 @@ export default function( revealElement, options ) {
 		// Limit the size of certain elements to the dimensions of the slide
 		// Limit the size of certain elements to the dimensions of the slide
 		createStyleSheet( '.reveal section>img, .reveal section>video, .reveal section>iframe{max-width: '+ slideWidth +'px; max-height:'+ slideHeight +'px}' );
 		createStyleSheet( '.reveal section>img, .reveal section>video, .reveal section>iframe{max-width: '+ slideWidth +'px; max-height:'+ slideHeight +'px}' );
 
 
-		document.body.classList.add( 'print-pdf' );
+		document.querySelector('html').classList.add( 'print-pdf' );
 		document.body.style.width = pageWidth + 'px';
 		document.body.style.width = pageWidth + 'px';
 		document.body.style.height = pageHeight + 'px';
 		document.body.style.height = pageHeight + 'px';
 
 

+ 2 - 1
test/test-pdf.html

@@ -7,7 +7,8 @@
 		<title>reveal.js - Test PDF exports</title>
 		<title>reveal.js - Test PDF exports</title>
 
 
 		<link rel="stylesheet" href="../dist/reveal.css">
 		<link rel="stylesheet" href="../dist/reveal.css">
-		<link rel="stylesheet" href="../css/print/pdf.css">
+		<link rel="stylesheet" href="../dist/print/paper.css">
+		<link rel="stylesheet" href="../dist/print/pdf.css">
 		<link rel="stylesheet" href="qunit-2.5.0.css">
 		<link rel="stylesheet" href="qunit-2.5.0.css">
 		<script src="qunit-2.5.0.js"></script>
 		<script src="qunit-2.5.0.js"></script>
 	</head>
 	</head>

Some files were not shown because too many files changed in this diff