mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
d9ef1a5bff
* docs: add scroll to the selected element * docs: scroll to root if element not found * docs: simplify code * docs: code cleanup * docs: fix comments (fix code formatting, check element only inside sidebar container)
55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
/* When in mobile layout, the anchor navigation for submenus
|
|
* doesn't work due to fixed body height when menu is toggled.
|
|
* This script intercepts clicks on links, toggles the menu off
|
|
* and performs the anchor navigation. */
|
|
|
|
window.addEventListener("load", function () {
|
|
let href = window.location.pathname;
|
|
const hash = window.location.hash;
|
|
if (hash !== "") {
|
|
href = hash
|
|
}
|
|
const sidebar = document.querySelector('.sidebar .toctree');
|
|
const selector = function(href) {return `a[href="${href}"]`};
|
|
let element = sidebar.querySelector(selector(href));
|
|
if (!element) {
|
|
href = window.location.pathname;
|
|
element = document.querySelector(selector(href));
|
|
}
|
|
if (element) {
|
|
element.scrollIntoView({ behavior: "smooth" });
|
|
}
|
|
});
|
|
|
|
|
|
$(document).on("click", '.shift li.toc a', function(e) {
|
|
let segments = this.href.split('#');
|
|
if (segments.length < 2) {
|
|
/* ignore links without anchor */
|
|
return true;
|
|
}
|
|
|
|
e.preventDefault();
|
|
$("#toggle").click();
|
|
setTimeout(function () {
|
|
location.hash = segments.pop();
|
|
},1)
|
|
});
|
|
|
|
/* Clipboard-copy snippet from https://github.com/marcoaugustoandrade/jekyll-clipboardjs/blob/master/copy.js */
|
|
let codes = document.querySelectorAll('.with-copy .highlight > pre > code');
|
|
let countID = 0;
|
|
codes.forEach((code) => {
|
|
|
|
code.setAttribute("id", "code" + countID);
|
|
|
|
let btn = document.createElement('button');
|
|
btn.innerHTML = "Copy";
|
|
btn.className = "btn-copy";
|
|
btn.setAttribute("data-clipboard-action", "copy");
|
|
btn.setAttribute("data-clipboard-target", "#code" + countID);
|
|
code.before(btn);
|
|
countID++;
|
|
});
|
|
|
|
let clipboard = new ClipboardJS('.btn-copy');
|