diff options
author | Hakim El Hattab <hakim.elhattab@gmail.com> | 2012-07-01 01:57:23 -0400 |
---|---|---|
committer | Hakim El Hattab <hakim.elhattab@gmail.com> | 2012-07-01 01:57:23 -0400 |
commit | bf2c95b546c5dbff1c8b5903fb89e2ecee9b297b (patch) | |
tree | 4db5f768404fd00ae41b1f409bede832e1377ff9 /slidenotes/index.js | |
parent | bdad679715ca3d82a0ff4a2bae7353785ac9b125 (diff) | |
parent | 4ca99d426446508b63ad995ea029f4fc95c82952 (diff) | |
download | perl-software-in-gnu-guix-bf2c95b546c5dbff1c8b5903fb89e2ecee9b297b.tar perl-software-in-gnu-guix-bf2c95b546c5dbff1c8b5903fb89e2ecee9b297b.tar.gz |
Merge branch 'presenter_notes_server' of https://github.com/rmurphey/reveal.js into notes
Diffstat (limited to 'slidenotes/index.js')
-rw-r--r-- | slidenotes/index.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/slidenotes/index.js b/slidenotes/index.js new file mode 100644 index 0000000..d27847e --- /dev/null +++ b/slidenotes/index.js @@ -0,0 +1,48 @@ +var express = require('express'); +var fs = require('fs'); +var io = require('socket.io'); +var _ = require('underscore'); +var Mustache = require('mustache'); + +var app = express.createServer(); +var staticDir = express.static; + +io = io.listen(app); + +var opts = { + port : 1947, + baseDir : __dirname + '/../' +}; + +io.sockets.on('connection', function(socket) { + socket.on('slidechanged', function(slideData) { + socket.broadcast.emit('slidedata', slideData); + }); +}); + +app.configure(function() { + [ 'css', 'assets', 'js', 'lib' ].forEach(function(dir) { + app.use('/' + dir, staticDir(opts.baseDir + dir)); + }); +}); + +app.get("/", function(req, res) { + fs.createReadStream(opts.baseDir + '/index.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 +app.listen(opts.port || null); + +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"); |