aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2015-09-09 14:09:37 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2015-09-09 14:09:37 +0200
commit2ad4065500875f1878ab35c039054e8609b9aaa6 (patch)
treed90c96815ba0626276b7f03a5f63e060d12a03dc /js
parent5e3bbdeecff0d74d56c2c05f491e1dacfa539059 (diff)
downloadfreenode-live-2017-presentation-2ad4065500875f1878ab35c039054e8609b9aaa6.tar
freenode-live-2017-presentation-2ad4065500875f1878ab35c039054e8609b9aaa6.tar.gz
ability to share presentation with speaker notes #304
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/js/reveal.js b/js/reveal.js
index ad7eaa0..a19e486 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -92,6 +92,9 @@
// Flags if it should be possible to pause the presentation (blackout)
pause: true,
+ // Flags if speaker notes should be visible to all viewers
+ showNotes: false,
+
// Number of milliseconds between automatically proceeding to the
// next slide, disabled when set to 0, this value can be overwritten
// by using a data-autoslide attribute on your slides
@@ -465,6 +468,9 @@
// Slide number
dom.slideNumber = createSingletonNode( dom.wrapper, 'div', 'slide-number', '' );
+ // Element containing notes that are visible to the audience
+ dom.speakerNotes = createSingletonNode( dom.wrapper, 'div', 'speaker-notes', null );
+
// Overlay graphic which is displayed during the paused mode
createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
@@ -856,6 +862,13 @@
resume();
}
+ if( config.showNotes ) {
+ dom.speakerNotes.classList.add( 'visible' );
+ }
+ else {
+ dom.speakerNotes.classList.remove( 'visible' );
+ }
+
if( config.mouseWheel ) {
document.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
document.addEventListener( 'mousewheel', onDocumentMouseScroll, false );
@@ -2161,6 +2174,7 @@
updateBackground();
updateParallax();
updateSlideNumber();
+ updateNotes();
// Update the URL hash
writeURL();
@@ -2202,6 +2216,7 @@
updateBackground( true );
updateSlideNumber();
updateSlidesVisibility();
+ updateNotes();
formatEmbeddedContent();
startEmbeddedContent( currentSlide );
@@ -2451,6 +2466,37 @@
}
/**
+ * Pick up notes from the current slide and display tham
+ * to the viewer.
+ *
+ * @see `showNotes` config value
+ */
+ function updateNotes() {
+
+ if( config.showNotes && dom.speakerNotes && currentSlide ) {
+
+ var notes = '';
+
+ // Notes can be specified via the data-notes attribute...
+ if( currentSlide.hasAttribute( 'data-notes' ) ) {
+ notes = currentSlide.getAttribute( 'data-notes' );
+ }
+
+ // ... or using an <aside class="notes"> element
+ if( !notes ) {
+ var notesElement = currentSlide.querySelector( 'aside.notes' );
+ if( notesElement ) {
+ notes = notesElement.innerHTML;
+ }
+ }
+
+ dom.speakerNotes.innerHTML = notes;
+
+ }
+
+ }
+
+ /**
* Updates the progress bar to reflect the current slide.
*/
function updateProgress() {