mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-10-30 05:21:41 +08: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…
	
		Reference in New Issue
	
	Block a user
	 mayx
						mayx