From 8211f6d1a2f152fe8a1f5d81382d0947e9b7ad07 Mon Sep 17 00:00:00 2001 From: mayx Date: Wed, 16 Apr 2025 10:16:14 +0000 Subject: Update 2 files - /assets/css/style.scss - /assets/js/main.js--- assets/js/main.js | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'assets/js/main.js') diff --git a/assets/js/main.js b/assets/js/main.js index f4b2a99..faac621 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -41,7 +41,7 @@ $(function () { } }); -$(function() { +$(function () { const urlParams = new URLSearchParams(window.location.search); const keyword = urlParams.get('kw')?.trim(); @@ -54,7 +54,7 @@ $(function() { // 递归遍历并高亮文本节点 function highlightTextNodes(element) { - $(element).contents().each(function() { + $(element).contents().each(function () { if (this.nodeType === Node.TEXT_NODE) { const $this = $(this); const text = $this.text(); @@ -72,11 +72,38 @@ $(function() { }); } - $('section').each(function() { + $('section').each(function () { highlightTextNodes(this); }); }); +var codeBlocks = document.querySelectorAll('div.highlight'); + +codeBlocks.forEach(function (codeBlock) { + var copyButton = document.createElement('button'); + copyButton.className = 'copy'; + copyButton.type = 'button'; + copyButton.innerText = '📋'; + + codeBlock.append(copyButton); + + copyButton.addEventListener('click', function () { + var code = codeBlock.querySelector('pre code').innerText.trim(); + window.navigator.clipboard.writeText(code) + .then(() => { + copyButton.innerText = '✅'; + }) + .catch(err => { + copyButton.innerText = '❌'; + console.error('Failed to copy:', err); + }); + + setTimeout(function () { + copyButton.innerText = '📋'; + }, 1500); + }); +}); + today = new Date(); timeold = (today.getTime() - lastUpdated.getTime()); secondsold = Math.floor(timeold / 1000); -- cgit 1.4.1-2-gfad0