From a0eb8c0a0e8ac883860a2e7342c39563d4827192 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 20 Feb 2025 23:07:16 +0100 Subject: [PATCH] Remove JSON search file --- src/renderer/html_handlebars/search.rs | 1 - src/theme/searcher/searcher.js | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/renderer/html_handlebars/search.rs b/src/renderer/html_handlebars/search.rs index d3f67fed..a47b6d2a 100644 --- a/src/renderer/html_handlebars/search.rs +++ b/src/renderer/html_handlebars/search.rs @@ -64,7 +64,6 @@ pub fn create_files( } if search_config.copy_js { - static_files.add_builtin("searchindex.json", index.as_bytes()); static_files.add_builtin( "searchindex.js", format!("Object.assign(window.search, {});", index).as_bytes(), diff --git a/src/theme/searcher/searcher.js b/src/theme/searcher/searcher.js index a2392f3d..bb2cf0b1 100644 --- a/src/theme/searcher/searcher.js +++ b/src/theme/searcher/searcher.js @@ -363,7 +363,7 @@ window.search = window.search || {}; } } } - + function showSearch(yes) { if (yes) { search_wrap.classList.remove('hidden'); @@ -441,7 +441,6 @@ window.search = window.search || {}; } function doSearch(searchterm) { - // Don't search the same twice if (current_searchterm == searchterm) { return; } else { current_searchterm = searchterm; } @@ -468,15 +467,18 @@ window.search = window.search || {}; showResults(true); } - fetch(path_to_root + '{{ resource "searchindex.json" }}') - .then(response => response.json()) - .then(json => init(json)) - .catch(error => { // Try to load searchindex.js if fetch failed - var script = document.createElement('script'); - script.src = path_to_root + '{{ resource "searchindex.js" }}'; - script.onload = () => init(window.search); - document.head.appendChild(script); - }); + function loadScript(url, id) { + const script = document.createElement('script'); + script.src = url; + script.id = id; + script.onload = () => init(window.search); + script.onerror = error => { + console.error(`Failed to load \`${url}\`: ${error}`); + }; + document.head.append(script); + } + + loadScript(path_to_root + '{{ resource "searchindex.js" }}', 'search-index'); // Exported functions search.hasFocus = hasFocus;