var fs = require('fs');
var io = require('socket.io');
var _ = require('underscore');
+var Mustache = require('mustache');
var app = express.createServer();
var staticDir = express.static;
fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
});
-app.get("/_notes", function(req, res) {
- fs.createReadStream(opts.baseDir + 'slidenotes/notes.html').pipe(res);
+app.get("/_notes/:socketId", function(req, res) {
+
+ fs.readFile(opts.baseDir + 'slidenotes/notes.html', function(err, data) {
+ res.send(Mustache.to_html(data.toString(), {
+ socketId : req.params.socketId
+ }));
+ });
+ // fs.createReadStream(opts.baseDir + 'slidenotes/notes.html').pipe(res);
});
// Actually listen
console.log("Your slides are at http://localhost" + (opts.port ? (':' + opts.port) : ''));
console.log("Your notes are at http://localhost" + (opts.port ? (':' + opts.port) : '') + '/_notes');
-console.log("Advance through your slides and your speaker notes will advance automatically");
\ No newline at end of file
+console.log("Advance through your slides and your speaker notes will advance automatically");
float: left;
}
- #slides {
- width: 1280px;
- height: 1024px;
- border: 1px solid black;
+ #slides {
+ width: 1280px;
+ height: 1024px;
+ border: 1px solid black;
-moz-transform: scale(0.5);
-moz-transform-origin: 0 0;
-o-transform: scale(0.5);
-o-transform-origin: 0 0;
-webkit-transform: scale(0.5);
- -webkit-transform-origin: 0 0;
+ -webkit-transform-origin: 0 0;
}
#wrap-next-slide {
margin: 0 0 0 50px;
}
- #next-slide {
- width: 1280px;
- height: 1024px;
- border: 1px solid black;
+ #next-slide {
+ width: 1280px;
+ height: 1024px;
+ border: 1px solid black;
-moz-transform: scale(0.25);
-moz-transform-origin: 0 0;
-o-transform: scale(0.25);
-o-transform-origin: 0 0;
-webkit-transform: scale(0.25);
- -webkit-transform-origin: 0 0;
+ -webkit-transform-origin: 0 0;
}
</style>
</head>
<script src="socket.io/socket.io.js"></script>
<script>
+ var socketId = '{{socketId}}';
var socket = io.connect('http://localhost:1947');
var notes = document.getElementById('notes');
var slides = document.getElementById('slides');
var nextSlide = document.getElementById('next-slide');
socket.on('slidedata', function(data) {
+ // ignore data from sockets that aren't ours
+ if (data.socketId !== socketId) { return; }
+
notes.innerHTML = data.notes;
slides.contentWindow.Reveal.navigateTo(data.indexh, data.indexv);
nextSlide.contentWindow.Reveal.navigateTo(data.nextindexh, data.nextindexv);