hugo-geekblog/src/js/copycode.js
Robert Kaussow d5f6cfb13e
refator: replace gulp by webpack and npm scripts (#129)
BREAKING CHANGE: We have replaced `gulp` with `webpack` and `npm scripts` to build this theme. If you build it on your own or use build commands during the deployment, you may have to adjust your setup.

BREAKING CHANGE: The `GeekblogIcons` font is using the icon name as Unicode now. As a consequence, you have to replace all references to Icons from this font if you have customized the theme.
2021-12-29 22:50:13 +01:00

24 lines
927 B
JavaScript

export function createCopyButton(highlightDiv) {
const button = document.createElement("span")
let selector = "pre > code"
if (highlightDiv.querySelector(".lntable")) {
selector = ".lntable .lntd:last-child pre > code"
}
const codeToCopy = highlightDiv.querySelector(selector).innerText.trim()
button.classList.add("flex", "align-center", "justify-center", "clip", "gblog-post__codecopy")
button.type = "button"
button.innerHTML =
'<svg class="icon copy"><use xlink:href="#gblog_copy"></use></svg>' +
'<svg class="icon check hidden"><use xlink:href="#gblog_check"></use></svg>'
button.setAttribute("data-clipboard-text", codeToCopy)
button.setAttribute("data-copy-feedback", "Copied!")
button.setAttribute("role", "button")
button.setAttribute("aria-label", "Copy")
highlightDiv.classList.add("gblog-post__codecontainer")
highlightDiv.insertBefore(button, highlightDiv.firstChild)
}