summaryrefslogtreecommitdiff
path: root/themes/hexo-theme-freemind.bithack/source/js/search.js
diff options
context:
space:
mode:
Diffstat (limited to 'themes/hexo-theme-freemind.bithack/source/js/search.js')
m---------themes/hexo-theme-freemind.bithack0
-rw-r--r--themes/hexo-theme-freemind.bithack/source/js/search.js1
2 files changed, 1 insertions, 0 deletions
diff --git a/themes/hexo-theme-freemind.bithack b/themes/hexo-theme-freemind.bithack
deleted file mode 160000
-Subproject db335ebdc14507c7687084da084a56eb3d003f1
diff --git a/themes/hexo-theme-freemind.bithack/source/js/search.js b/themes/hexo-theme-freemind.bithack/source/js/search.js
new file mode 100644
index 0000000..93dfdcb
--- /dev/null
+++ b/themes/hexo-theme-freemind.bithack/source/js/search.js
@@ -0,0 +1 @@
+var searchFunc=function(path,search_id,content_id){$.ajax({url:path,dataType:"xml",success:function(xmlResponse){var datas=$("entry",xmlResponse).map(function(){return{title:$("title",this).text(),content:$("content",this).text(),url:$("url",this).text()};}).get();var $input=document.getElementById(search_id);var $resultContent=document.getElementById(content_id);if(!$input){return;}$input.addEventListener("input",function(){var str='<ul class="search-result-list">';var keywords=this.value.trim().toLowerCase().split(/[\s\-]+/);$resultContent.innerHTML="";if(this.value.trim().length<=0){return;}datas.forEach(function(data){var isMatch=true;var content_index=[];var data_title=data.title.trim().toLowerCase();var data_content=data.content.trim().replace(/<[^>]+>/g,"").toLowerCase();var data_url=data.url;var index_title=-1;var index_content=-1;var first_occur=-1;if(data_title!=""&&data_content!=""){keywords.forEach(function(keyword,i){index_title=data_title.indexOf(keyword);index_content=data_content.indexOf(keyword);if(index_title<0&&index_content<0){isMatch=false;}else{if(index_content<0){index_content=0;}if(i==0){first_occur=index_content;}}});}if(isMatch){str+="<li><a href='"+data_url+"' class='search-result-title'>"+data_title+"</a>";var content=data.content.trim().replace(/<[^>]+>/g,"");if(first_occur>=0){var start=first_occur-20;var end=first_occur+80;if(start<0){start=0;}if(start==0){end=100;}if(end>content.length){end=content.length;}var match_content=content.substr(start,end);keywords.forEach(function(keyword){var regS=new RegExp(keyword,"gi");match_content=match_content.replace(regS,'<em class="search-keyword">'+keyword+"</em>");});str+='<p class="search-result">'+match_content+"...</p>";}str+="</li>";}});str+="</ul>";$resultContent.innerHTML=str;});}});}; \ No newline at end of file