Correct "copy" src block function

This commit is contained in:
tdehaeze committed 2021-01-01 18:02:41 +01:00
1 parent d89f8538c3
commit b59cc4841f
6 files changed
+321 -270

No files matched your search

+140 -109
View File
@@ -1,140 +1,179 @@
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
// Blocks
docReady(function() {
var boxesNames = {
"seealso": "See also",
"definition": "Definition",
"exampl": "Example",
"exercice": "Exercice",
"question": "Question",
"summary": "Summary",
"note": "Note",
"answer": "Answer",
"hint": "Hint",
"important": "Important",
"caution": "Caution",
"warning": "Warning"
};
for (var className in boxesNames) {
let boxes = document.querySelectorAll('div.' + className);
docReady(function () {
var boxesNames = {
"seealso": "See also",
"definition": "Definition",
"exampl": "Example",
"exercice": "Exercice",
"question": "Question",
"summary": "Summary",
"note": "Note",
"answer": "Answer",
"hint": "Hint",
"important": "Important",
"caution": "Caution",
"warning": "Warning"
};
for (let box of boxes) {
let boxTitle = document.createElement('p');
boxTitle.className = "admonition-title " + className;
boxTitle.textContent = boxesNames[className];
for (var className in boxesNames) {
var boxes = document.querySelectorAll('div.' + className);
box.parentNode.insertBefore(boxTitle, box);
}
var _iterator = _createForOfIteratorHelper(boxes),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var box = _step.value;
var boxTitle = document.createElement('p');
boxTitle.className = "admonition-title " + className;
boxTitle.textContent = boxesNames[className];
box.parentNode.insertBefore(boxTitle, box);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
});
}
}); // Copy Source Block
// Copy Source Block
docReady(function() {
let srcContainers = document.querySelectorAll('pre.src');
docReady(function () {
var srcContainers = document.querySelectorAll('pre.src');
function copyClickFunction() {
// Create a clone the node to not affect the original one
let nodeClone = this.parentNode.cloneNode(true);
function copyClickFunction() {
var boxCopy = this; // Create a clone the node to not affect the original one
// 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]);
}
var nodeClone = boxCopy.parentNode.cloneNode(true); // Remove Line Numbers and Copy Button
// Copy the filetered content to the clipboard
let srcText = nodeClone.textContent;
navigator.clipboard.writeText(srcText).then(function() {
boxCopy.textContent = "Copied";
boxCopy.classList.add("src-copied");
setTimeout(function() {
boxCopy.textContent = "Copy";
boxCopy.classList.remove("src-copied");
}, 2000);
});
}
var linenumNodes = nodeClone.querySelectorAll('.linenr,.src-copy');
for (let srcContrainer of srcContainers) {
let boxCopy = document.createElement('div');
boxCopy.className = "src-copy";
for (var i = linenumNodes.length - 1; i >= 0; --i) {
nodeClone.removeChild(linenumNodes[i]);
} // Copy the filetered content to the clipboard
var srcText = nodeClone.textContent;
navigator.clipboard.writeText(srcText).then(function () {
boxCopy.textContent = "Copied";
boxCopy.classList.add("src-copied");
setTimeout(function () {
boxCopy.textContent = "Copy";
boxCopy.classList.remove("src-copied");
}, 2000);
});
}
boxCopy.onclick = copyClickFunction;
var _iterator2 = _createForOfIteratorHelper(srcContainers),
_step2;
srcContrainer.prepend(boxCopy);
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var srcContrainer = _step2.value;
var boxCopy = document.createElement('div');
boxCopy.className = "src-copy";
boxCopy.textContent = "Copy";
boxCopy.onclick = copyClickFunction;
srcContrainer.prepend(boxCopy);
}
});
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
}); // Wrap Images and Tables
// Wrap Images and Tables
docReady(function() {
let wrap_elements = document.querySelectorAll('[float=wrap-right]');
for (let wrap_el of wrap_elements) {
wrap_el.closest('.figure').classList.add('wrap-right');
docReady(function () {
var wrap_elements = document.querySelectorAll('[float=wrap-right]');
var _iterator3 = _createForOfIteratorHelper(wrap_elements),
_step3;
try {
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
var wrap_el = _step3.value;
wrap_el.closest('.figure').classList.add('wrap-right');
}
} catch (err) {
_iterator3.e(err);
} finally {
_iterator3.f();
}
wrap_elements = document.querySelectorAll('[float=wrap-left]');
for (let wrap_el of wrap_elements) {
wrap_el.closest('.figure').classList.add('wrap-left');
wrap_elements = document.querySelectorAll('[float=wrap-left]');
var _iterator4 = _createForOfIteratorHelper(wrap_elements),
_step4;
try {
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
var _wrap_el = _step4.value;
_wrap_el.closest('.figure').classList.add('wrap-left');
}
});
} catch (err) {
_iterator4.e(err);
} finally {
_iterator4.f();
}
}); // Equivalent of Jquery $.ready
// 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);
}
}
// 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);
}
} // Load Jquery
// Load Jquery
var scr = document.createElement('script'),
var scr = document.createElement('script'),
head = document.head || document.getElementsByTagName('head')[0];
scr.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js';
scr.async = false; // optionally
head.insertBefore(scr, head.firstChild);
head.insertBefore(scr, head.firstChild); // Load Bootstrap.js
// Load Bootstrap.js
var scr = document.createElement('script'),
var scr = document.createElement('script'),
head = document.head || document.getElementsByTagName('head')[0];
scr.src = 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js';
scr.async = false; // optionally
head.insertBefore(scr, head.firstChild);
head.insertBefore(scr, head.firstChild); // After it is loaded
// After it is loaded
scr.addEventListener('load', () => {
$(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'});
scr.addEventListener('load', function () {
$(document).ready(function () {
$('#text-table-of-contents ul').first().addClass('nav'); // ScrollSpy also requires that we use
// a Bootstrap nav component.
// set the height of tableOfContents
var $postamble = $('#postamble');
var $tableOfContents = $('#table-of-contents');
$tableOfContents.css({paddingBottom: $postamble.outerHeight()});
$('body').scrollspy({
target: '#text-table-of-contents'
}); // set the height of tableOfContents
// add TOC button
var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
$('#content').prepend(toggleSidebar);
var $postamble = $('#postamble');
var $tableOfContents = $('#table-of-contents');
$tableOfContents.css({
paddingBottom: $postamble.outerHeight()
}); // add TOC button
// 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);
});
});
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
// function collapse_toc_elements_on_click (nav_li_a){
var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
var tocTitle = $('#table-of-contents').find('h2');
tocTitle.append(closeBtn);
});
}); // function collapse_toc_elements_on_click (nav_li_a){
// /*
// When an `a' element in the TOC is clicked, its parent
// `li' element's active attribute is toggled. This causes
@@ -144,7 +183,6 @@ scr.addEventListener('load', () => {
// */
// $(nav_li_a).parent().toggleClass("active");
// }
// $( document ).ready(function() {
// // When the document is loaded and ready, bind the
// // function `collapse_toc_elements_on_click' to the
@@ -153,9 +191,7 @@ scr.addEventListener('load', () => {
// collapse_toc_elements_on_click(this);
// });
// });
// $( document ).ready(function() {
// // Shift nav in mobile when clicking the menu.
// $(document).on('click', "[data-toggle='wy-nav-top']", function() {
// $("[data-toggle='wy-nav-shift']").toggleClass("shift");
@@ -172,28 +208,23 @@ scr.addEventListener('load', () => {
// // Make tables responsive
// $("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
// });
// $( 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'});
// // 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,
+1 -1
View File
@@ -1 +1 @@
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/fontawesome.min.css");html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:1rem;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}*{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}blockquote,q{quotes:none}blockquote:before,blockquote:after{content:'';content:none}q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}@use "sass:color";html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:16px;height:100%;overflow-x:hidden}body{background:#edf0f2;color:#404040;font-family:Roboto,sans-serif,FontAwesome;font-weight:400;margin:0;min-height:100%;overflow-x:hidden}#content{background:#fcfcfc;height:100%;min-height:100%;margin-left:300px;max-width:1200px;padding:1.618em 3.236em}a{color:#6b7adb;text-decoration:none;cursor:pointer}a:hover{outline:0;color:#6b7adb}a:visited{outline:0;color:#6b7adb}p{font-size:1rem;line-height:24px;margin:0 0 1.5em 0}b,strong{font-weight:700}i{font-style:italic}.underline{text-decoration:underline}code{background:#fff;border:solid 1px #e1e4e5;font-family:"Source Code Pro",monospace;font-size:0.75rem;max-width:100%;overflow-x:auto;padding:0 5px;white-space:nowrap}blockquote{background-color:#f0f0f0;border-left:5px solid #a3a3a3;font-style:italic;line-height:24px;margin:0px 0px 24px 0px;padding:6px 20px}blockquote>p{margin-bottom:1em}blockquote>p:last-child{margin-bottom:0}sub,sup{font-size:0.6rem;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}mark{background:#ff0;color:#000;font-style:italic;font-weight:700}small{font-size:0.85rem}img{-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}label{cursor:pointer;display:block;margin:0 0 0.3125em 0;color:#333;font-size:0.9rem}legend{border:0;margin-left:-7px;padding:0;white-space:normal;display:block;width:100%;padding:0;white-space:normal;margin-bottom:24px;font-size:1.5rem}.nav #content .admonition-title,#content .nav .admonition-title,.nav .icon{display:inline}.left{text-align:left}.center{text-align:center}.right{text-align:right}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}#content img{max-width:100%}#content .section>img,#content .section>a>img{margin-bottom:24px}.verse{border-left:5px solid #6AB0DE;background-color:#E7F2FA;padding:6px 20px;font-style:italic}#content .section ol p,#content .section ul p{margin-bottom:12px}#content h1 .headerlink,#content h2 .headerlink,#content h3 .headerlink,#content h4 .headerlink,#content h5 .headerlink,#content h6 .headerlink,#content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}#content h1 .headerlink:after,#content h2 .headerlink:after,#content h3 .headerlink:after,#content h4 .headerlink:after,#content h5 .headerlink:after,#content h6 .headerlink:after,#content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;font-weight:900;display:inline-block}#content h1:hover .headerlink,#content h2:hover .headerlink,#content h3:hover .headerlink,#content h4:hover .headerlink,#content h5:hover .headerlink,#content h6:hover .headerlink,#content dl dt:hover .headerlink{display:inline-block}#content .highlighted{background:#F1C40F;display:inline-block;font-weight:700;padding:0 6px}#content .footnote-reference,#content .citation-reference{vertical-align:super;font-size:0.9rem}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}.fa:before,#content h1 .headerlink:before,#content h2 .headerlink:before,#content h3 .headerlink:before,#content h4 .headerlink:before,#content h5 .headerlink:before,#content h6 .headerlink:before,#content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.Line truncated
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap");@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/fontawesome.min.css");html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:1rem;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}*{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}blockquote,q{quotes:none}blockquote:before,blockquote:after{content:'';content:none}q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}@use "sass:color";html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:16px;height:100%;overflow-x:hidden}body{background:#edf0f2;color:#404040;font-family:Roboto,sans-serif,FontAwesome;font-weight:400;margin:0;min-height:100%;overflow-x:hidden}#content{background:#fcfcfc;height:100%;min-height:100%;margin-left:300px;max-width:1200px;padding:1.618em 3.236em}a{color:#6b7adb;text-decoration:none;cursor:pointer}a:hover{outline:0;color:#6b7adb}a:visited{outline:0;color:#6b7adb}p{font-size:1rem;line-height:24px;margin:0 0 1.5em 0}b,strong{font-weight:700}i{font-style:italic}.underline{text-decoration:underline}code{background:#fff;border:solid 1px #e1e4e5;font-family:"Source Code Pro",monospace;font-size:0.75rem;max-width:100%;overflow-x:auto;padding:0 5px;white-space:nowrap}blockquote{background-color:#f0f0f0;border-left:5px solid #a3a3a3;font-style:italic;line-height:24px;margin:0px 0px 24px 0px;padding:6px 20px}blockquote>p{margin-bottom:1em}blockquote>p:last-child{margin-bottom:0}sub,sup{font-size:0.6rem;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}mark{background:#ff0;color:#000;font-style:italic;font-weight:700}small{font-size:0.85rem}img{-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}label{cursor:pointer;display:block;margin:0 0 0.3125em 0;color:#333;font-size:0.9rem}legend{border:0;margin-left:-7px;padding:0;white-space:normal;display:block;width:100%;padding:0;white-space:normal;margin-bottom:24px;font-size:1.5rem}.nav #content .admonition-title,#content .nav .admonition-title,.nav .icon{display:inline}.left{text-align:left}.center{text-align:center}.right{text-align:right}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}#content img{max-width:100%}#content .section>img,#content .section>a>img{margin-bottom:24px}.verse{border-left:5px solid #6AB0DE;background-color:#E7F2FA;padding:6px 20px;font-style:italic}#content .section ol p,#content .section ul p{margin-bottom:12px}#content h1 .headerlink,#content h2 .headerlink,#content h3 .headerlink,#content h4 .headerlink,#content h5 .headerlink,#content h6 .headerlink,#content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}#content h1 .headerlink:after,#content h2 .headerlink:after,#content h3 .headerlink:after,#content h4 .headerlink:after,#content h5 .headerlink:after,#content h6 .headerlink:after,#content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;font-weight:900;display:inline-block}#content h1:hover .headerlink,#content h2:hover .headerlink,#content h3:hover .headerlink,#content h4:hover .headerlink,#content h5:hover .headerlink,#content h6:hover .headerlink,#content dl dt:hover .headerlink{display:inline-block}#content .highlighted{background:#F1C40F;display:inline-block;font-weight:700;padding:0 6px}#content .footnote-reference,#content .citation-reference{vertical-align:super;font-size:0.9rem}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}.fa:before,#content h1 .headerlink:before,#content h2 .headerlink:before,#content h3 .headerlink:before,#content h4 .headerlink:before,#content h5 .headerlink:before,#content h6 .headerlink:before,#content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.Line truncated