Skip to content

Commit

Permalink
conditional loading of socket.io and the notes client js based on win…
Browse files Browse the repository at this point in the history
…dow host
  • Loading branch information
hakimel committed Jul 4, 2012
1 parent 421afe6 commit 0e86400
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 6 deletions.
20 changes: 15 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -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">
Expand Down Expand Up @@ -313,11 +313,21 @@ <h3 class="inverted">BY Hakim El Hattab / hakim.se</h3>
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>
35 changes: 35 additions & 0 deletions js/reveal.slidenotes.js
Original file line number Diff line number Diff line change
@@ -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);
} );
}());
1 change: 1 addition & 0 deletions lib/slidenotes/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 ) {
Expand Down
2 changes: 1 addition & 1 deletion lib/slidenotes/notes.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">

<title>Slide Notes</title>
<title>reveal.js - Slide Notes</title>

<style>
#notes {
Expand Down

0 comments on commit 0e86400

Please sign in to comment.