From 7f3b64947606fee7f7fb82feb03d7be9cf6492a2 Mon Sep 17 00:00:00 2001 From: Timothy Vanderaerden Date: Thu, 16 Jun 2022 18:40:44 +0200 Subject: [PATCH] Fix loading serialized index from sessionStorage (#1579) --- assets/js/search-page.js | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/assets/js/search-page.js b/assets/js/search-page.js index 2869719ee..614e84a69 100644 --- a/assets/js/search-page.js +++ b/assets/js/search-page.js @@ -58,6 +58,7 @@ function loadIndex () { try { const serializedIndex = sessionStorage.getItem(indexStorageKey()) if (serializedIndex) { + registerElixirTokenFunction() return lunr.Index.load(JSON.parse(serializedIndex)) } else { return null @@ -97,24 +98,28 @@ function createIndex () { } function elixirTokenSplitter (builder) { - function elixirTokenFunction (token) { - const tokens = token - .toString() - .split(/\.|\/|_/) - .map(part => { - return token.clone().update(() => part) - }) + registerElixirTokenFunction() + builder.pipeline.before(lunr.stemmer, elixirTokenFunction) + builder.searchPipeline.before(lunr.stemmer, elixirTokenFunction) +} - if (tokens.length > 1) { - return [...tokens, token] - } +function elixirTokenFunction (token) { + const tokens = token + .toString() + .split(/\.|\/|_/) + .map(part => { + return token.clone().update(() => part) + }) - return tokens + if (tokens.length > 1) { + return [...tokens, token] } - lunr.Pipeline.registerFunction(elixirTokenFunction, 'elixirTokenSplitter') - builder.pipeline.before(lunr.stemmer, elixirTokenFunction) - builder.searchPipeline.before(lunr.stemmer, elixirTokenFunction) + return tokens +} + +function registerElixirTokenFunction () { + return lunr.Pipeline.registerFunction(elixirTokenFunction, 'elixirTokenSplitter') } function searchResultsToDecoratedSearchNodes (results) {