summaryrefslogtreecommitdiffstats
path: root/docs/site/js/base.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/site/js/base.js')
-rw-r--r--docs/site/js/base.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/docs/site/js/base.js b/docs/site/js/base.js
new file mode 100644
index 0000000..7f18720
--- /dev/null
+++ b/docs/site/js/base.js
@@ -0,0 +1,53 @@
+
+/* Highlight */
+$( document ).ready(function() {
+ hljs.initHighlightingOnLoad();
+ $('table').addClass('table');
+});
+
+
+/* Scrollspy */
+var navHeight = $('.navbar').outerHeight(true) + 10
+
+$('body').scrollspy({
+ target: '.bs-sidebar',
+ offset: navHeight
+})
+
+
+/* Prevent disabled links from causing a page reload */
+$("li.disabled a").click(function() {
+ event.preventDefault();
+});
+
+
+/* Adjust the scroll height of anchors to compensate for the fixed navbar */
+window.disableShift = false;
+var shiftWindow = function() {
+ if (window.disableShift) {
+ window.disableShift = false;
+ } else {
+ /* If we're at the bottom of the page, don't erronously scroll up */
+ var scrolledToBottomOfPage = (
+ (window.innerHeight + window.scrollY) >= document.body.offsetHeight
+ );
+ if (!scrolledToBottomOfPage) {
+ scrollBy(0, -60);
+ };
+ };
+};
+if (location.hash) {shiftWindow();}
+window.addEventListener("hashchange", shiftWindow);
+
+
+/* Deal with clicks on nav links that do not change the current anchor link. */
+$("ul.nav a" ).click(function() {
+ var href = this.href;
+ var suffix = location.hash;
+ var matchesCurrentHash = (href.indexOf(suffix, href.length - suffix.length) !== -1);
+ if (location.hash && matchesCurrentHash) {
+ /* Force a single 'hashchange' event to occur after the click event */
+ window.disableShift = true;
+ location.hash='';
+ };
+});