diff options
author | Florian Haas | 2019-05-11 22:23:28 +0200 |
---|---|---|
committer | Florian Haas | 2019-05-22 21:44:44 +0200 |
commit | 23c12d73321469743424264d9625eab72d8eb179 (patch) | |
tree | 46d443bc5ccd20514455315d887903b5f27e67b3 | |
parent | 078ba6205066fcedeec59dbb6dd16d039558adb4 (diff) |
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.
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | plugin/notes/notes.html | 6 |
2 files changed, 13 insertions, 0 deletions
@@ -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, diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html index b5635bc..fdb81ad 100644 --- a/plugin/notes/notes.html +++ b/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 ); } ); } ); |