aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2016-05-26 09:57:19 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2016-05-26 09:57:27 +0200
commit3111d3b1ae12af2580cb45a18da208146701a6fd (patch)
tree1d873aac1b7299a8dd5ad8fac208983d3d03bb40
parente93afb7289d4d272b0751b7ce97e980cbce4a6ba (diff)
downloadperl-software-in-gnu-guix-3111d3b1ae12af2580cb45a18da208146701a6fd.tar
perl-software-in-gnu-guix-3111d3b1ae12af2580cb45a18da208146701a6fd.tar.gz
support for 'separate-page' layout for notes in PDF exports #1518
-rw-r--r--README.md2
-rw-r--r--css/print/pdf.css13
-rw-r--r--js/reveal.js21
3 files changed, 30 insertions, 6 deletions
diff --git a/README.md b/README.md
index 56dad41..b275846 100644
--- a/README.md
+++ b/README.md
@@ -890,7 +890,7 @@ This will only display in the notes window.
Notes are only visible to the speaker inside of the speaker view. If you wish to share your notes with others you can initialize reveal.js with the `showNotes` config value set to `true`. Notes will appear along the bottom of the presentations.
-When `showNotes` is enabled notes are also included when you [export to PDF](https://github.com/hakimel/reveal.js#pdf-export).
+When `showNotes` is enabled notes are also included when you [export to PDF](https://github.com/hakimel/reveal.js#pdf-export). By default, notes are printed in a semi-transparent box on top of slide. If you'd rather print them on a separate page after the slide, set `showNotes: "separate-page"`.
## Server Side Speaker Notes
diff --git a/css/print/pdf.css b/css/print/pdf.css
index 406f125..fb56129 100644
--- a/css/print/pdf.css
+++ b/css/print/pdf.css
@@ -145,11 +145,22 @@ ul, ol, div, p {
display: block;
width: 100%;
max-height: none;
- left: auto;
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;
+}
+
/* Display slide numbers when 'slideNumber' is enabled */
.reveal .slide-number-pdf {
display: block;
diff --git a/js/reveal.js b/js/reveal.js
index 656ed10..f43e0aa 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -624,18 +624,31 @@
// Inject notes if `showNotes` is enabled
if( config.showNotes ) {
+
+ // Are there notes for this slide?
var notes = getSlideNotes( slide );
if( notes ) {
+
var notesSpacing = 8;
+ var notesLayout = typeof config.showNotes === 'string' ? config.showNotes : 'inline';
var notesElement = document.createElement( 'div' );
notesElement.classList.add( 'speaker-notes' );
notesElement.classList.add( 'speaker-notes-pdf' );
+ notesElement.setAttribute( 'data-layout', notesLayout );
notesElement.innerHTML = notes;
- notesElement.style.left = ( notesSpacing - left ) + 'px';
- notesElement.style.bottom = ( notesSpacing - top ) + 'px';
- notesElement.style.width = ( pageWidth - notesSpacing*2 ) + 'px';
- slide.appendChild( notesElement );
+
+ if( notesLayout === 'separate-page' ) {
+ page.parentNode.insertBefore( notesElement, page.nextSibling );
+ }
+ else {
+ notesElement.style.left = ( notesSpacing - left ) + 'px';
+ notesElement.style.bottom = ( notesSpacing - top ) + 'px';
+ notesElement.style.width = ( pageWidth - notesSpacing*2 ) + 'px';
+ slide.appendChild( notesElement );
+ }
+
}
+
}
// Inject slide numbers if `slideNumbers` are enabled