aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugin/notes/notes.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/notes/notes.js')
-rw-r--r--plugin/notes/notes.js42
1 files changed, 36 insertions, 6 deletions
diff --git a/plugin/notes/notes.js b/plugin/notes/notes.js
index e42329d..44efe15 100644
--- a/plugin/notes/notes.js
+++ b/plugin/notes/notes.js
@@ -11,10 +11,15 @@
*/
var RevealNotes = (function() {
- function openNotes() {
- var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path
- jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path
- var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1100,height=700' );
+ function openNotes( notesFilePath ) {
+
+ if( !notesFilePath ) {
+ var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path
+ jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path
+ notesFilePath = jsFileLocation + 'notes.html';
+ }
+
+ var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' );
/**
* Connect to the notes window through a postmessage handshake.
@@ -45,22 +50,40 @@ var RevealNotes = (function() {
/**
* Posts the current slide data to the notes window
*/
- function post() {
+ function post( event ) {
var slideElement = Reveal.getCurrentSlide(),
- notesElement = slideElement.querySelector( 'aside.notes' );
+ notesElement = slideElement.querySelector( 'aside.notes' ),
+ fragmentElement = slideElement.querySelector( '.current-fragment' );
var messageData = {
namespace: 'reveal-notes',
type: 'state',
notes: '',
markdown: false,
+ whitespace: 'normal',
state: Reveal.getState()
};
// Look for notes defined in a slide attribute
if( slideElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = slideElement.getAttribute( 'data-notes' );
+ messageData.whitespace = 'pre-wrap';
+ }
+
+ // Look for notes defined in a fragment
+ if( fragmentElement ) {
+ var fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
+ if( fragmentNotes ) {
+ notesElement = fragmentNotes;
+ }
+ else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
+ messageData.notes = fragmentElement.getAttribute( 'data-notes' );
+ messageData.whitespace = 'pre-wrap';
+
+ // In case there are slide notes
+ notesElement = null;
+ }
}
// Look for notes defined in an aside element
@@ -94,6 +117,7 @@ var RevealNotes = (function() {
}
connect();
+
}
if( !/receiver/i.test( window.location.search ) ) {
@@ -109,12 +133,18 @@ var RevealNotes = (function() {
// modifier is present
if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
+ // Disregard the event if keyboard is disabled
+ if ( Reveal.getConfig().keyboard === false ) return;
+
if( event.keyCode === 83 ) {
event.preventDefault();
openNotes();
}
}, false );
+ // Show our keyboard shortcut in the reveal.js help overlay
+ if( window.Reveal ) Reveal.registerKeyboardShortcut( 'S', 'Speaker notes view' );
+
}
return { open: openNotes };