document.addEventListener("DOMContentLoaded", function () { var params = new URLSearchParams(window.location.search); var query = params.get("q"); var box = document.getElementById("search-box"); var resultsContainer = document.getElementById("search-results-list"); if (box && query) box.value = query; if (!query) { resultsContainer.innerHTML = "

Enter a search term above.

"; return; } fetch("/search.json") .then(function (response) { return response.json(); }) .then(function (data) { var q = query.toLowerCase(); var results = data.filter(function (item) { return ( item.title.toLowerCase().indexOf(q) !== -1 || item.content.toLowerCase().indexOf(q) !== -1 ); }); var esc = query.replace(//g, ">"); if (results.length === 0) { resultsContainer.innerHTML = '

No results found for "' + esc + '".

'; return; } var html = "

Found " + results.length + ' result(s) for "' + esc + '":

'; results.forEach(function (result) { var snippet = result.content.substring(0, 200); if (result.content.length > 200) snippet += "..."; html += '
'; html += '' + result.title + ""; if (snippet) html += "

" + snippet + "

"; html += "
"; }); resultsContainer.innerHTML = html; }) .catch(function () { resultsContainer.innerHTML = "

Error loading search index.

"; }); });