summaryrefslogtreecommitdiff
path: root/assets/js/main.js
diff options
context:
space:
mode:
authormayx <mayx@outlook.com>2025-04-16 12:16:14 +0200
committermayx <mayx@outlook.com>2025-04-16 12:16:14 +0200
commit8211f6d1a2f152fe8a1f5d81382d0947e9b7ad07 (patch)
tree54097cd3a8da7fc74270efc3b531d0c62f3082ed /assets/js/main.js
parent8f440b43dd9135b319476f252b7a781738ae3aec (diff)
Update 2 files
- /assets/css/style.scss - /assets/js/main.js
Diffstat (limited to 'assets/js/main.js')
-rw-r--r--assets/js/main.js33
1 files changed, 30 insertions, 3 deletions
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);