diff options
Diffstat (limited to 'static/js/search.js')
-rw-r--r-- | static/js/search.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/static/js/search.js b/static/js/search.js new file mode 100644 index 0000000..62bcbbb --- /dev/null +++ b/static/js/search.js @@ -0,0 +1,27 @@ +fetch('/index.json') + .then(response => response.json()) + .then(data => { + const fuse = new Fuse(data, { + keys: ['title', 'contents', 'tags'], + includeScore: true + }); + document.getElementById('search-input').addEventListener('input', function (e) { + const results = fuse.search(e.target.value); + displayResults(results); + }); + }); + +function displayResults(results) { + const searchResults = document.getElementById('search-results'); + searchResults.innerHTML = ''; + if (results.length > 0) { + searchResults.classList.remove("hidden"); + } else { + searchResults.classList.add("hidden"); + } + results.forEach(result => { + const elem = document.createElement('div'); + elem.innerHTML = `<a class="list-group-item list-group-item-action" href="${result.item.permalink}">${result.item.title}</a></a`; + searchResults.appendChild(elem); + }); +} |