Update 3 files

- /assets/js/main.js
- /assets/js/main_new.js
- /_layouts/default.html
This commit is contained in:
mayx 2025-05-11 16:12:22 +00:00
parent 97e0ef3c81
commit ac554c5535
3 changed files with 91 additions and 94 deletions

View File

@ -20,8 +20,8 @@
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
<!--[if !IE]> -->
<script src="/assets/js/jquery.min.js"></script>
<!--[if !IE]> -->
{% if site.google_analytics %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
@ -141,8 +141,9 @@
</footer>
</div>
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
<!--[if !IE]> -->
<script src="/assets/js/main.js"></script>
<!--[if !IE]> -->
<script src="/assets/js/main_new.js"></script>
<script src="/Live2dHistoire/live2d/js/live2d.js"></script>
<script src="/Live2dHistoire/live2d/js/message.js"></script>
<!-- <![endif]-->

View File

@ -13,28 +13,19 @@ var talkAPI = BlogAPI + "/ai_chat";
$(function () { $backToTopFun(); });
})();
$(function () {
$("div#landlord").mouseenter(function () {
$("div.live_ico_box").fadeIn();
});
$("div#landlord").mouseleave(function () {
$("div.live_ico_box").fadeOut();
});
function showHitS(hits) {
$.get(BlogAPI + "/count_click?id=" + hits.id, function (data) {
hits.innerHTML = Number(data);
function showHitCount() {
$(".visitors-index").each(function() {
var $elem = $(this);
$.get(BlogAPI + "/count_click?id=" + $elem.attr('id'), function(data) {
$elem.text(Number(data));
});
});
}
function showHitCount() {
var visitors = $(".visitors-index");
for (var i = 0; i < visitors.length; i++) {
showHitS(visitors[i]);
}
}
function addCount() {
var visitors = $(".visitors");
$.get(BlogAPI + "/count_click_add?id=" + visitors[0].id, function (data) {
visitors[0].innerHTML = Number(data);
var $visitor = $(".visitors:first");
$.get(BlogAPI + "/count_click_add?id=" + $visitor.attr('id'), function(data) {
$visitor.text(Number(data));
});
}
if ($('.visitors').length == 1) {
@ -44,79 +35,6 @@ $(function () {
}
});
$(function () {
const urlParams = new URLSearchParams(window.location.search);
const keyword = urlParams.get('kw')?.trim();
if (!keyword) return;
// 转义正则表达式特殊字符,避免安全问题
const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
// 创建不区分大小写的正则表达式(全局匹配)
const regex = new RegExp(`(${escapedKeyword})`, 'gi');
// 递归遍历并高亮文本节点
const escapeHTML = str => str.replace(/[&<>"']/g,
tag => ({
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;'
}[tag] || tag));
function highlightTextNodes(element) {
$(element).contents().each(function () {
if (this.nodeType === Node.TEXT_NODE) {
const $this = $(this);
const text = escapeHTML($this.text());
// 使用正则替换并保留原始大小写
if (regex.test(text)) {
const replaced = text.replace(regex, '<mark>$1</mark>');
$this.replaceWith(replaced);
}
} else if (
this.nodeType === Node.ELEMENT_NODE &&
!$(this).is('script, style, noscript, textarea')
) {
highlightTextNodes(this);
}
});
}
$('section').each(function () {
highlightTextNodes(this);
});
});
$(function () {
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);

78
assets/js/main_new.js Normal file
View File

@ -0,0 +1,78 @@
$(function () {
$("div#landlord").mouseenter(function () {
$("div.live_ico_box").fadeIn();
});
$("div#landlord").mouseleave(function () {
$("div.live_ico_box").fadeOut();
});
const urlParams = new URLSearchParams(window.location.search);
const keyword = urlParams.get('kw')?.trim();
if (!keyword) return;
// 转义正则表达式特殊字符,避免安全问题
const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
// 创建不区分大小写的正则表达式(全局匹配)
const regex = new RegExp(`(${escapedKeyword})`, 'gi');
// 递归遍历并高亮文本节点
const escapeHTML = str => str.replace(/[&<>"']/g,
tag => ({
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;'
}[tag] || tag));
function highlightTextNodes(element) {
$(element).contents().each(function () {
if (this.nodeType === Node.TEXT_NODE) {
const $this = $(this);
const text = escapeHTML($this.text());
// 使用正则替换并保留原始大小写
if (regex.test(text)) {
const replaced = text.replace(regex, '<mark>$1</mark>');
$this.replaceWith(replaced);
}
} else if (
this.nodeType === Node.ELEMENT_NODE &&
!$(this).is('script, style, noscript, textarea')
) {
highlightTextNodes(this);
}
});
}
$('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);
});
});
});