From 5fb81b1b3cb058f3a9bbd5f190a12e44b47b8df2 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Fri, 16 Jan 2015 13:48:13 +0100 Subject: support for custom slide number formatting #965 --- js/reveal.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'js') diff --git a/js/reveal.js b/js/reveal.js index 867dd15..3ee2cd0 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -2331,19 +2331,33 @@ /** * Updates the slide number div to reflect the current slide. + * + * Slide number format can be defined as a string using the + * following variables: + * h: current slide's horizontal index + * v: current slide's vertical index + * c: current slide index (flattened) + * t: total number of slides (flattened) */ function updateSlideNumber() { // Update slide number if enabled if( config.slideNumber && dom.slideNumber) { - // Display the number of the page using 'indexh - indexv' format - var indexString = indexh; - if( indexv > 0 ) { - indexString += ' - ' + indexv; + // Default to only showing the current slide number + var format = 'c'; + + // Check if a custom slide number format is available + if( typeof config.slideNumber === 'string' ) { + format = config.slideNumber; } - dom.slideNumber.innerHTML = indexString; + var totalSlides = getTotalSlides(); + + dom.slideNumber.innerHTML = format.replace( /h/g, indexh ) + .replace( /v/g, indexv ) + .replace( /c/g, Math.round( getProgress() * totalSlides ) + 1 ) + .replace( /t/g, totalSlides + 1 ); } } -- cgit v1.2.3