aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--js/reveal.js32
2 files changed, 29 insertions, 7 deletions
diff --git a/README.md b/README.md
index 9d71472..9a2d516 100644
--- a/README.md
+++ b/README.md
@@ -231,6 +231,10 @@ Reveal.initialize({
// Turns fragments on and off globally
fragments: true,
+ // Flags whether to include the current fragment in the URL,
+ // so that reloading brings you to the same fragment position
+ fragmentInURL: false,
+
// Flags if the presentation is running in an embedded mode,
// i.e. contained within a limited portion of the screen
embedded: false,
diff --git a/js/reveal.js b/js/reveal.js
index f125c55..8edf66a 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -102,6 +102,10 @@
// Turns fragments on and off globally
fragments: true,
+ // Flags whether to include the current fragment in the URL,
+ // so that reloading brings you to the same fragment position
+ fragmentInURL: false,
+
// Flags if the presentation is running in an embedded mode,
// i.e. contained within a limited portion of the screen
embedded: false,
@@ -3709,10 +3713,14 @@
else {
// Read the index components of the hash
var h = parseInt( bits[0], 10 ) || 0,
- v = parseInt( bits[1], 10 ) || 0;
+ v = parseInt( bits[1], 10 ) || 0,
+ f;
+ if( config.fragmentInURL ) {
+ f = parseInt( bits[2], 10 ) || undefined;
+ }
- if( h !== indexh || v !== indexv ) {
- slide( h, v );
+ if( h !== indexh || v !== indexv || f !== undefined ) {
+ slide( h, v, f );
}
}
@@ -3745,14 +3753,21 @@
id = id.replace( /[^a-zA-Z0-9\-\_\:\.]/g, '' );
}
- // If the current slide has an ID, use that as a named link
- if( typeof id === 'string' && id.length ) {
+ var indexf;
+ if( config.fragmentInURL ) {
+ indexf = getIndices().f;
+ }
+
+ // If the current slide has an ID, use that as a named link,
+ // but we don't support named links with a fragment index
+ if( typeof id === 'string' && id.length && indexf === undefined ) {
url = '/' + id;
}
// Otherwise use the /h/v index
else {
- if( indexh > 0 || indexv > 0 ) url += indexh;
- if( indexv > 0 ) url += '/' + indexv;
+ if( indexh > 0 || indexv > 0 || indexf !== undefined ) url += indexh;
+ if( indexv > 0 || indexf !== undefined ) url += '/' + indexv;
+ if( indexf !== undefined ) url += '/' + indexf;
}
window.location.hash = url;
@@ -4089,6 +4104,9 @@
updateControls();
updateProgress();
+ if( config.fragmentInURL ) {
+ writeURL();
+ }
return !!( fragmentsShown.length || fragmentsHidden.length );