Skip to content

Commit 7b7064a

Browse files
committed
fix: ensure code exists inside pre before adding clipboard
1 parent ca17af4 commit 7b7064a

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

quartz/components/scripts/clipboard.inline.ts

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,27 @@ document.addEventListener("nav", () => {
77
const els = document.getElementsByTagName("pre")
88
for (let i = 0; i < els.length; i++) {
99
const codeBlock = els[i].getElementsByTagName("code")[0]
10-
const source = codeBlock.innerText.replace(/\n\n/g, "\n")
11-
const button = document.createElement("button")
12-
button.className = "clipboard-button"
13-
button.type = "button"
14-
button.innerHTML = svgCopy
15-
button.ariaLabel = "Copy source"
16-
button.addEventListener("click", () => {
17-
navigator.clipboard.writeText(source).then(
18-
() => {
19-
button.blur()
20-
button.innerHTML = svgCheck
21-
setTimeout(() => {
22-
button.innerHTML = svgCopy
23-
button.style.borderColor = ""
24-
}, 2000)
25-
},
26-
(error) => console.error(error),
27-
)
28-
})
29-
els[i].prepend(button)
10+
if (codeBlock) {
11+
const source = codeBlock.innerText.replace(/\n\n/g, "\n")
12+
const button = document.createElement("button")
13+
button.className = "clipboard-button"
14+
button.type = "button"
15+
button.innerHTML = svgCopy
16+
button.ariaLabel = "Copy source"
17+
button.addEventListener("click", () => {
18+
navigator.clipboard.writeText(source).then(
19+
() => {
20+
button.blur()
21+
button.innerHTML = svgCheck
22+
setTimeout(() => {
23+
button.innerHTML = svgCopy
24+
button.style.borderColor = ""
25+
}, 2000)
26+
},
27+
(error) => console.error(error),
28+
)
29+
})
30+
els[i].prepend(button)
31+
}
3032
}
3133
})

0 commit comments

Comments
 (0)