dotfiles

My PC Dotfiles & Website

site/static/js/clipboard.js (1031B)


 1document.querySelectorAll("pre > code").forEach(function (codeBlock) {
 2  var button = document.createElement("button");
 3  button.className = "copy";
 4  button.type = "button";
 5  button.innerText = " Copy";
 6  button.addEventListener("click", function () {
 7    if (!navigator.clipboard) {
 8      button.innerText = "Select code to copy";
 9      return;
10    }
11    navigator.clipboard.writeText(codeBlock.innerText).then(
12      function () {
13        button.blur();
14        button.innerText = "Copied!";
15        setTimeout(function () {
16          button.innerText = " Copy";
17        }, 2000);
18      },
19      function (error) {
20        button.innerText = "Error";
21      },
22    );
23  });
24
25  var pre = codeBlock.parentNode;
26  pre.tabIndex = 0;
27  var block = pre.parentNode.classList.contains("highlight")
28    ? pre.parentNode
29    : pre;
30
31  var wrapper = document.createElement("div");
32  wrapper.className = "code-wrapper";
33  block.parentNode.insertBefore(wrapper, block);
34  wrapper.appendChild(block);
35  wrapper.appendChild(button);
36});