Make lunr to load on search interaction as well

This commit is contained in:
Alex Shpak 2019-07-16 14:49:19 +02:00
parent 440ea834f7
commit 625f202275
4 changed files with 4 additions and 3 deletions

View file

@ -8,6 +8,7 @@
input.addEventListener("focus", init); input.addEventListener("focus", init);
function init() { function init() {
loadScript("{{ "lunr.min.js" | relURL }}")
loadScript("{{ $searchData.RelPermalink }}", function() { loadScript("{{ $searchData.RelPermalink }}", function() {
input.disabled = false; input.disabled = false;
input.addEventListener("keyup", search); input.addEventListener("keyup", search);

View file

@ -1,4 +1,5 @@
(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);function init(){loadScript("/example/search-data.min.cab714d6cdc1fd81a6e2d8e454a03c6b8c74b4680118a20d06f2f4cc11365cdf.js",function(){input.disabled=false;input.addEventListener("keyup",search);search();});input.removeEventListener("focus",init);} (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);function init(){loadScript("/example/lunr.min.js")
loadScript("/example/search-data.min.cab714d6cdc1fd81a6e2d8e454a03c6b8c74b4680118a20d06f2f4cc11365cdf.js",function(){input.disabled=false;input.addEventListener("keyup",search);search();});input.removeEventListener("focus",init);}
function search(){while(results.firstChild){results.removeChild(results.firstChild);} function search(){while(results.firstChild){results.removeChild(results.firstChild);}
if(input.value){const hits=window.bookSearch.idx.search(`${input.value}*`);hits.slice(0,10).forEach(function(hit){const page=window.bookSearch.pages[hit.ref];const li=dummy.querySelector("li").cloneNode(true),a=li.querySelector("a");a.href=page.href;a.textContent=page.title;results.appendChild(li);});}} if(input.value){const hits=window.bookSearch.idx.search(`${input.value}*`);hits.slice(0,10).forEach(function(hit){const page=window.bookSearch.pages[hit.ref];const li=dummy.querySelector("li").cloneNode(true),a=li.querySelector("a");a.href=page.href;a.textContent=page.title;results.appendChild(li);});}}
function loadScript(src,callback){const script=document.createElement("script");script.defer=true;script.src=src;script.onload=callback;document.head.append(script);}})(); function loadScript(src,callback){const script=document.createElement("script");script.defer=true;script.src=src;script.onload=callback;document.head.append(script);}})();

View file

@ -1 +1 @@
{"Target":"search.min.5ae5d994d1717ea382e93b3e44fb0739908cf020af0b39c2f591a91c7562b1bc.js","MediaType":"application/javascript","Data":{"Integrity":"sha256-WuXZlNFxfqOC6Ts+RPsHOZCM8CCvCznC9ZGpHHVisbw="}} {"Target":"search.min.afa201b2745d9b5797e20db513cc1109f4ab834ef3290ffc160dc856c39654ee.js","MediaType":"application/javascript","Data":{"Integrity":"sha256-r6IBsnRdm1eX4g21E8wRCfSrg07zKQ/8Fg3IVsOWVO4="}}

View file

@ -8,7 +8,6 @@
{{ if default true .Site.Params.BookSearch }} {{ if default true .Site.Params.BookSearch }}
{{- $searchJS := resources.Get "search.js" | resources.ExecuteAsTemplate "search.js" . | resources.Minify | resources.Fingerprint }} {{- $searchJS := resources.Get "search.js" | resources.ExecuteAsTemplate "search.js" . | resources.Minify | resources.Fingerprint }}
<script defer src="{{ "lunr.min.js" | relURL }}"></script>
<script defer src="{{ $searchJS.RelPermalink }}"></script> <script defer src="{{ $searchJS.RelPermalink }}"></script>
{{ end }} {{ end }}