diff options
-rw-r--r-- | index.html | 20 | ||||
-rw-r--r-- | js/reveal.slidenotes.js | 35 | ||||
-rw-r--r-- | lib/slidenotes/client.js | 1 | ||||
-rw-r--r-- | lib/slidenotes/notes.html | 2 |
4 files changed, 52 insertions, 6 deletions
@@ -4,7 +4,7 @@ <head> <meta charset="utf-8"> - <title>reveal.js</title> + <title>reveal.js - HTML5 Presentations</title> <meta name="description" content="An easy to use CSS 3D slideshow tool for quickly creating good looking HTML presentations."> <meta name="author" content="Hakim El Hattab"> @@ -313,11 +313,21 @@ linkify( 'a' ); transition: query.transition || 'default' // default/cube/page/concave/linear(2d) }); + // Fire off syntax highlighting for potential code samples in the slides hljs.initHighlightingOnLoad(); - </script> - <!-- The next two lines enable the speaker notes server --> - <script src="socket.io/socket.io.js"></script> - <script src="lib/slidenotes/client.js"></script> + // If we're runnning the notes node server we need to include some + // additional JS + if( window.location.host === 'localhost:1947' ) { + var notes_socket = document.createElement( 'script' ); + notes_socket.setAttribute( 'src', 'socket.io/socket.io.js' ); + document.body.appendChild( notes_socket ); + + var notes_client = document.createElement( 'script' ); + notes_client.setAttribute( 'src', 'lib/slidenotes/client.js' ); + document.body.appendChild( notes_client ); + } + </script> + </body> </html>
\ No newline at end of file diff --git a/js/reveal.slidenotes.js b/js/reveal.slidenotes.js new file mode 100644 index 0000000..b686ec9 --- /dev/null +++ b/js/reveal.slidenotes.js @@ -0,0 +1,35 @@ +(function() { + // don't emit events from inside the previews themselves + var qs = window.location.href.split('?'); + if (qs.length > 1 && qs[1].match('receiver')) { return; } + + var socket = io.connect(window.location.origin); + var socketId = Math.random().toString().slice(2); + console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); + + Reveal.addEventListener( 'slidechanged', function( event ) { + var nextindexh; + var nextindexv; + var slideElement = event.currentSlide; + + if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') { + nextindexh = event.indexh; + nextindexv = event.indexv + 1; + } else { + nextindexh = event.indexh + 1; + nextindexv = 0; + } + + var notes = slideElement.querySelector('aside.notes'); + var slideData = { + notes : notes ? notes.innerHTML : '', + indexh : event.indexh, + indexv : event.indexv, + nextindexh : nextindexh, + nextindexv : nextindexv, + socketId : socketId + }; + + socket.emit('slidechanged', slideData); + } ); +}()); diff --git a/lib/slidenotes/client.js b/lib/slidenotes/client.js index b686ec9..f594fb6 100644 --- a/lib/slidenotes/client.js +++ b/lib/slidenotes/client.js @@ -5,6 +5,7 @@ var socket = io.connect(window.location.origin); var socketId = Math.random().toString().slice(2); + console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); Reveal.addEventListener( 'slidechanged', function( event ) { diff --git a/lib/slidenotes/notes.html b/lib/slidenotes/notes.html index a0c945c..4201647 100644 --- a/lib/slidenotes/notes.html +++ b/lib/slidenotes/notes.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> - <title>Slide Notes</title> + <title>reveal.js - Slide Notes</title> <style> #notes { |