diff options
author | kshcherban <k.scherban@gmail.com> | 2014-11-19 00:21:24 +0300 |
---|---|---|
committer | kshcherban <k.scherban@gmail.com> | 2014-11-19 00:21:24 +0300 |
commit | c746b4a8b892bfacf9f70027cd258f779a756e70 (patch) | |
tree | 84aedde052fe1cf139682123dbe3ec67482f1c66 /static | |
parent | 3a6a118e223c11f25bc15f85dde52947fee2c1f8 (diff) |
Implemented tipuesearch static search
Diffstat (limited to 'static')
-rwxr-xr-x | static/tipuesearch/img/expand.png | bin | 0 -> 424 bytes | |||
-rwxr-xr-x | static/tipuesearch/img/link.png | bin | 0 -> 463 bytes | |||
-rw-r--r-- | static/tipuesearch/img/loader.gif | bin | 0 -> 4178 bytes | |||
-rwxr-xr-x | static/tipuesearch/tipuesearch.css | 132 | ||||
-rw-r--r-- | static/tipuesearch/tipuesearch.min.js | 12 | ||||
-rw-r--r-- | static/tipuesearch/tipuesearch_set.js | 52 |
6 files changed, 196 insertions, 0 deletions
diff --git a/static/tipuesearch/img/expand.png b/static/tipuesearch/img/expand.png Binary files differnew file mode 100755 index 0000000..21bb7b0 --- /dev/null +++ b/static/tipuesearch/img/expand.png diff --git a/static/tipuesearch/img/link.png b/static/tipuesearch/img/link.png Binary files differnew file mode 100755 index 0000000..d4e51c5 --- /dev/null +++ b/static/tipuesearch/img/link.png diff --git a/static/tipuesearch/img/loader.gif b/static/tipuesearch/img/loader.gif Binary files differnew file mode 100644 index 0000000..9c97738 --- /dev/null +++ b/static/tipuesearch/img/loader.gif diff --git a/static/tipuesearch/tipuesearch.css b/static/tipuesearch/tipuesearch.css new file mode 100755 index 0000000..153bab3 --- /dev/null +++ b/static/tipuesearch/tipuesearch.css @@ -0,0 +1,132 @@ + +/* +Tipue Search 3.0.1 +Copyright (c) 2013 Tipue +Tipue Search is released under the MIT License +http://www.tipue.com/search +*/ + + +#tipue_search_content +{ + clear: left; + max-width: 650px; + padding: 25px 0 13px 0; + margin: 0; +} +#tipue_search_loading +{ + padding-top: 60px; + background: #fff url('img/loader.gif') no-repeat left; +} +#tipue_search_warning +{ + font: 12px/1.6 'open sans', sans-serif; + color: #333; + margin: 7px 0; +} +#tipue_search_warning a +{ + color: #3f72d8; + text-decoration: none; +} +#tipue_search_warning a:hover +{ + padding-bottom: 1px; + border-bottom: 1px solid #ccc; +} +#tipue_search_results_count, #tipue_search_warning_head +{ + padding: 5px 5px 15px 5px; + margin: 20px 0px 20px 0px; + border-bottom: 1px solid rgb(143, 134, 134); + font-size: 1.3em; +} +.tipue_search_content_title +{ + font: 300 23px/1.6 'open sans', sans-serif; + margin-top: 20px; +} +.tipue_search_content_title a +{ + color: #3f72d8; + text-decoration: none; +} +.tipue_search_content_title a:hover +{ + padding-bottom: 1px; + border-bottom: 1px solid #ccc; +} +.tipue_search_content_text +{ + font-size: 1em; + line-height: 1.6em; + color: #333; + font-variant: normal; + text-transform: none; + padding: 13px 0; +} + +.tipue_search_content_text b { + color:#EF1D1D; + font-family:Garamond; + font-size: 1.3em; +} +.tipue_search_content_loc +{ + font: 300 13px/1.7 'open sans', sans-serif; + overflow: auto; +} +.tipue_search_content_loc a +{ + text-decoration: none; + margin-bottom: 1.5rem; +} +.tipue_search_content_loc a:hover +{ + padding-bottom: 1px; + border-bottom: 1px solid #ccc; +} +#tipue_search_foot +{ + margin: 51px 0 21px 0; +} +#tipue_search_foot_boxes +{ + padding: 0; + margin: 0; + font: 12px/1 'open sans', sans-serif; +} +#tipue_search_foot_boxes li +{ + list-style: none; + margin: 0; + padding: 0; + display: inline; +} +#tipue_search_foot_boxes li a +{ + padding: 7px 13px 8px 13px; + background-color: #f1f1f1; + border: 1px solid #dcdcdc; + border-radius: 1px; + color: #333; + margin-right: 7px; + text-decoration: none; + text-align: center; +} +#tipue_search_foot_boxes li.current +{ + padding: 7px 13px 8px 13px; + background: #fff; + border: 1px solid #dcdcdc; + border-radius: 1px; + color: #333; + margin-right: 7px; + text-align: center; +} +#tipue_search_foot_boxes li a:hover +{ + border: 1px solid #ccc; + background-color: #f3f3f3; +} diff --git a/static/tipuesearch/tipuesearch.min.js b/static/tipuesearch/tipuesearch.min.js new file mode 100644 index 0000000..6458659 --- /dev/null +++ b/static/tipuesearch/tipuesearch.min.js @@ -0,0 +1,12 @@ +(function($){$.fn.tipuesearch=function(options){var set=$.extend({"show":7,"newWindow":false,"showURL":true,"minimumLength":3,"descriptiveWords":25,"highlightTerms":true,"highlightEveryTerm":false,"mode":"static","liveDescription":"*","liveContent":"*","contentLocation":"tipuesearch/tipuesearch_content.json"},options);return this.each(function(){var tipuesearch_in={pages:[]};$.ajaxSetup({async:false});if(set.mode=="live")for(var i=0;i<tipuesearch_pages.length;i++)$.get(tipuesearch_pages[i],"",function(html){var cont= +$(set.liveContent,html).text();cont=cont.replace(/\s+/g," ");var desc=$(set.liveDescription,html).text();desc=desc.replace(/\s+/g," ");var t_1=html.toLowerCase().indexOf("<title>");var t_2=html.toLowerCase().indexOf("</title>",t_1+7);if(t_1!=-1&&t_2!=-1)var tit=html.slice(t_1+7,t_2);else var tit="No title";tipuesearch_in.pages.push({"title":tit,"text":desc,"tags":cont,"loc":tipuesearch_pages[i]})});if(set.mode=="json")$.getJSON(set.contentLocation,function(json){tipuesearch_in=$.extend({},json)}); +if(set.mode=="static")tipuesearch_in=$.extend({},tipuesearch);var tipue_search_w="";if(set.newWindow)tipue_search_w=' target="_blank"';function getURLP(name){return decodeURIComponent(((new RegExp("[?|&]"+name+"="+"([^&;]+?)(&|#|;|$)")).exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null}if(getURLP("q")){$("#tipue_search_input").val(getURLP("q"));getTipueSearch(0,true)}$("#tipue_search_button").click(function(){getTipueSearch(0,true)});$(this).keyup(function(event){if(event.keyCode=="13")getTipueSearch(0, +true)});function getTipueSearch(start,replace){$("#tipue_search_content").hide();var out="";var results="";var show_replace=false;var show_stop=false;var d=$("#tipue_search_input").val().toLowerCase();d=$.trim(d);var d_w=d.split(" ");d="";for(var i=0;i<d_w.length;i++){var a_w=true;for(var f=0;f<tipuesearch_stop_words.length;f++)if(d_w[i]==tipuesearch_stop_words[f]){a_w=false;show_stop=true}if(a_w)d=d+" "+d_w[i]}d=$.trim(d);d_w=d.split(" ");if(d.length>=set.minimumLength){if(replace){var d_r=d;for(var i= +0;i<d_w.length;i++)for(var f=0;f<tipuesearch_replace.words.length;f++)if(d_w[i]==tipuesearch_replace.words[f].word){d=d.replace(d_w[i],tipuesearch_replace.words[f].replace_with);show_replace=true}d_w=d.split(" ")}var d_t=d;for(var i=0;i<d_w.length;i++)for(var f=0;f<tipuesearch_stem.words.length;f++)if(d_w[i]==tipuesearch_stem.words[f].word)d_t=d_t+" "+tipuesearch_stem.words[f].stem;d_w=d_t.split(" ");var c=0;found=new Array;for(var i=0;i<tipuesearch_in.pages.length;i++){var score=1E9;var s_t=tipuesearch_in.pages[i].text; +for(var f=0;f<d_w.length;f++){var pat=new RegExp(d_w[f],"i");if(tipuesearch_in.pages[i].title.search(pat)!=-1)score-=2E5-i;if(tipuesearch_in.pages[i].text.search(pat)!=-1)score-=15E4-i;if(set.highlightTerms){if(set.highlightEveryTerm)var patr=new RegExp("("+d_w[f]+")","gi");else var patr=new RegExp("("+d_w[f]+")","i");s_t=s_t.replace(patr,"<b>$1</b>")}if(tipuesearch_in.pages[i].tags.search(pat)!=-1)score-=1E5-i}if(score<1E9)found[c++]=score+"^"+tipuesearch_in.pages[i].title+"^"+s_t+"^"+tipuesearch_in.pages[i].loc}if(c!= +0){if(show_replace==1){out+='<div id="tipue_search_warning_head">Showing results for '+d+"</div>";out+='<div id="tipue_search_warning">Search for <a href="javascript:void(0)" id="tipue_search_replaced">'+d_r+"</a></div>"}if(c==1)out+='<div id="tipue_search_results_count">1 result</div>';else{c_c=c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");out+='<div id="tipue_search_results_count">'+c_c+" results</div>"}found.sort();var l_o=0;for(var i=0;i<found.length;i++){var fo=found[i].split("^");if(l_o>= +start&&l_o<set.show+start){out+='<div class="tipue_search_content_title"><a href="'+fo[3]+'"'+tipue_search_w+">"+fo[1]+"</a></div>";var t=fo[2];var t_d="";var t_w=t.split(" ");if(t_w.length<set.descriptiveWords)t_d=t;else for(var f=0;f<set.descriptiveWords;f++)t_d+=t_w[f]+" ";t_d=$.trim(t_d);if(t_d.charAt(t_d.length-1)!=".")t_d+=" ...";out+='<div class="tipue_search_content_text">'+t_d+"</div>";if(set.showURL){t_url=fo[3];if(t_url.length>45)t_url=fo[3].substr(0,45)+" ...";out+='<div class="tipue_search_content_loc"><a href="'+ +fo[3]+'"'+tipue_search_w+">"+t_url+"</a></div>"}}l_o++}if(c>set.show){var pages=Math.ceil(c/set.show);var page=start/set.show;out+='<div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">';if(start>0)out+='<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="'+(start-set.show)+"_"+replace+'">Prev</a></li>';if(page<=2){var p_b=pages;if(pages>3)p_b=3;for(var f=0;f<p_b;f++)if(f==page)out+='<li class="current">'+(f+1)+"</li>";else out+='<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="'+ +f*set.show+"_"+replace+'">'+(f+1)+"</a></li>"}else{var p_b=page+3;if(p_b>pages)p_b=pages;for(var f=page;f<p_b;f++)if(f==page)out+='<li class="current">'+(f+1)+"</li>";else out+='<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="'+f*set.show+"_"+replace+'">'+(f+1)+"</a></li>"}if(page+1!=pages)out+='<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="'+(start+set.show)+"_"+replace+'">Next</a></li>';out+="</ul></div>"}}else out+='<div id="tipue_search_warning_head">Nothing found</div>'}else if(show_stop)out+= +'<div id="tipue_search_warning_head">Nothing found</div><div id="tipue_search_warning">Common words are largely ignored</div>';else{out+='<div id="tipue_search_warning_head">Search too short</div>';if(set.minimumLength==1)out+='<div id="tipue_search_warning">Should be one character or more</div>';else out+='<div id="tipue_search_warning">Should be '+set.minimumLength+" characters or more</div>"}$("#tipue_search_content").html(out);$("#tipue_search_content").slideDown(200);$("#tipue_search_replaced").click(function(){getTipueSearch(0, +false)});$(".tipue_search_foot_box").click(function(){var id_v=$(this).attr("id");var id_a=id_v.split("_");getTipueSearch(parseInt(id_a[0]),id_a[1])})}})}})(jQuery); diff --git a/static/tipuesearch/tipuesearch_set.js b/static/tipuesearch/tipuesearch_set.js new file mode 100644 index 0000000..1d9242b --- /dev/null +++ b/static/tipuesearch/tipuesearch_set.js @@ -0,0 +1,52 @@ + +/* +Tipue Search 3.0.1 +Copyright (c) 2013 Tipue +Tipue Search is released under the MIT License +http://www.tipue.com/search +*/ + + +var tipuesearch_stop_words = ["and", "be", "by", "do", "for", "he", "how", "if", "is", "it", "my", "not", "of", "or", "the", "to", "up", "what", "when"]; + +var tipuesearch_replace = {"words": [ + {"word": "tipua", replace_with: "tipue"}, + {"word": "javscript", replace_with: "javascript"} +]}; + +var tipuesearch_stem = {"words": [ + {"word": "e-mail", stem: "email"}, + {"word": "javascript", stem: "script"}, + {"word": "javascript", stem: "js"} +]}; + +var tipuesearch_pages; + +exclude_pages = ['/archives.html', '/tags.html', '/index.html', '/categories.html', '/search.html']; + +function showGetResult() +{ + var result = new Array(); + var scriptUrl = 'sitemap.xml'; + $.ajax({ + url: scriptUrl, + type: 'GET', + dataType: 'xml', + async: false, + success: function(xml) { + $(xml).find('url').each(function(){ + var loc = $(this).find('loc').text(); + if ($.inArray(loc, exclude_pages) < 0) { + result.push(loc); + } + }); + }, + error: function() { + alert('An error occurred while processing XML file.'); + } + }); + return result; +} + +var r = showGetResult(); +tipuesearch_pages = r; |