github.com/mweagle/Sparta@v1.15.0/docs_source/static/presentations/reveal.js-3.9.2/plugin/notes-server/client.js (about) 1 (function() { 2 3 // don't emit events from inside the previews themselves 4 if( window.location.search.match( /receiver/gi ) ) { return; } 5 6 var socket = io.connect( window.location.origin ), 7 socketId = Math.random().toString().slice( 2 ); 8 9 console.log( 'View slide notes at ' + window.location.origin + '/notes/' + socketId ); 10 11 window.open( window.location.origin + '/notes/' + socketId, 'notes-' + socketId ); 12 13 /** 14 * Posts the current slide data to the notes window 15 */ 16 function post() { 17 18 var slideElement = Reveal.getCurrentSlide(), 19 notesElement = slideElement.querySelector( 'aside.notes' ); 20 21 var messageData = { 22 notes: '', 23 markdown: false, 24 socketId: socketId, 25 state: Reveal.getState() 26 }; 27 28 // Look for notes defined in a slide attribute 29 if( slideElement.hasAttribute( 'data-notes' ) ) { 30 messageData.notes = slideElement.getAttribute( 'data-notes' ); 31 } 32 33 // Look for notes defined in an aside element 34 if( notesElement ) { 35 messageData.notes = notesElement.innerHTML; 36 messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string'; 37 } 38 39 socket.emit( 'statechanged', messageData ); 40 41 } 42 43 // When a new notes window connects, post our current state 44 socket.on( 'new-subscriber', function( data ) { 45 post(); 46 } ); 47 48 // When the state changes from inside of the speaker view 49 socket.on( 'statechanged-speaker', function( data ) { 50 Reveal.setState( data.state ); 51 } ); 52 53 // Monitor events that trigger a change in state 54 Reveal.addEventListener( 'slidechanged', post ); 55 Reveal.addEventListener( 'fragmentshown', post ); 56 Reveal.addEventListener( 'fragmenthidden', post ); 57 Reveal.addEventListener( 'overviewhidden', post ); 58 Reveal.addEventListener( 'overviewshown', post ); 59 Reveal.addEventListener( 'paused', post ); 60 Reveal.addEventListener( 'resumed', post ); 61 62 // Post the initial state 63 post(); 64 65 }());