Add code copy button
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Isaac Mills 2024-04-23 08:44:25 -04:00
parent 90d78f9abb
commit 7f6548e805
Signed by: fnmain
GPG key ID: B67D7410F33A0F61
2 changed files with 13 additions and 17 deletions

View file

@ -1,7 +1,4 @@
.content pre button { .content code .a {
position: absolute;
top: 5px;
right: 5px;}.content code .a {
color: #483D8B; color: #483D8B;
} }
.content code .b { .content code .b {
@ -155,7 +152,6 @@
color: #483D8B; color: #483D8B;
} }
.content pre { .content pre {
position: relative;
border: 1px solid #999; border: 1px solid #999;
color: #000000; color: #000000;
background-color: #FFFFFF; background-color: #FFFFFF;

View file

@ -1,21 +1,21 @@
const copyButtonLabel = "Copy Code"; const copyButtonLabel = "Copy Code";
// use a class selector if available // use a class selector if available
let blocks = document.querySelectorAll("pre"); if (navigator.clipboard) {
let blocks = document.querySelectorAll("pre");
blocks.forEach((block) => { blocks.forEach((block) => {
// only add button if browser supports Clipboard API // only add button if browser supports Clipboard API
if (navigator.clipboard) {
let button = document.createElement("button"); let button = document.createElement("button");
button.innerText = copyButtonLabel; button.innerText = copyButtonLabel;
block.appendChild(button); block.parentNode.insertBefore(button, block);
button.addEventListener("click", async (event) => { button.addEventListener("click", async (event) => {
await copyCode(block, event.target); await copyCode(block, event.target);
}); });
} });
}); }
async function copyCode(block, button) { async function copyCode(block, button) {
let code = block.querySelector("code"); let code = block.querySelector("code");