org-theme/js/script.js

151 lines
5.1 KiB
JavaScript
Raw Normal View History

2020-11-26 10:59:16 +01:00
// Blocks
docReady(function() {
var boxesNames = {
"seealso": "See also",
"definition": "Definition",
"exampl": "Example",
"question": "Question",
"summary": "Summary",
"hint": "Hint",
"important": "Important",
"caution": "Caution",
"warning": "Warning"
}
for (var className in boxesNames) {
let boxes = document.querySelectorAll('div.' + className)
for (let box of boxes) {
let boxTitle = document.createElement('p')
boxTitle.className = "admonition-title " + className
boxTitle.textContent = boxesNames[className]
box.parentNode.insertBefore(boxTitle, box);
}
}
2020-11-25 23:22:07 +01:00
});
2020-11-26 10:59:16 +01:00
// Copy Source Block
docReady(function() {
2020-11-26 15:58:26 +01:00
let srcContainers = document.querySelectorAll('pre.src')
2020-11-26 10:59:16 +01:00
for (let srcContrainer of srcContainers) {
let boxCopy = document.createElement('div')
boxCopy.className = "src-copy"
boxCopy.textContent = "Copy"
2020-11-26 15:58:26 +01:00
2020-11-26 10:59:16 +01:00
boxCopy.onclick = function() {
2020-11-26 19:57:07 +01:00
// Create a clone the node to not affect the original one
let nodeClone = this.parentNode.cloneNode(true)
// Remove Line Numbers and Copy Button
let linenumNodes = nodeClone.querySelectorAll('.linenr,.src-copy')
for (var i = linenumNodes.length - 1 ; i >= 0 ; --i) {
nodeClone.removeChild(linenumNodes[i])
}
// Copy the filetered content to the clipboard
let srcText = nodeClone.textContent
2020-11-26 15:58:26 +01:00
navigator.clipboard.writeText(srcText).then(function() {
2020-11-26 10:59:16 +01:00
boxCopy.textContent = "Copied"
2020-11-26 15:58:26 +01:00
boxCopy.classList.add("src-copied")
setTimeout(function() {
boxCopy.textContent = "Copy"
boxCopy.classList.remove("src-copied")
2020-11-26 19:57:07 +01:00
}, 2000);
2020-11-26 10:59:16 +01:00
});
}
2020-11-25 23:22:07 +01:00
2020-11-26 10:59:16 +01:00
srcContrainer.prepend(boxCopy);
}
2020-11-25 23:22:07 +01:00
});
2020-11-26 10:59:16 +01:00
// var $ = require('jquery');
2020-11-25 23:22:07 +01:00
2020-11-26 10:59:16 +01:00
// // Table of Contents
// $( document ).ready(function() {
2020-11-25 23:22:07 +01:00
2020-11-26 10:59:16 +01:00
// // Shift nav in mobile when clicking the menu.
// $(document).on('click', "[data-toggle='wy-nav-top']", function() {
// $("[data-toggle='wy-nav-shift']").toggleClass("shift");
// $("[data-toggle='rst-versions']").toggleClass("shift");
// });
// // Close menu when you click a link.
// $(document).on('click', ".wy-menu-vertical .current ul li a", function() {
// $("[data-toggle='wy-nav-shift']").removeClass("shift");
// $("[data-toggle='rst-versions']").toggleClass("shift");
// });
// $(document).on('click', "[data-toggle='rst-current-version']", function() {
// $("[data-toggle='rst-versions']").toggleClass("shift-up");
// });
// // Make tables responsive
// $("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
// });
2020-11-25 23:22:07 +01:00
2020-11-26 10:59:16 +01:00
// $( document ).ready(function() {
// $('#text-table-of-contents ul').first().addClass('nav');
// // ScrollSpy also requires that we use
// // a Bootstrap nav component.
// $('body').scrollspy({target: '#text-table-of-contents'});
// // add sticky table headers
// // $('table').stickyTableHeaders();
// // set the height of tableOfContents
// var $postamble = $('#postamble');
// var $tableOfContents = $('#table-of-contents');
// $tableOfContents.css({paddingBottom: $postamble.outerHeight()});
// // add TOC button
// var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
// $('#content').prepend(toggleSidebar);
// // add close button when sidebar showed in mobile screen
// var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
// var tocTitle = $('#table-of-contents').find('h2');
// tocTitle.append(closeBtn);
// });
// window.SphinxRtdTheme = (function (jquery) {
// var stickyNav = (function () {
// var navBar,
// win,
// stickyNavCssClass = 'stickynav',
// applyStickNav = function () {
// if (navBar.height() <= win.height()) {
// navBar.addClass(stickyNavCssClass);
// } else {
// navBar.removeClass(stickyNavCssClass);
// }
// },
// enable = function () {
// applyStickNav();
// win.on('resize', applyStickNav);
// },
// init = function () {
// navBar = jquery('nav.wy-nav-side:first');
// win = jquery(window);
// };
// jquery(init);
// return {
// enable : enable
// };
// }());
// return {
// StickyNav : stickyNav
// };
// }($));
2020-11-25 23:22:07 +01:00
2020-11-26 10:59:16 +01:00
// Equivalent of Jquery $.ready
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
// call on next available tick
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}