1window.publiiStaticSearchInitCallback=function(t){window.publiiStaticSearch.indexLoaded||(window.publiiStaticSearch.cachedItems=t,window.publiiStaticSearch.initIndex())},window.publiiStaticSearch={cachedItems:null,searchIndex:null,indexLoaded:!1,htmlLoaded:!1,useDocumentIndex:!1,UI:{customTrigger:null,smallSearchInput:null,smallSearchForm:null,input:null,overlay:null,popupContent:null,emptyState:null,tooShortPhraseState:null,noResultsState:null,listWithResults:null,listWithResultsContent:null},config:{minCharCount:window.publiiStaticSearchConfig.minCharCount,maxResultsCount:window.publiiStaticSearchConfig.maxResultsCount,engineSettings:{tokenize:window.publiiStaticSearchConfig.engineSettings.tokenize,charset:window.publiiStaticSearchConfig.engineSettings.charset,language:window.publiiStaticSearchConfig.engineSettings.language,cache:window.publiiStaticSearchConfig.engineSettings.cache,suggest:window.publiiStaticSearchConfig.engineSettings.suggest,enableHighlighting:window.publiiStaticSearchConfig.engineSettings.enableHighlighting,highlightingScope:window.publiiStaticSearchConfig.engineSettings.highlightingScope||"description"},indexSettings:{resultsDescription:window.publiiStaticSearchConfig.indexSettings.resultsDescription,indexPostTitles:window.publiiStaticSearchConfig.indexSettings.indexPostTitles,indexPostExcerpts:window.publiiStaticSearchConfig.indexSettings.indexPostExcerpts,indexPostHeadings:window.publiiStaticSearchConfig.indexSettings.indexPostHeadings,indexPostAuthors:window.publiiStaticSearchConfig.indexSettings.indexPostAuthors,indexPostMetaDescription:window.publiiStaticSearchConfig.indexSettings.indexPostMetaDescription,indexPageTitles:window.publiiStaticSearchConfig.indexSettings.indexPageTitles,indexPageExcerpts:window.publiiStaticSearchConfig.indexSettings.indexPageExcerpts,indexPageHeadings:window.publiiStaticSearchConfig.indexSettings.indexPageHeadings,indexPageMetaDescription:window.publiiStaticSearchConfig.indexSettings.indexPageMetaDescription,indexTagNames:window.publiiStaticSearchConfig.indexSettings.indexTagNames,indexTagDescription:window.publiiStaticSearchConfig.indexSettings.indexTagDescription,indexTagMetaDescription:window.publiiStaticSearchConfig.indexSettings.indexTagMetaDescription,indexPostConfig:window.publiiStaticSearchConfig.indexSettings.indexPostConfig,indexPageConfig:window.publiiStaticSearchConfig.indexSettings.indexPageConfig}},templates:{searchPopup:` 2 <div class="pss-results__wrapper"> 3 <div class="pss-results__searchbar"> 4 <input 5 class="pss-results__searchbar__input" 6 type="search" 7 placeholder="${window.publiiStaticSearchConfig.translations.inputPlaceholder}" /> 8 <svg 9 class="pss-results__searchbar__icon" 10 width="24" 11 height="24"
12 viewBox="0 0 24 24"> 13 <path d="M21.71,20.29,18,16.61A9,9,0,1,0,16.61,18l3.68,3.68a1,1,0,0,0,1.42,0A1,1,0,0,0,21.71,20.29ZM4,11a7,7,0,1,1,12,4.93h0s0,0,0,0A7,7,0,0,1,4,11Z"/> 14 </svg> 15 <button 16 class="pss-results__searchbar__btn" 17 type="button"> 18 ${window.publiiStaticSearchConfig.translations.buttonClose} 19 </button> 20 </div> 21 22 <div class="pss-results__msg pss-results__msg--empty"> 23 ${window.publiiStaticSearchConfig.translations.searchEmptyState} 24 </div> 25 26 <div 27 class="pss-results__msg pss-results__msg--too-short" 28 hidden> 29 ${window.publiiStaticSearchConfig.translations.tooShortPhraseState} 30 </div> 31 32 <div 33 class="pss-results__msg pss-results__msg--no-results" 34 hidden> 35 ${window.publiiStaticSearchConfig.translations.noResults} 36 </div> 37 38 <ol class="pss-results__list" hidden></ol> 39 40 </div> 41 `,searchItem:` 42 <li class="pss-results__list__item"> 43 <a href="{PSS_URL}" class="pss-results__list__link"> 44 {PSS_ICON} 45 <strong class="pss-results__list__title"> 46 {PSS_TITLE} 47 </strong> 48 <small class="pss-results__list__text"> 49 {PSS_TEXT} 50 </small> 51 </a> 52 </li> 53 `,searchItemWithoutText:` 54 <li class="pss-results__list__item"> 55 <a href="{PSS_URL}" class="pss-results__list__link"> 56 {PSS_ICON} 57 58 <strong class="pss-results__list__title"> 59 {PSS_TITLE} 60 </strong> 61 </a> 62 </li> 63 `,postIcon:'<svg width="20" height="20" viewBox="0 0 24 24"><path d="M20.92,7.62a.93.93,0,0,0-.21-.33l-6-6a1,1,0,0,0-.32-.21A1.09,1.09,0,0,0,14,1H6A3,3,0,0,0,3,4V20a3,3,0,0,0,3,3H18a3,3,0,0,0,3-3V8A1,1,0,0,0,20.92,7.62ZM15,4.41,17.59,7H15ZM18,21H6a1,1,0,0,1-1-1V4A1,1,0,0,1,6,3h7V8a1,1,0,0,0,1,1h5V20A1,1,0,0,1,18,21Zm-1-8a1,1,0,0,1-1,1H8a1,1,0,0,1,0-2h8A1,1,0,0,1,17,13Zm0,4a1,1,0,0,1-1,1H8a1,1,0,0,1,0-2h8A1,1,0,0,1,17,17ZM7,9A1,1,0,0,1,8,8h2a1,1,0,0,1,0,2H8A1,1,0,0,1,7,9Z"/></svg>',pageIcon:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.4333 6.35004C17.3952 6.247 17.3355 6.15326 17.2583 6.07504L12.2583 1.07504C12.1815 1.00008 12.091 0.94066 11.9917 0.900041C11.8883 0.858055 11.7782 0.835456 11.6667 0.833374H8.33333H5C4.33696 0.833374 3.70107 1.09677 3.23223 1.56561C2.76339 2.03445 2.5 2.67033 2.5 3.33337V16.6667C2.5 17.3297 2.76339 17.9656 3.23223 18.4345C3.70107 18.9033 4.33696 19.1667 5 19.1667H15C15.663 19.1667 16.2989 18.9033 16.7678 18.4345C17.2366 17.9656 17.5 17.3297 17.5 16.6667V6.66671C17.4987 6.55781 17.476 6.45023 17.4333 6.35004ZM12.5 3.67504L14.6583 5.83337H12.5V3.67504ZM15 17.5H5C4.77899 17.5 4.56702 17.4122 4.41074 17.256C4.25446 17.0997 4.16667 16.8877 4.16667 16.6667V3.33337C4.16667 3.11236 4.25446 2.9004 4.41074 2.74412C4.56702 2.58784 4.77899 2.50004 5 2.50004H10.8333V6.66671C10.8333 6.88772 10.9211 7.09968 11.0774 7.25596C11.2337 7.41224 11.4457 7.50004 11.6667 7.50004H15.8333V16.6667C15.8333 16.8877 15.7455 17.0997 15.5893 17.256C15.433 17.4122 15.221 17.5 15 17.5Z"/></svg>',tagIcon:'<svg width="20" height="20" viewBox="0 0 24 24"> <path d="M20,14H15.78l.45-4H20a1,1,0,0,0,0-2H16.45L17,3.11A1,1,0,0,0,16.11,2a1,1,0,0,0-1.1.88L14.44,8h-4L11,3.11a1,1,0,0,0-2-.22L8.44,8H4a1,1,0,0,0,0,2H8.22l-.45,4H4a1,1,0,0,0,0,2H7.55L7,20.89A1,1,0,0,0,7.89,22H8a1,1,0,0,0,1-.89L9.56,16h4L13,20.89a1,1,0,0,0,.88,1.1H14a1,1,0,0,0,1-.89L15.56,16H20a1,1,0,0,0,0-2ZM9.78,14l.45-4h4l-.45,4Z"/></svg>'},init(){if(this.UI.smallSearchForm=document.querySelector("form.search__form"),window.publiiStaticSearchConfig.customTriggerSelector&&(this.UI.customTrigger=document.querySelectorAll(window.publiiStaticSearchConfig.customTriggerSelector)),this.UI.smallSearchForm&&(this.UI.smallSearchInput=this.UI.smallSearchForm.querySelector(".search__input"),window.publiiStaticSearchConfig.showPopupOnInputClick?(this.UI.smallSearchForm.addEventListener("submit",t=>{t.preventDefault()},!1),this.UI.smallSearchInput.addEventListener("click",t=>{this.showPopup("")}
63,!1)):this.UI.smallSearchForm.addEventListener("submit",t=>{t.preventDefault(),this.showPopup(this.UI.smallSearchInput.value)},!1)),this.UI.customTrigger)for(let t=0;t<this.UI.customTrigger.length;t++)this.UI.customTrigger[t].addEventListener("click",t=>{t.preventDefault(),t.stopImmediatePropagation(),this.showPopup("")},!1)},showPopup(t){this.htmlLoaded?(this.UI.overlay.classList.remove("is-hidden"),this.UI.input.value=t,this.UI.input.focus(),this.triggerSearchEvent()):(this.htmlLoaded=!0,this.appendHtmlStructure(),setTimeout(()=>{this.initPopupEvents(t),this.indexLoaded||this.loadIndex()},0))},loadIndex(){let t=window.publiiStaticSearchConfig.baseURL+"/media/plugins/staticSearch/index.js?v="+window.publiiStaticSearchConfig.indexChecksum,e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("src",t),document.body.appendChild(e)},normalizeCharset:t=>({latin:"LatinDefault","latin:default":"LatinDefault","latin:simple":"Normalize","latin:balance":"LatinBalance","latin:advanced":"LatinAdvanced","latin:extra":"LatinExtra","latin:soundex":"LatinSoundex",cjk:"CJK","cjk:default":"CJK",LatinDefault:"LatinDefault",Normalize:"Normalize",Default:"Default",Exact:"Exact",LatinBalance:"LatinBalance",LatinAdvanced:"LatinAdvanced",LatinExtra:"LatinExtra",LatinSoundex:"LatinSoundex",CJK:"CJK"})[t]||t,getHighlightTemplate:()=>'<mark class="pss-highlight">$1</mark>',initIndex(){let t=this.normalizeCharset(this.config.engineSettings.charset);if(this.config.engineSettings.enableHighlighting&&FlexSearch.Document){let e={charset:t,language:this.config.engineSettings.language,tokenize:this.config.engineSettings.tokenize,cache:this.config.engineSettings.cache,document:{id:"id",index:[{field:"title",tokenize:this.config.engineSettings.tokenize},{field:"content",tokenize:this.config.engineSettings.tokenize}],store:!0}};this.searchIndex=new FlexSearch.Document(e),this.useDocumentIndex=!0;for(let i=0;i<this.cachedItems.length;i++){let s=this.cachedItems[i],n=this.buildIndexData(s,!0);this.searchIndex.add({id:s.id,title:s.title||"",content:n,excerpt:s.excerpt||"",metaDescription:s.metaDescription||"",url:s.url||""})}}else{let a={charset:t,language:this.config.engineSettings.language,preset:"match",tokenize:this.config.engineSettings.tokenize,cache:this.config.engineSettings.cache,suggest:this.config.engineSettings.suggest};this.searchIndex=new FlexSearch.Index(a),this.useDocumentIndex=!1;for(let h=0;h<this.cachedItems.length;h++){let l=this.cachedItems[h],r=this.buildIndexData(l,!1);this.searchIndex.add(l.id,r)}}this.indexLoaded=!0,this.UI.overlay.classList.remove("is-loading"),setTimeout(()=>{this.triggerSearchEvent()},0)},buildIndexData(t,e){let i=[],s=e&&"description"===this.config.engineSettings.highlightingScope,n=this.config.indexSettings.resultsDescription;return 0===t.id.indexOf("post-")?(this.config.indexSettings.indexPostTitles&&!e&&i.push(t.title),s?"excerpt"===n?i.push(t.excerpt):"metadescription"===n&&i.push(t.metaDescription):(this.config.indexSettings.indexPostExcerpts&&i.push(t.excerpt),this.config.indexSettings.indexPostHeadings&&i.push(t.headings),this.config.indexSettings.indexPostAuthors&&i.push(t.author),this.config.indexSettings.indexPostMetaDescription&&i.push(t.metaDescription),this.config.indexSettings.indexPostConfig&&i.push(t.config))):0===t.id.indexOf("page-")?(this.config.indexSettings.indexPageTitles&&!e&&i.push(t.title),s?"excerpt"===n?i.push(t.excerpt):"metadescription"===n&&i.push(t.metaDescription):(this.config.indexSettings.indexPageExcerpts&&i.push(t.excerpt),this.config.indexSettings.indexPageHeadings&&i.push(t.headings),this.config.indexSettings.indexPageMetaDescription&&i.push(t.metaDescription),this.config.indexSettings.indexPageConfig&&i.push(t.config))):0===t.id.indexOf("tag-")&&(this.config.indexSettings.indexTagNames&&!e&&i.push(t.title),s?"excerpt"===n?i.push(t.excerpt):"metadescription"===n&&i.push(t.metaDescription):(this.config.indexSettings.indexTagDescription&&i.push(t.excerpt),this.config.indexSettings.indexTagMetaDescription&&i.push(t.metaDescription))),i.join(" ")},appendHtmlStructure(){let t=document.createElement("div");t.setAttribute("class","pss-results is-hidden is-loading"),t.innerHTML=this.templates.searchPopup,document.body.appendChild(t)},initPopupEvents(t){this.UI.input=document.querySelector(".pss-results__searchbar__input"),this.UI.overlay=document.querySelector(".pss-results"),this.UI.popupContent=document.querySelector(".pss-results__wrapper"),this.UI.emptyState=document.querySelector(".pss-results__msg--empty"),this.UI.noResultsState=document.querySelector(".pss-results__msg--no-results"),this.UI.tooShortPhraseState=document.querySelector(".pss-results__msg--too-short"),this.UI.listWithResultsContent=document.querySelector(".pss-results__list"),this.UI.popupCloseBtn=document.querySelector(".pss-results__searchbar__btn"),this.UI.input.addEventListener("input",()=>{this.triggerSearchEvent()},!1),this.UI.overlay.addEventListener("click",()=>{this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden")},!1),this.UI.popupCloseBtn.addEventListener("click",()=>{this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden")},!1),this.UI.popupContent.addEventListener("click",t=>{t.stopPropagation()},!1);let e=null;this.UI.listWithResultsContent.addEventListener("scroll",()=>{clearTimeout(e),this.UI.listWithResultsContent.classList.contains("is-scrolled")||this.UI.listWithResultsContent.classList.add("is-scrolled"),e=setTimeout(()=>{this.UI.listWithResultsContent.classList.remove("is-scrolled")},350)},!1),setTimeout(()=>{this.UI.overlay.classList.remove("is-hidden"),this.UI.input.value=t,this.UI.input.focus(),this.triggerSearchEvent()},0),document.addEventListener("keydown",t=>{"Escape"!==t.key&&"Esc"!==t.key||this.UI.overlay.classList.contains("is-hidden")||(this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden"))},!1)},search(t){if(null===this.searchIndex)return!1;let e=this.config.engineSettings.enableHighlighting;if(this.useDocumentIndex)return this.searchWithDocumentIndex(t,e);let i=this.searchIndex.search(t,this.config.maxResultsCount);return this.cachedItems.filter(t=>i.includes(t.id))},searchWithDocumentIndex(t,e){let i={query:t,limit:this.config.maxResultsCount,enrich:!0};e&&(i.highlight=this.getHighlightTemplate());let s=this.searchIndex.search(i);return this.processDocumentResults(s,e)},processDocumentResults(t,e){if(!t||!t.length)return[];let i=new Map;for(let s of t){if(!s.result)continue;let n=s.field;for(let a of s.result){let h="object"==typeof a?a.id:a;if(!i.has(h)){if("object"==typeof a){let l=a.doc||{};i.set(h,{id:a.id,title:l.title||"",excerpt:l.excerpt||"",metaDescription:l.metaDescription||"",url:l.url||"",highlightedTitle:null,highlightedContent:null})}else{let r=this.cachedItems.find(t=>
63t.id===h);r&&i.set(h,{id:r.id,title:r.title||"",excerpt:r.excerpt||"",metaDescription:r.metaDescription||"",url:r.url||"",highlightedTitle:null,highlightedContent:null})}}if(e&&"object"==typeof a&&a.highlight){let o=i.get(h);o&&("title"===n?o.highlightedTitle=a.highlight:"content"===n&&(o.highlightedContent=a.highlight))}}}return Array.from(i.values())},showEmptyState(){this.UI.emptyState.removeAttribute("hidden"),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showTooShortState(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.removeAttribute("hidden"),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showNoResults(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.removeAttribute("hidden"),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showResults(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.removeAttribute("hidden")},renderResults(t){let e="",i=this.config.engineSettings.enableHighlighting;for(let s=0;s<t.length;s++){let n="",a=window.publiiStaticSearch.templates.postIcon,h="searchItem",l=t[s].url,r=t[s].title,o=t[s].highlightedTitle,c=t[s].highlightedContent;0===t[s].id.indexOf("tag-")&&(a=window.publiiStaticSearch.templates.tagIcon),0===t[s].id.indexOf("page-")&&(a=window.publiiStaticSearch.templates.pageIcon),"excerpt"===this.config.indexSettings.resultsDescription?n=t[s].excerpt:"metadescription"===this.config.indexSettings.resultsDescription&&(n=t[s].metaDescription),i&&(o&&(r=o),c&&"off"!==this.config.indexSettings.resultsDescription&&(n=c)),(""===n||void 0===n)&&(h="searchItemWithoutText"),l.indexOf("#PUBLII_RELATIVE_URL_BASE#")>-1&&(l=l.replace("#PUBLII_RELATIVE_URL_BASE#",""));e+=this.templates[h].replace(/\{PSS_ICON\}/gmi,a).replace(/\{PSS_URL\}/gmi,l).replace(/\{PSS_TITLE\}/gmi,r).replace(/\{PSS_TEXT\}/gmi,n||"")}this.UI.listWithResultsContent.innerHTML=e},triggerSearchEvent(){if(this.indexLoaded){if(this.UI.input.value.trim().length>=this.config.minCharCount){let t=this.search(this.UI.input.value.trim());!1!==t&&t.length?(this.showResults(),this.renderResults(t)):this.showNoResults()}else this.UI.input.value.trim().length>0?this.showTooShortState():this.showEmptyState()}}},window.publiiStaticSearch.init();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.