mirror of
https://github.com/BBaoVanC/bobatheme.git
synced 2024-11-17 13:25:57 -06:00
BBaoVanC
c980ced2fb
It's kind of ugly and weird, and probably not necessary. I might add it back in the future if it's actually needed again.
26 lines
1.1 KiB
JavaScript
26 lines
1.1 KiB
JavaScript
// code block copy to clipboard
|
|
window.onload = () => {
|
|
document.querySelectorAll(".code-block").forEach(codeBlock => {
|
|
const button = codeBlock.querySelector(".code-header > .code-copy-button");
|
|
|
|
// lang will not be unset because we default it to text
|
|
// clone it so it doesn't change the actual DOM element
|
|
const codeElem = codeBlock.querySelector("code[data-lang]").cloneNode(true);
|
|
// bashsession: remove command output lines
|
|
codeElem.querySelectorAll(".go").forEach(e => e.parentNode.removeChild(e));
|
|
// bashsession: remove prompt symbol
|
|
codeElem.querySelectorAll(".gp").forEach(e => e.parentNode.removeChild(e));
|
|
const rawCode = codeElem.innerText;
|
|
|
|
const originalCopyText = button.innerHTML;
|
|
button.onclick = event => {
|
|
navigator.clipboard.writeText(rawCode);
|
|
// TODO: maybe we could add a fancier indicator, like a flash or something
|
|
event.target.innerHTML = "Copied!";
|
|
setTimeout(() => {
|
|
event.target.innerHTML = originalCopyText;
|
|
}, 3000);
|
|
}
|
|
});
|
|
}
|