blob: 5501f85a58e526a91a147f5e3fa348f7b30cec43 [file] [log] [blame]
jQuery(function() {
window.idx = lunr(function () {
this.field('id');
this.field('title');
this.field('content', { boost: 10 });
this.field('categories');
});
window.data = $.getJSON('/search_data.json');
window.data.then(function(loaded_data){
$.each(loaded_data, function(index, value){
window.idx.add($.extend({ "id": index }, value));
});
});
$("#site_search").submit(function(event){
event.preventDefault();
var query = $("#search_box").val();
var results = window.idx.search(query);
display_search_results(query, results);
});
function display_search_results(query, results) {
var $search_status = $("#search_status");
var $search_results = $("#search_results");
window.data.then(function(loaded_data) {
if (results.length) {
$search_status.html('Found ' + results.length + ' results for "' + query + '"');
$search_results.empty();
results.forEach(function(result) {
var item = loaded_data[result.ref];
var n = item.content.search(query) - 50
if (n < 0) {
n = 0;
}
var appendString = '<tr><td><a href="' + item.url + '">' + item.title + '</a><td>' + item.content.substring(n, n+100) + '</tr>';
$search_results.append(appendString);
});
} else {
$search_status.html('No results found!');
}
});
}
});