server side notes plugin now supports input via data-notes attribute
This commit is contained in:
parent
9478d03cf6
commit
a22d00ab25
2 changed files with 43 additions and 23 deletions
|
@ -1,12 +1,13 @@
|
|||
(function() {
|
||||
// don't emit events from inside the previews themselves
|
||||
if ( window.location.search.match( /receiver/gi ) ) { return; }
|
||||
if( window.location.search.match( /receiver/gi ) ) { return; }
|
||||
|
||||
var socket = io.connect(window.location.origin);
|
||||
var 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);
|
||||
var socket = io.connect( window.location.origin );
|
||||
var 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 );
|
||||
|
||||
// Fires when a fragment is shown
|
||||
Reveal.addEventListener( 'fragmentshown', function( event ) {
|
||||
|
@ -23,16 +24,17 @@
|
|||
fragment : 'previous',
|
||||
socketId : socketId
|
||||
};
|
||||
socket.emit('fragmentchanged', fragmentData);
|
||||
socket.emit( 'fragmentchanged', fragmentData );
|
||||
} );
|
||||
|
||||
// Fires when slide is changed
|
||||
Reveal.addEventListener( 'slidechanged', function( event ) {
|
||||
var nextindexh;
|
||||
var nextindexv;
|
||||
var slideElement = event.currentSlide;
|
||||
var nextindexh,
|
||||
nextindexv,
|
||||
slideElement = event.currentSlide,
|
||||
notesElement = slideElement.querySelector( 'aside.notes' );
|
||||
|
||||
if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
|
||||
if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
|
||||
nextindexh = event.indexh;
|
||||
nextindexv = event.indexv + 1;
|
||||
} else {
|
||||
|
@ -40,18 +42,27 @@
|
|||
nextindexv = 0;
|
||||
}
|
||||
|
||||
var notes = slideElement.querySelector('aside.notes');
|
||||
var slideData = {
|
||||
notes : notes ? notes.innerHTML : '',
|
||||
var messageData = {
|
||||
notes : '',
|
||||
indexh : event.indexh,
|
||||
indexv : event.indexv,
|
||||
nextindexh : nextindexh,
|
||||
nextindexv : nextindexv,
|
||||
socketId : socketId,
|
||||
markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
|
||||
|
||||
markdown : false
|
||||
};
|
||||
|
||||
socket.emit('slidechanged', slideData);
|
||||
// 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( 'slidechanged', messageData );
|
||||
} );
|
||||
}());
|
||||
|
|
|
@ -24,9 +24,7 @@ var RevealNotes = (function() {
|
|||
function post() {
|
||||
var slideElement = Reveal.getCurrentSlide(),
|
||||
slideIndices = Reveal.getIndices(),
|
||||
messageData;
|
||||
|
||||
var notes = slideElement.querySelector( 'aside.notes' ),
|
||||
notesElement = slideElement.querySelector( 'aside.notes' ),
|
||||
nextindexh,
|
||||
nextindexv;
|
||||
|
||||
|
@ -38,16 +36,27 @@ var RevealNotes = (function() {
|
|||
nextindexv = 0;
|
||||
}
|
||||
|
||||
messageData = {
|
||||
notes : notes ? notes.innerHTML : '',
|
||||
var messageData = {
|
||||
notes : '',
|
||||
indexh : slideIndices.h,
|
||||
indexv : slideIndices.v,
|
||||
indexf : slideIndices.f,
|
||||
nextindexh : nextindexh,
|
||||
nextindexv : nextindexv,
|
||||
markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
|
||||
markdown : false
|
||||
};
|
||||
|
||||
// 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';
|
||||
}
|
||||
|
||||
notesPopup.postMessage( JSON.stringify( messageData ), '*' );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue