diff options
author | Alex Shpak <alex-shpak@users.noreply.github.com> | 2019-07-17 17:56:12 +0200 |
---|---|---|
committer | Alex Shpak <alex-shpak@users.noreply.github.com> | 2019-08-06 11:33:42 +0200 |
commit | 469d9d88cd35c62b7f399e0b0dfdc339bc3f0055 (patch) | |
tree | 9869b68ced85a3ecf058657bf6a658f9d7ae28b7 /assets/search.js | |
parent | f56f2bf04dd6cd69e95304d5926c1229f2064d3a (diff) |
Show progressbar while loading lunr and data
Diffstat (limited to 'assets/search.js')
-rw-r--r-- | assets/search.js | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/assets/search.js b/assets/search.js index eb38c1d..3cc9702 100644 --- a/assets/search.js +++ b/assets/search.js @@ -3,19 +3,20 @@ (function() { const input = document.querySelector("#book-search-input"); const results = document.querySelector("#book-search-results"); - const dummy = document.querySelector("#book-search-dummy"); input.addEventListener("focus", init); input.addEventListener("keyup", search); function init() { - loadScript("{{ "lunr.min.js" | relURL }}") + input.removeEventListener("focus", init); //init once + input.required = true; + + loadScript("{{ "lunr.min.js" | relURL }}"); loadScript("{{ $searchData.RelPermalink }}", function() { input.readOnly = false; + input.required = false; search(); }); - - input.removeEventListener("focus", init); } function search() { @@ -23,18 +24,18 @@ results.removeChild(results.firstChild); } - if (!input.value || !window.bookSearch) { - return + if (!input.value) { + return; } const terms = lunr.tokenizer(input.value); const searchHits = window.bookSearch.idx.query(function(query) { query.term(terms, { - boost: 100, + boost: 100 }); query.term(terms, { boost: 10, - wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING, + wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING }); query.term(terms, { editDistance: 2 @@ -43,8 +44,8 @@ searchHits.slice(0, 10).forEach(function(hit) { const page = window.bookSearch.pages[hit.ref]; - const li = dummy.querySelector("li").cloneNode(true), - a = li.querySelector("a"); + const li = document.createElement("li"), + a = li.appendChild(document.createElement("a")); a.href = page.href; a.textContent = page.title; |