1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Description="Adds copy to clipboard button to HTML output (beta)."
Categories = {"format", "html", "usability" }
function syntaxUpdate(desc)
if (HL_OUTPUT ~= HL_FORMAT_HTML and HL_OUTPUT ~= HL_FORMAT_XHTML) then
return
end
function DecorateLineBegin(lineNumber)
if lineNumber==1 then
return '<input type="button" value="📋" class="hl_copy" style="position: absolute;right: 1em;">'
end
end
FooterInjection=[=[
<script type="text/javascript">
/* <![CDATA[ */
const hlButtons = document.querySelectorAll('input.hl_copy');
hlButtons.forEach(cpButton => {
cpButton.addEventListener('click', () => {
const selection = window.getSelection();
const range = document.createRange();
range.selectNodeContents(cpButton.parentNode);
selection.removeAllRanges();
selection.addRange(range);
try {
document.execCommand('copy');
selection.removeAllRanges();
cpButton.value = "Copied.";
} catch(e) {
}
});
});
/* ]]> */
</script>
]=]
end
Plugins={
{ Type="lang", Chunk=syntaxUpdate },
}
|