mirror of
https://github.com/Mabbs/mabbs.github.io
synced 2025-07-21 00:12:02 +00:00
Update 3 files
- /assets/js/main.js - /assets/js/main_new.js - /_layouts/default.html
This commit is contained in:
parent
97e0ef3c81
commit
ac554c5535
@ -20,8 +20,8 @@
|
|||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|
||||||
<!--[if !IE]> -->
|
|
||||||
<script src="/assets/js/jquery.min.js"></script>
|
<script src="/assets/js/jquery.min.js"></script>
|
||||||
|
<!--[if !IE]> -->
|
||||||
{% if site.google_analytics %}
|
{% if site.google_analytics %}
|
||||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||||
@ -141,8 +141,9 @@
|
|||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
|
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
|
||||||
<!--[if !IE]> -->
|
|
||||||
<script src="/assets/js/main.js"></script>
|
<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/live2d.js"></script>
|
||||||
<script src="/Live2dHistoire/live2d/js/message.js"></script>
|
<script src="/Live2dHistoire/live2d/js/message.js"></script>
|
||||||
<!-- <![endif]-->
|
<!-- <![endif]-->
|
||||||
|
@ -13,28 +13,19 @@ var talkAPI = BlogAPI + "/ai_chat";
|
|||||||
$(function () { $backToTopFun(); });
|
$(function () { $backToTopFun(); });
|
||||||
})();
|
})();
|
||||||
$(function () {
|
$(function () {
|
||||||
$("div#landlord").mouseenter(function () {
|
function showHitCount() {
|
||||||
$("div.live_ico_box").fadeIn();
|
$(".visitors-index").each(function() {
|
||||||
});
|
var $elem = $(this);
|
||||||
$("div#landlord").mouseleave(function () {
|
$.get(BlogAPI + "/count_click?id=" + $elem.attr('id'), function(data) {
|
||||||
$("div.live_ico_box").fadeOut();
|
$elem.text(Number(data));
|
||||||
});
|
});
|
||||||
function showHitS(hits) {
|
|
||||||
$.get(BlogAPI + "/count_click?id=" + hits.id, function (data) {
|
|
||||||
hits.innerHTML = Number(data);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function showHitCount() {
|
|
||||||
var visitors = $(".visitors-index");
|
|
||||||
for (var i = 0; i < visitors.length; i++) {
|
|
||||||
showHitS(visitors[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
function addCount() {
|
function addCount() {
|
||||||
var visitors = $(".visitors");
|
var $visitor = $(".visitors:first");
|
||||||
$.get(BlogAPI + "/count_click_add?id=" + visitors[0].id, function (data) {
|
$.get(BlogAPI + "/count_click_add?id=" + $visitor.attr('id'), function(data) {
|
||||||
visitors[0].innerHTML = Number(data);
|
$visitor.text(Number(data));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ($('.visitors').length == 1) {
|
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 => ({
|
|
||||||
'&': '&',
|
|
||||||
'<': '<',
|
|
||||||
'>': '>',
|
|
||||||
'"': '"',
|
|
||||||
"'": '''
|
|
||||||
}[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();
|
today = new Date();
|
||||||
timeold = (today.getTime() - lastUpdated.getTime());
|
timeold = (today.getTime() - lastUpdated.getTime());
|
||||||
secondsold = Math.floor(timeold / 1000);
|
secondsold = Math.floor(timeold / 1000);
|
||||||
|
78
assets/js/main_new.js
Normal file
78
assets/js/main_new.js
Normal 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 => ({
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": '''
|
||||||
|
}[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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user