Add presenter notes support

This commit is contained in:
Frederic Hemberger 2012-12-30 12:54:16 +01:00
parent 3d414b190b
commit d5cc38e666
1 changed files with 31 additions and 3 deletions

View File

@ -18,7 +18,7 @@ window.shower = (function(window, document, undefined) {
*/ */
shower._getData = function(element, name) { shower._getData = function(element, name) {
return element.dataset ? element.dataset[name] : element.getAttribute('data-' + name); return element.dataset ? element.dataset[name] : element.getAttribute('data-' + name);
} };
for (i = 0; i < l; i++) { for (i = 0; i < l; i++) {
// Slide ID's are optional. In case of missing ID we set it to the // Slide ID's are optional. In case of missing ID we set it to the
@ -133,9 +133,13 @@ window.shower = (function(window, document, undefined) {
shower.enterSlideMode = function() { shower.enterSlideMode = function() {
// check if it's already in slide mode... // check if it's already in slide mode...
if ( body.classList.contains('full') ) { return; } if ( body.classList.contains('full') ) { return; }
body.classList.remove('list'); body.classList.remove('list');
body.classList.add('full'); body.classList.add('full');
if ( window.console && window.console.clear ) { console.clear(); }
shower.showPresenterNotes( shower.getCurrentSlideNumber() );
return shower._applyTransform(shower._getTransform()); return shower._applyTransform(shower._getTransform());
}; };
@ -146,7 +150,7 @@ window.shower = (function(window, document, undefined) {
shower.enterListMode = function() { shower.enterListMode = function() {
// check if it's already in list mode... // check if it's already in list mode...
if ( body.classList.contains('list') ) { return; } if ( body.classList.contains('list') ) { return; }
body.classList.remove('full'); body.classList.remove('full');
body.classList.add('list'); body.classList.add('list');
return shower._applyTransform('none'); return shower._applyTransform('none');
@ -306,6 +310,29 @@ window.shower = (function(window, document, undefined) {
return true; return true;
}; };
/**
* Show presenter notes in console.
* @param {number} slideNumber slide number (sic!). Attention: starts from zero.
*/
shower.showPresenterNotes = function(slideNumber) {
if (window.console) {
var slide = slideList[ shower._normalizeSlideNumber(slideNumber) ].id;
var nextSlide = slideList[ shower._normalizeSlideNumber(slideNumber + 1) ].id;
var notes = document.getElementById(slide).querySelector('.presenter-notes');
if (notes) {
console.info(notes.innerHTML.replace(/\n\s+/g,'\n'));
}
if (nextSlide !== slide) {
var next = document.getElementById(nextSlide).querySelector('h2');
if (next) {
next = next.innerHTML.replace(/^\s+|<[^>]+>/g,'');
console.info('NEXT: ' + next);
}
}
}
};
/** /**
* Get slide hash. * Get slide hash.
* @param {number} slideNumber slide number (sic!). Attention: starts from zero. * @param {number} slideNumber slide number (sic!). Attention: starts from zero.
@ -336,6 +363,7 @@ window.shower = (function(window, document, undefined) {
if ( ! shower.isListMode()) { if ( ! shower.isListMode()) {
shower.updateProgress(slideNumber); shower.updateProgress(slideNumber);
shower.updateCurrentAndPassedSlides(slideNumber); shower.updateCurrentAndPassedSlides(slideNumber);
shower.showPresenterNotes(slideNumber);
} }
return slideNumber; return slideNumber;