diff options
Diffstat (limited to 'assets/js/clipboard.js')
-rw-r--r-- | assets/js/clipboard.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/assets/js/clipboard.js b/assets/js/clipboard.js new file mode 100644 index 0000000..aaac12c --- /dev/null +++ b/assets/js/clipboard.js @@ -0,0 +1,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);
+ }
+ });
+});
|