From b6e10040f5e8fffe10ec0a01a12196d56337707f Mon Sep 17 00:00:00 2001 From: Jieiku Date: Sat, 15 Aug 2026 11:11:53 -0700 Subject: Update for Elasticlunr --- static/js/elasticlunr_bridge.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 static/js/elasticlunr_bridge.js (limited to 'static/js/elasticlunr_bridge.js') diff --git a/static/js/elasticlunr_bridge.js b/static/js/elasticlunr_bridge.js new file mode 100644 index 0000000..e2ff7ae --- /dev/null +++ b/static/js/elasticlunr_bridge.js @@ -0,0 +1,17 @@ +// Include immediately after elasticlunr.min.js in the JS bundle. +// +// elasticlunr's UMD assigns window.elasticlunr. Keep a local binding for search.js +// in this same bundle, and expose window.lunr only long enough for optional +// on-demand language packs (lunr.stemmer.support.min.js, lunr.fr.min.js, …). +// Those scripts mutate the same object; after they run we drop the global name. +var elasticlunr = window.elasticlunr; +try { delete window.elasticlunr; } catch (e) {} +window.lunr = elasticlunr; + +// head_js loads language scripts with defer, after this bundle. Deferred scripts +// run in document order before DOMContentLoaded, so stemmer/lang packs attach +// first; then we remove the temporary global. Local `elasticlunr` still has +// stemmerSupport / language plugins for search. +document.addEventListener("DOMContentLoaded", function () { + try { delete window.lunr; } catch (e) {} +}); -- cgit v1.3.1