aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rw-r--r--js/reveal.js24
2 files changed, 28 insertions, 5 deletions
diff --git a/README.md b/README.md
index e748ca8..a942a8d 100644
--- a/README.md
+++ b/README.md
@@ -572,7 +572,16 @@ By default, Reveal is configured with [highlight.js](http://softwaremaniacs.org/
If you would like to display the page number of the current slide you can do so using the ```slideNumber``` configuration value.
```javascript
+// Shows the slide number using default formatting
Reveal.configure({ slideNumber: true });
+
+// Slide number formatting can be configured using these variables:
+// h: current slide's horizontal index
+// v: current slide's vertical index
+// c: current slide index (flattened)
+// t: total number of slides (flattened)
+Reveal.configure({ slideNumber: 'c / t' });
+
```
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 );
}
}