summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimotheus Kampik <timotheus.kampik@signavio.com>2015-10-04 19:44:17 +0200
committerTimotheus Kampik <timotheus.kampik@signavio.com>2015-10-04 19:44:17 +0200
commit1b80100dffc2e3bcab2ac7825d2ec7fcfbd941fb (patch)
treeeed1c6f9a58b87c3ba07f2b94b8115f0ee24d552
parent470bac3d1c17f2728573f96c2864ab07918692d2 (diff)
downloadsphinx-git-1b80100dffc2e3bcab2ac7825d2ec7fcfbd941fb.tar.gz
HTML doc: navigate with left/right arrow keys
Adjusted basic theme's JS accordingly
-rw-r--r--AUTHORS2
-rw-r--r--CHANGES1
-rw-r--r--sphinx/themes/basic/static/doctools.js25
3 files changed, 27 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index c31cb6976..c823072bb 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -28,7 +28,7 @@ Other contributors, listed alphabetically, are:
* Horst Gutmann -- internationalization support
* Martin Hans -- autodoc improvements
* Doug Hellmann -- graphviz improvements
-* Timotheus Kampik - stop words language fix
+* Timotheus Kampik - JS enhancements, stop words language fix
* Takeshi Komiya -- numref feature
* Dave Kuhlman -- original LaTeX writer
* Blaise Laflamme -- pyramid theme
diff --git a/CHANGES b/CHANGES
index a0ac757d3..7b637443f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -14,6 +14,7 @@ Features added
* C++ type alias support (e.g., ``.. type:: T = int``)
* C++ template support for classes, functions, type aliases, and variables (#1729, #1314).
* C++, added new scope management directives ``namespace-push`` and ``namespace-pop``.
+* #1970: Keyboard shortcuts to navigate Next and Previous topics
Bugs fixed
----------
diff --git a/sphinx/themes/basic/static/doctools.js b/sphinx/themes/basic/static/doctools.js
index c7bfe760a..07a6355af 100644
--- a/sphinx/themes/basic/static/doctools.js
+++ b/sphinx/themes/basic/static/doctools.js
@@ -124,6 +124,7 @@ var Documentation = {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
+ this.initOnKeyListeners();
},
/**
@@ -252,6 +253,30 @@ var Documentation = {
});
var url = parts.join('/');
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+ },
+
+ /**
+ * init onKeyListernes (for navigation)
+ */
+ initOnKeyListeners: function() {
+ $(document).keyup(function(event) {
+ if (!$(document.activeElement).is('input')) { //don't navigate when in search box
+ switch (event.keyCode) {
+ case 37: //left
+ var prevElement = $('link[rel="prev"]')[0];
+ if (prevElement) {
+ window.location.href = prevElement.href;
+ }
+ break;
+ case 39: //right
+ var nextElement = $('link[rel="next"]')[0];
+ if (nextElement) {
+ window.location.href = nextElement.href;
+ }
+ break;
+ }
+ }
+ });
}
};