diff options
Diffstat (limited to 'static/js/copy-code.js')
-rw-r--r-- | static/js/copy-code.js | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/static/js/copy-code.js b/static/js/copy-code.js index ee7cdc7..2de3cda 100644 --- a/static/js/copy-code.js +++ b/static/js/copy-code.js @@ -1,37 +1,34 @@ document.addEventListener("DOMContentLoaded", function () { - const codeBlocks = document.querySelectorAll(".highlight") + const codeBlocks = document.querySelectorAll("pre"); codeBlocks.forEach((codeBlock) => { - if (codeBlock.className == "mermaid") return - const copyButton = document.createElement("button") - copyButton.className = "copy-code-button" - copyButton.textContent = "copy" - const copyButtonContainer = document.createElement("div") - copyButtonContainer.className = "copy-code-container" - copyButtonContainer.appendChild(copyButton) + if (codeBlock.className == "mermaid") return; + const copyButton = document.createElement("button"); + copyButton.className = "copy-code-button"; + copyButton.textContent = "copy"; // Insert the button inside the <pre> block - codeBlock.appendChild(copyButton) + codeBlock.appendChild(copyButton); copyButton.addEventListener("click", function () { - const code = codeBlock.querySelector("code") + const code = codeBlock.querySelector("code"); // Get the code content - const textToCopy = code.textContent || code.innerText + const textToCopy = code.textContent || code.innerText; // Use the Clipboard API to copy the text navigator.clipboard .writeText(textToCopy) .then(() => { // Change button text to "Copied" - copyButton.textContent = "copied" + copyButton.textContent = "copied"; setTimeout(() => { - copyButton.textContent = "copy" - }, 2000) // Reset the button text after 2 seconds + copyButton.textContent = "copy"; + }, 2000); // Reset the button text after 2 seconds }) .catch((err) => { - console.error("Unable to copy text:", err) - }) - }) - }) -}) + console.error("Unable to copy text:", err); + }); + }); + }); +}); |