From 712dab5c8cd8933d9cdb63d4c833940c461a09da Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 31 Jan 2023 19:00:28 +0000
Subject: [PATCH] docs: remove broken links from showcase

---
 assets/js/clipboard.js |   55 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/assets/js/clipboard.js b/assets/js/clipboard.js
index 6389330..10e02c6 100644
--- a/assets/js/clipboard.js
+++ b/assets/js/clipboard.js
@@ -8,31 +8,38 @@
     let els = document.getElementsByClassName("highlight");
     // for each highlight
     for (let i = 0; i < els.length; i++) {
-        if (els[i].getElementsByClassName("clipboard-button").length) continue;
+        try {
+            if (els[i].getElementsByClassName("clipboard-button").length) continue;
 
-        // find pre > code inside els[i]
-        let codeBlocks = els[i].getElementsByTagName("code");
+            // find pre > code inside els[i]
+            let codeBlocks = els[i].getElementsByTagName("code");
 
-         // line numbers are inside first code block
-        let lastCodeBlock = codeBlocks[codeBlocks.length - 1];
-        const button = document.createElement("button");
-        button.className = "clipboard-button";
-        button.type = "button";
-        button.innerHTML = svgCopy;
-        // remove every second newline from lastCodeBlock.innerText
-        button.addEventListener("click", () => {
-            navigator.clipboard.writeText(lastCodeBlock.innerText.replace(/\n\n/g, "\n")).then(
-                () => {
-                    button.blur();
-                    button.innerHTML = svgCheck;
-                    setTimeout(() => (button.innerHTML = svgCopy), 2000);
-                },
-                (error) => (button.innerHTML = "Error")
-            );
-        });
-        // find chroma inside els[i]
-        let chroma = els[i].getElementsByClassName("chroma")[0];
-        els[i].insertBefore(button, chroma);
-        console.log(els[i].lastChild)
+            // line numbers are inside first code block
+            let lastCodeBlock = codeBlocks[codeBlocks.length - 1];
+            const button = document.createElement("button");
+            button.className = "clipboard-button";
+            button.type = "button";
+            button.innerHTML = svgCopy;
+            button.ariaLabel = "opy the shown code";
+            // remove every second newline from lastCodeBlock.innerText
+            button.addEventListener("click", () => {
+                navigator.clipboard.writeText(lastCodeBlock.innerText.replace(/\n\n/g, "\n")).then(
+                  () => {
+                      button.blur();
+                      button.innerHTML = svgCheck;
+                      setTimeout(() => {
+                          button.innerHTML = svgCopy
+                          button.style.borderColor = ""
+                      }, 2000);
+                  },
+                  (error) => (button.innerHTML = "Error")
+                );
+            });
+            // find chroma inside els[i]
+            let chroma = els[i].getElementsByClassName("chroma")[0];
+            els[i].insertBefore(button, chroma);
+        } catch(error) {
+            console.debug(error);
+        }
     }
 }

--
Gitblit v1.10.0