/* * Every codeblock has "pre > code" structure, some highlighted codeblocks have * "div.highlight > pre.chroma > code" structure. So, use the simple CSS selector * to query all codeblocks. */ document.addEventListener("DOMContentLoaded", () => { var codeblocks = document.querySelectorAll(".single .content pre code"); console.log("codeblocks length:", codeblocks.length); codeblocks.forEach( (codeblock) => { let elementPre = codeblock.parentElement; let button = document.createElement("div"); button.classList.add("copyCodeButton"); button.innerHTML = "copy"; button.addEventListener("click", () => { navigator.clipboard.writeText(codeblock.textContent); button.innerHTML = "copied!"; setTimeout( () => { button.innerHTML = "copy"; }, 1000 ); } ); elementPre.appendChild(button); } ); } );