Initial commit.

Signed-off-by: Andreas Widen <aw@luflow.net>
This commit is contained in:
Andreas Widen 2026-07-27 17:57:03 +02:00
commit a4a5c7daa5
Signed by: hfsoulz
GPG key ID: 5B85F9B5F576A667
1389 changed files with 241399 additions and 0 deletions

View file

@ -0,0 +1,39 @@
/* luflow.net web site */
/* Public domain 2025. All rights waived */
// copy code button:
let copyButtonLabel = 'Copy';
let codeBlocks = Array.from(document.querySelectorAll('pre'));
for (let codeBlock of codeBlocks) {
let wrapper = document.createElement('div');
wrapper.style.position = 'relative';
let copyButton = document.createElement('button');
copyButton.className = 'copy-code';
copyButton.innerHTML = copyButtonLabel;
codeBlock.setAttribute('tabindex', '0');
codeBlock.appendChild(copyButton);
// wrap codebock with relative parent element:
codeBlock.parentNode.insertBefore(wrapper, codeBlock);
wrapper.appendChild(codeBlock);
copyButton.addEventListener('click', async () => {
await copyCode(codeBlock, copyButton);
});
}
async function copyCode(block, button) {
let code = block.querySelector('code');
let text = code.innerText;
await navigator.clipboard.writeText(text);
// visual feedback that task is completed:
button.innerText = 'Copied!';
setTimeout(() => {
button.innerText = copyButtonLabel;
}, 700);
}