server side notes plugin now supports input via data-notes attribute
parent
9478d03cf6
commit
a22d00ab25
|
@ -6,6 +6,7 @@
|
||||||
var socketId = Math.random().toString().slice( 2 );
|
var socketId = Math.random().toString().slice( 2 );
|
||||||
|
|
||||||
console.log( 'View slide notes at ' + window.location.origin + '/notes/' + socketId );
|
console.log( 'View slide notes at ' + window.location.origin + '/notes/' + socketId );
|
||||||
|
|
||||||
window.open( window.location.origin + '/notes/' + socketId, 'notes-' + socketId );
|
window.open( window.location.origin + '/notes/' + socketId, 'notes-' + socketId );
|
||||||
|
|
||||||
// Fires when a fragment is shown
|
// Fires when a fragment is shown
|
||||||
|
@ -28,9 +29,10 @@
|
||||||
|
|
||||||
// Fires when slide is changed
|
// Fires when slide is changed
|
||||||
Reveal.addEventListener( 'slidechanged', function( event ) {
|
Reveal.addEventListener( 'slidechanged', function( event ) {
|
||||||
var nextindexh;
|
var nextindexh,
|
||||||
var nextindexv;
|
nextindexv,
|
||||||
var slideElement = event.currentSlide;
|
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;
|
nextindexh = event.indexh;
|
||||||
|
@ -40,18 +42,27 @@
|
||||||
nextindexv = 0;
|
nextindexv = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var notes = slideElement.querySelector('aside.notes');
|
var messageData = {
|
||||||
var slideData = {
|
notes : '',
|
||||||
notes : notes ? notes.innerHTML : '',
|
|
||||||
indexh : event.indexh,
|
indexh : event.indexh,
|
||||||
indexv : event.indexv,
|
indexv : event.indexv,
|
||||||
nextindexh : nextindexh,
|
nextindexh : nextindexh,
|
||||||
nextindexv : nextindexv,
|
nextindexv : nextindexv,
|
||||||
socketId : socketId,
|
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() {
|
function post() {
|
||||||
var slideElement = Reveal.getCurrentSlide(),
|
var slideElement = Reveal.getCurrentSlide(),
|
||||||
slideIndices = Reveal.getIndices(),
|
slideIndices = Reveal.getIndices(),
|
||||||
messageData;
|
notesElement = slideElement.querySelector( 'aside.notes' ),
|
||||||
|
|
||||||
var notes = slideElement.querySelector( 'aside.notes' ),
|
|
||||||
nextindexh,
|
nextindexh,
|
||||||
nextindexv;
|
nextindexv;
|
||||||
|
|
||||||
|
@ -38,16 +36,27 @@ var RevealNotes = (function() {
|
||||||
nextindexv = 0;
|
nextindexv = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
messageData = {
|
var messageData = {
|
||||||
notes : notes ? notes.innerHTML : '',
|
notes : '',
|
||||||
indexh : slideIndices.h,
|
indexh : slideIndices.h,
|
||||||
indexv : slideIndices.v,
|
indexv : slideIndices.v,
|
||||||
indexf : slideIndices.f,
|
indexf : slideIndices.f,
|
||||||
nextindexh : nextindexh,
|
nextindexh : nextindexh,
|
||||||
nextindexv : nextindexv,
|
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 ), '*' );
|
notesPopup.postMessage( JSON.stringify( messageData ), '*' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue