summaryrefslogtreecommitdiff
path: root/assets/js/clipboard.js
blob: aaac12cc44f6a239b1d02e1bd6b7bd69725ebbbd (plain)
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
const createCopyButton = (codeElement) => {
    const img = document.createElement('img');
    img.classList.add('copy-code');
    img.src = '/assets/copy.svg';

    img.addEventListener('click', () => {
        var codeText = codeElement.querySelector('.rouge-code pre').textContent;
        navigator.clipboard.writeText(codeText).then(() => {
            img.style.border = "1px solid #00ff00";
        }).catch((err) => {
            console.error('Failed to copy text: ', err);
        });
    });

    return img;
};

window.addEventListener('DOMContentLoaded', function() {
        const codeElements = document.querySelectorAll('code');
	codeElements.forEach((codeElement) => {
	    const parentElement = codeElement.parentElement;
	    if (parentElement && parentElement.classList.contains('highlight')) {
	        const copyButton = createCopyButton(codeElement);
	        codeElement.insertBefore(copyButton, codeElement.firstChild);
	    }
	});
});