aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2012-07-04 14:18:09 -0400
committerHakim El Hattab <hakim.elhattab@gmail.com>2012-07-04 14:18:09 -0400
commit0e8640094301889e5c848dcf92084678778f0a19 (patch)
tree943f10c7ebc7268522505c3750e03ee14b59eadc
parent421afe6368686b40a13c3b837b41ae1ad552ff7f (diff)
downloadperl-software-in-gnu-guix-0e8640094301889e5c848dcf92084678778f0a19.tar
perl-software-in-gnu-guix-0e8640094301889e5c848dcf92084678778f0a19.tar.gz
conditional loading of socket.io and the notes client js based on window host
-rw-r--r--index.html20
-rw-r--r--js/reveal.slidenotes.js35
-rw-r--r--lib/slidenotes/client.js1
-rw-r--r--lib/slidenotes/notes.html2
4 files changed, 52 insertions, 6 deletions
diff --git a/index.html b/index.html
index b08c62a..68c5e4f 100644
--- a/index.html
+++ b/index.html
@@ -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 {