search.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. document.addEventListener('DOMContentLoaded', function () {
  2. const searchInput = document.getElementById('search-input');
  3. const resultsContainer = document.getElementById('results');
  4. // Fetch the search index
  5. fetch('/search-index.json')
  6. .then(response => response.json())
  7. .then(searchIndex => {
  8. searchInput.addEventListener('input', function () {
  9. const query = searchInput.value.toLowerCase();
  10. const results = search(query, searchIndex);
  11. // Clear previous results
  12. resultsContainer.innerHTML = '';
  13. // Display new results
  14. results.forEach(function (result) {
  15. const li = document.createElement('li');
  16. li.textContent = `${result.item.title}: ${result.item.content}`
  17. resultsContainer.appendChild(li);
  18. });
  19. });
  20. })
  21. .catch(error => console.error('Error fetching search index:', error));
  22. function search(query, data) {
  23. const options = {
  24. keys: ['title', 'content'],
  25. };
  26. const fuse = new Fuse(data, options); // Create an empty Fuse object
  27. return fuse.search(query);
  28. }
  29. });