rc-web@42
|
1 var express = require('express');
|
rc-web@42
|
2 var fs = require('fs');
|
rc-web@42
|
3 var io = require('socket.io');
|
rc-web@42
|
4 var _ = require('underscore');
|
rc-web@42
|
5 var Mustache = require('mustache');
|
rc-web@42
|
6
|
rc-web@42
|
7 var app = express.createServer();
|
rc-web@42
|
8 var staticDir = express.static;
|
rc-web@42
|
9
|
rc-web@42
|
10 io = io.listen(app);
|
rc-web@42
|
11
|
rc-web@42
|
12 var opts = {
|
rc-web@42
|
13 port : 1947,
|
rc-web@42
|
14 baseDir : __dirname + '/../../'
|
rc-web@42
|
15 };
|
rc-web@42
|
16
|
rc-web@42
|
17 io.sockets.on('connection', function(socket) {
|
rc-web@42
|
18 socket.on('slidechanged', function(slideData) {
|
rc-web@42
|
19 socket.broadcast.emit('slidedata', slideData);
|
rc-web@42
|
20 });
|
rc-web@42
|
21 });
|
rc-web@42
|
22
|
rc-web@42
|
23 app.configure(function() {
|
rc-web@42
|
24 [ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
|
rc-web@42
|
25 app.use('/' + dir, staticDir(opts.baseDir + dir));
|
rc-web@42
|
26 });
|
rc-web@42
|
27 });
|
rc-web@42
|
28
|
rc-web@42
|
29 app.get("/", function(req, res) {
|
rc-web@42
|
30 fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
|
rc-web@42
|
31 });
|
rc-web@42
|
32
|
rc-web@42
|
33 app.get("/notes/:socketId", function(req, res) {
|
rc-web@42
|
34
|
rc-web@42
|
35 fs.readFile(opts.baseDir + 'plugin/speakernotes/notes.html', function(err, data) {
|
rc-web@42
|
36 res.send(Mustache.to_html(data.toString(), {
|
rc-web@42
|
37 socketId : req.params.socketId
|
rc-web@42
|
38 }));
|
rc-web@42
|
39 });
|
rc-web@42
|
40 // fs.createReadStream(opts.baseDir + 'speakernotes/notes.html').pipe(res);
|
rc-web@42
|
41 });
|
rc-web@42
|
42
|
rc-web@42
|
43 // Actually listen
|
rc-web@42
|
44 app.listen(opts.port || null);
|
rc-web@42
|
45
|
rc-web@42
|
46 var brown = '\033[33m',
|
rc-web@42
|
47 green = '\033[32m',
|
rc-web@42
|
48 reset = '\033[0m';
|
rc-web@42
|
49
|
rc-web@42
|
50 var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
|
rc-web@42
|
51
|
rc-web@42
|
52 console.log( brown + "reveal.js - Speaker Notes" + reset );
|
rc-web@42
|
53 console.log( "1. Open the slides at " + green + slidesLocation + reset );
|
rc-web@42
|
54 console.log( "2. Click on the link your JS console to go to the notes page" );
|
rc-web@42
|
55 console.log( "3. Advance through your slides and your notes will advance automatically" );
|