From 83b56d1270cdb179b64a1be51f8c1e7fe586c35e Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 1 Apr 2019 20:16:24 +0200 Subject: Added content --- plugin/notes-server/client.js | 128 ++--- plugin/notes-server/index.js | 80 +-- plugin/notes-server/notes.html | 1113 ++++++++++++++++++++-------------------- 3 files changed, 669 insertions(+), 652 deletions(-) (limited to 'plugin/notes-server') diff --git a/plugin/notes-server/client.js b/plugin/notes-server/client.js index 00b277b..e893bb3 100644 --- a/plugin/notes-server/client.js +++ b/plugin/notes-server/client.js @@ -1,65 +1,67 @@ -(function() { - - // don't emit events from inside the previews themselves - if( window.location.search.match( /receiver/gi ) ) { return; } - - var socket = io.connect( window.location.origin ), - socketId = Math.random().toString().slice( 2 ); - - console.log( 'View slide notes at ' + window.location.origin + '/notes/' + socketId ); - - window.open( window.location.origin + '/notes/' + socketId, 'notes-' + socketId ); - - /** - * Posts the current slide data to the notes window - */ - function post() { - - var slideElement = Reveal.getCurrentSlide(), - notesElement = slideElement.querySelector( 'aside.notes' ); - - var messageData = { - notes: '', - markdown: false, - socketId: socketId, - state: Reveal.getState() - }; - - // Look for notes defined in a slide attribute - if( slideElement.hasAttribute( 'data-notes' ) ) { - messageData.notes = slideElement.getAttribute( 'data-notes' ); - } - - // Look for notes defined in an aside element - if( notesElement ) { - messageData.notes = notesElement.innerHTML; - messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string'; - } - - socket.emit( 'statechanged', messageData ); - - } - - // When a new notes window connects, post our current state - socket.on( 'new-subscriber', function( data ) { - post(); - } ); - - // When the state changes from inside of the speaker view - socket.on( 'statechanged-speaker', function( data ) { - Reveal.setState( data.state ); - } ); - - // Monitor events that trigger a change in state - Reveal.addEventListener( 'slidechanged', post ); - Reveal.addEventListener( 'fragmentshown', post ); - Reveal.addEventListener( 'fragmenthidden', post ); - Reveal.addEventListener( 'overviewhidden', post ); - Reveal.addEventListener( 'overviewshown', post ); - Reveal.addEventListener( 'paused', post ); - Reveal.addEventListener( 'resumed', post ); - - // Post the initial state - post(); +(function () { + + // don't emit events from inside the previews themselves + if (window.location.search.match(/receiver/gi)) { + return; + } + + var socket = io.connect(window.location.origin), + socketId = Math.random().toString().slice(2); + + console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); + + window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId); + + /** + * Posts the current slide data to the notes window + */ + function post() { + + var slideElement = Reveal.getCurrentSlide(), + notesElement = slideElement.querySelector('aside.notes'); + + var messageData = { + notes: '', + markdown: false, + socketId: socketId, + state: Reveal.getState() + }; + + // Look for notes defined in a slide attribute + if (slideElement.hasAttribute('data-notes')) { + messageData.notes = slideElement.getAttribute('data-notes'); + } + + // Look for notes defined in an aside element + if (notesElement) { + messageData.notes = notesElement.innerHTML; + messageData.markdown = typeof notesElement.getAttribute('data-markdown') === 'string'; + } + + socket.emit('statechanged', messageData); + + } + + // When a new notes window connects, post our current state + socket.on('new-subscriber', function (data) { + post(); + }); + + // When the state changes from inside of the speaker view + socket.on('statechanged-speaker', function (data) { + Reveal.setState(data.state); + }); + + // Monitor events that trigger a change in state + Reveal.addEventListener('slidechanged', post); + Reveal.addEventListener('fragmentshown', post); + Reveal.addEventListener('fragmenthidden', post); + Reveal.addEventListener('overviewhidden', post); + Reveal.addEventListener('overviewshown', post); + Reveal.addEventListener('paused', post); + Reveal.addEventListener('resumed', post); + + // Post the initial state + post(); }()); diff --git a/plugin/notes-server/index.js b/plugin/notes-server/index.js index b95f071..571df3d 100644 --- a/plugin/notes-server/index.js +++ b/plugin/notes-server/index.js @@ -1,69 +1,69 @@ -var http = require('http'); -var express = require('express'); -var fs = require('fs'); -var io = require('socket.io'); -var Mustache = require('mustache'); +var http = require('http'); +var express = require('express'); +var fs = require('fs'); +var io = require('socket.io'); +var Mustache = require('mustache'); -var app = express(); +var app = express(); var staticDir = express.static; -var server = http.createServer(app); +var server = http.createServer(app); io = io(server); var opts = { - port : 1947, - baseDir : __dirname + '/../../' + port: 1947, + baseDir: __dirname + '/../../' }; -io.on( 'connection', function( socket ) { +io.on('connection', function (socket) { - socket.on( 'new-subscriber', function( data ) { - socket.broadcast.emit( 'new-subscriber', data ); - }); + socket.on('new-subscriber', function (data) { + socket.broadcast.emit('new-subscriber', data); + }); - socket.on( 'statechanged', function( data ) { - delete data.state.overview; - socket.broadcast.emit( 'statechanged', data ); - }); + socket.on('statechanged', function (data) { + delete data.state.overview; + socket.broadcast.emit('statechanged', data); + }); - socket.on( 'statechanged-speaker', function( data ) { - delete data.state.overview; - socket.broadcast.emit( 'statechanged-speaker', data ); - }); + socket.on('statechanged-speaker', function (data) { + delete data.state.overview; + socket.broadcast.emit('statechanged-speaker', data); + }); }); -[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach( function( dir ) { - app.use( '/' + dir, staticDir( opts.baseDir + dir ) ); +['css', 'js', 'images', 'plugin', 'lib'].forEach(function (dir) { + app.use('/' + dir, staticDir(opts.baseDir + dir)); }); -app.get('/', function( req, res ) { +app.get('/', function (req, res) { - res.writeHead( 200, { 'Content-Type': 'text/html' } ); - fs.createReadStream( opts.baseDir + '/index.html' ).pipe( res ); + res.writeHead(200, {'Content-Type': 'text/html'}); + fs.createReadStream(opts.baseDir + '/index.html').pipe(res); }); -app.get( '/notes/:socketId', function( req, res ) { +app.get('/notes/:socketId', function (req, res) { - fs.readFile( opts.baseDir + 'plugin/notes-server/notes.html', function( err, data ) { - res.send( Mustache.to_html( data.toString(), { - socketId : req.params.socketId - })); - }); + fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function (err, data) { + res.send(Mustache.to_html(data.toString(), { + socketId: req.params.socketId + })); + }); }); // Actually listen -server.listen( opts.port || null ); +server.listen(opts.port || null); var brown = '\033[33m', - green = '\033[32m', - reset = '\033[0m'; + green = '\033[32m', + reset = '\033[0m'; -var slidesLocation = 'http://localhost' + ( opts.port ? ( ':' + opts.port ) : '' ); +var slidesLocation = 'http://localhost' + (opts.port ? (':' + opts.port) : ''); -console.log( brown + 'reveal.js - Speaker Notes' + reset ); -console.log( '1. Open the slides at ' + green + slidesLocation + reset ); -console.log( '2. Click on the link in your JS console to go to the notes page' ); -console.log( '3. Advance through your slides and your notes will advance automatically' ); +console.log(brown + 'reveal.js - Speaker Notes' + reset); +console.log('1. Open the slides at ' + green + slidesLocation + reset); +console.log('2. Click on the link in your JS console to go to the notes page'); +console.log('3. Advance through your slides and your notes will advance automatically'); diff --git a/plugin/notes-server/notes.html b/plugin/notes-server/notes.html index ab8c5b1..7454b0c 100644 --- a/plugin/notes-server/notes.html +++ b/plugin/notes-server/notes.html @@ -1,585 +1,600 @@ -
- - -