require.config({ baseUrl: base_url + "/search/" }); require([ 'mustache.min', 'lunr.min', 'text!search-results-template.mustache', 'text!search_index.json', ], function (Mustache, lunr, results_template, data) { "use strict"; function getSearchTerm() { var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('&'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == 'q') { return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20')); } } } var index = lunr(function () { this.field('title', {boost: 10}); this.field('text'); this.ref('location'); }); data = JSON.parse(data); var documents = {}; for (var i=0; i < data.docs.length; i++){ var doc = data.docs[i]; doc.location = base_url + doc.location; index.add(doc); documents[doc.location] = doc; } var search = function(){ var query = document.getElementById('mkdocs-search-query').value; var search_results = document.getElementById("mkdocs-search-results"); while (search_results.firstChild) { search_results.removeChild(search_results.firstChild); } if(query === ''){ return; } var results = index.search(query); if (results.length > 0){ for (var i=0; i < results.length; i++){ var result = results[i]; doc = documents[result.ref]; doc.base_url = base_url; doc.summary = doc.text.substring(0, 200); var html = Mustache.to_html(results_template, doc); search_results.insertAdjacentHTML('beforeend', html); } } else { search_results.insertAdjacentHTML('beforeend', "

No results found

"); } if(jQuery){ /* * We currently only automatically hide bootstrap models. This * requires jQuery to work. */ jQuery('#mkdocs_search_modal a').click(function(){ jQuery('#mkdocs_search_modal').modal('hide'); }); } }; var search_input = document.getElementById('mkdocs-search-query'); var term = getSearchTerm(); if (term){ search_input.value = term; search(); } if (search_input){search_input.addEventListener("keyup", search);} });