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.

'; }); });