]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - doc/html/mkdocs/js/search.js
2 base_url
+ '/mkdocs/js/mustache.min.js',
3 base_url
+ '/mkdocs/js/lunr.min.js',
4 'text!search-results-template.mustache',
5 'text!../search_index.json',
6 ], function (Mustache
, lunr
, results_template
, data
) {
9 function getSearchTerm()
11 var sPageURL
= window
.location
.search
.substring(1);
12 var sURLVariables
= sPageURL
.split('&');
13 for (var i
= 0; i
< sURLVariables
.length
; i
++)
15 var sParameterName
= sURLVariables
[i
].split('=');
16 if (sParameterName
[0] == 'q')
18 return decodeURIComponent(sParameterName
[1].replace(/\+/g, '%20'));
23 var index
= lunr(function () {
24 this.field('title', {boost: 10});
29 data
= JSON
.parse(data
);
32 for (var i
=0; i
< data
.docs
.length
; i
++){
33 var doc
= data
.docs
[i
];
34 doc
.location
= base_url
+ doc
.location
;
36 documents
[doc
.location
] = doc
;
39 var search = function(){
41 var query
= document
.getElementById('mkdocs-search-query').value
;
42 var search_results
= document
.getElementById("mkdocs-search-results");
43 while (search_results
.firstChild
) {
44 search_results
.removeChild(search_results
.firstChild
);
51 var results
= index
.search(query
);
53 if (results
.length
> 0){
54 for (var i
=0; i
< results
.length
; i
++){
55 var result
= results
[i
];
56 doc
= documents
[result
.ref
];
57 doc
.base_url
= base_url
;
58 doc
.summary
= doc
.text
.substring(0, 200);
59 var html
= Mustache
.to_html(results_template
, doc
);
60 search_results
.insertAdjacentHTML('beforeend', html
);
63 search_results
.insertAdjacentHTML('beforeend', "<p>No results found</p>");
68 * We currently only automatically hide bootstrap models. This
69 * requires jQuery to work.
71 jQuery('#mkdocs_search_modal a').click(function(){
72 jQuery('#mkdocs_search_modal').modal('hide');
78 var search_input
= document
.getElementById('mkdocs-search-query');
80 var term
= getSearchTerm();
82 search_input
.value
= term
;
86 search_input
.addEventListener("keyup", search
);