mirror of
https://github.com/Mabbs/mabbs.github.io
synced 2025-07-20 08:12:02 +00:00
Update 2 files
- /js/main.js - /search.html
This commit is contained in:
parent
eee3103f93
commit
1b4fd0de9b
44
js/main.js
44
js/main.js
@ -41,6 +41,50 @@ $(function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
function getQueryVariable(variable){
|
||||||
|
var query = window.location.search.substring(1);
|
||||||
|
var vars = query.split("&");
|
||||||
|
for (var i=0;i<vars.length;i++) {
|
||||||
|
var pair = vars[i].split("=");
|
||||||
|
if(pair[0] == variable){return pair[1];}
|
||||||
|
}
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
var keyword = decodeURI(getQueryVariable("kw"));
|
||||||
|
|
||||||
|
if (!keyword) return;
|
||||||
|
|
||||||
|
// 转义正则表达式特殊字符,避免安全问题
|
||||||
|
const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||||
|
// 创建不区分大小写的正则表达式(全局匹配)
|
||||||
|
const regex = new RegExp(`(${escapedKeyword})`, 'gi');
|
||||||
|
|
||||||
|
// 递归遍历并高亮文本节点
|
||||||
|
function highlightTextNodes(element) {
|
||||||
|
$(element).contents().each(function() {
|
||||||
|
if (this.nodeType === Node.TEXT_NODE) {
|
||||||
|
const $this = $(this);
|
||||||
|
const text = $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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
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);
|
||||||
|
@ -8,8 +8,7 @@ title: 搜索
|
|||||||
<ul id="results-container"></ul>
|
<ul id="results-container"></ul>
|
||||||
<script src="/js/simple-jekyll-search.min.js"></script>
|
<script src="/js/simple-jekyll-search.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
function getQueryVariable(variable)
|
function getQueryVariable(variable){
|
||||||
{
|
|
||||||
var query = window.location.search.substring(1);
|
var query = window.location.search.substring(1);
|
||||||
var vars = query.split("&");
|
var vars = query.split("&");
|
||||||
for (var i=0;i<vars.length;i++) {
|
for (var i=0;i<vars.length;i++) {
|
||||||
@ -29,7 +28,7 @@ getSearchJSON(function(json){
|
|||||||
searchInput: sbox,
|
searchInput: sbox,
|
||||||
resultsContainer: document.getElementById('results-container'),
|
resultsContainer: document.getElementById('results-container'),
|
||||||
json: json,
|
json: json,
|
||||||
searchResultTemplate: '<p><li>{date} - <a href="{url}">{title}</a></li></p>',
|
searchResultTemplate: '<p><li>{date} - <a href="{url}?kw={query}">{title}</a></li></p>',
|
||||||
limit: 20
|
limit: 20
|
||||||
});
|
});
|
||||||
sjs.search(mykeyword);
|
sjs.search(mykeyword);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user