Prechádzať zdrojové kódy

Notes: Weakly enforce a minimum allocated pacing time per slide

When using the totalTime-based pacing calculation, a presenter may
inadvertently set totalTime and per-slide data-timing attributes in
such a way that the pacing time for some slides is impossibly low or
even negative.

Add a check to ensure that the pacing on a slide never falls below a
configurable minimum, defaulting to 0. Display an alert if the
pacing for any slide(s) falls below the threshold.
Florian Haas 5 rokov pred
rodič
commit
23c12d7332
2 zmenil súbory, kde vykonal 13 pridanie a 0 odobranie
  1. 7 0
      README.md
  2. 6 0
      plugin/notes/notes.html

+ 7 - 0
README.md

@@ -346,6 +346,13 @@ Reveal.initialize({
 	// instead of using the defaultTiming value
 	totalTime: 0,
 
+	// Specify the minimum amount of time you want to allot to
+	// each slide, if using the totalTime calculation method.  If
+	// the automated time allocation causes slide pacing to fall
+	// below this threshold, then you will see an alert in the
+	// speaker notes window
+	minimumTimePerSlide: 0;
+
 	// Enable slide navigation via mouse wheel
 	mouseWheel: false,
 

+ 6 - 0
plugin/notes/notes.html

@@ -540,6 +540,7 @@
 					callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {
 						callRevealApi( 'getConfig', [], function ( config ) {
 							var totalTime = config.totalTime;
+							var minTimePerSlide = config.minimumTimePerSlide || 0;
 							var defaultTiming = config.defaultTiming;
 							if ((defaultTiming == null) && (totalTime == null)) {
 								callback(null);
@@ -574,6 +575,11 @@
 								// And now we replace every zero-value timing with that average
 								timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );
 							}
+							var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length
+							if ( slidesUnderMinimum ) {
+								message = "The pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).";
+								alert(message);
+							}
 							callback( timings );
 						} );
 					} );