From f71fcd6ec735c809982965ba548266922008b44b Mon Sep 17 00:00:00 2001 From: James Harton Date: Fri, 31 Jan 2025 09:06:25 +1300 Subject: [PATCH] improvement: shorten package filter. --- assets/js/search-page.js | 4 ++-- formatters/html/dist/{html-XTJIJCYG.js => html-3VPR65AO.js} | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename formatters/html/dist/{html-XTJIJCYG.js => html-3VPR65AO.js} (93%) diff --git a/assets/js/search-page.js b/assets/js/search-page.js index b82005010..8ed49219d 100644 --- a/assets/js/search-page.js +++ b/assets/js/search-page.js @@ -72,12 +72,12 @@ async function remoteSearch (value, queryType, searchNodes) { filterNodes = searchNodes.slice(0, 1) } - const filters = filterNodes.map(node => `package:=${node.name}-${node.version}`).join(' || ') + const filters = filterNodes.map(node => `${node.name}-${node.version}`).join(',') const params = new URLSearchParams() params.set('q', value) params.set('query_by', 'title,doc') - params.set('filter_by', filters) + params.set('filter_by', `package:=[${filters}]`) const response = await fetch(`https://search.hexdocs.pm/?${params.toString()}`) const payload = await response.json() diff --git a/formatters/html/dist/html-XTJIJCYG.js b/formatters/html/dist/html-3VPR65AO.js similarity index 93% rename from formatters/html/dist/html-XTJIJCYG.js rename to formatters/html/dist/html-3VPR65AO.js index 15021520e..1e92775a0 100644 --- a/formatters/html/dist/html-XTJIJCYG.js +++ b/formatters/html/dist/html-3VPR65AO.js @@ -101,7 +101,7 @@ See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-contr `},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o=e??(t.nullContext||{}),a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return`

`+((s=a(n,"if").call(o,e!=null?a(e,"value"):e,{name:"if",hash:{},fn:t.program(1,i,0),inverse:t.program(3,i,0),data:i,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))!=null?s:"")+`

-`+((s=(a(n,"isNonEmptyArray")||e&&a(e,"isNonEmptyArray")||t.hooks.helperMissing).call(o,e!=null?a(e,"results"):e,{name:"isNonEmptyArray",hash:{},fn:t.program(5,i,0),inverse:t.program(9,i,0),data:i,loc:{start:{line:9,column:0},end:{line:44,column:20}}}))!=null?s:"")},useData:!0});var wt=80,Rl="#search";V.default.tokenizer.separator=/\s+/;V.default.QueryLexer.termSeparator=/\s+/;V.default.Pipeline.registerFunction(ss,"docTokenSplitter");V.default.Pipeline.registerFunction(os,"docTrimmer");window.addEventListener("swup:page:view",rs);rs();function rs(){let t=window.location.pathname;if(t.endsWith("/search.html")||t.endsWith("/search")){let e=Ot("q"),n=Ot("type");Ml(e,n)}}async function Ml(t,e){if(he(t))xn({value:t});else{Vi(t);try{let n=[],r=Jn();["related","latest"].includes(e)&&r.length>0?n=await Nl(t,e,r):n=await Hl(t),xn({value:t,results:n})}catch(n){xn({value:t,errorMessage:n.message})}}}async function Hl(t){let e=await Dl(),n=t.replaceAll(/(\B|\\):/g,"\\:");return zl(e.search(n))}async function Nl(t,e,n){let r=n;e==="latest"&&(r=n.slice(0,1));let i=r.map(l=>`package:=${l.name}-${l.version}`).join(" || "),s=new URLSearchParams;s.set("q",t),s.set("query_by","title,doc"),s.set("filter_by",i);let a=await(await fetch(`https://search.hexdocs.pm/?${s.toString()}`)).json();return Array.isArray(a.hits)?a.hits.map(l=>{let[u,c]=l.document.package.split("-"),d=l.document.doc,h=[d],f={},m=`https://hexdocs.pm/${u}/${c}/${l.document.ref}`,g=l.document.title,v=l.document.type;return{doc:d,excerpts:h,metadata:f,ref:m,title:g,type:v}}):[]}function xn({value:t,results:e,errorMessage:n}){let r=p(Rl),i=ts({value:t,results:e,errorMessage:n});r.innerHTML=i}async function Dl(){let t=await Bl();if(t)return t;let e=Ul();return Ql(e),e}async function Bl(){try{let t=sessionStorage.getItem(is());if(t){let e=await Fl(t);return V.default.Index.load(e)}else return null}catch(t){return console.error("Failed to load index: ",t),null}}async function Ql(t){try{let e=await ql(t);sessionStorage.setItem(is(),e)}catch(e){console.error("Failed to save index: ",e)}}async function ql(t){let e=new Blob([JSON.stringify(t)],{type:"application/json"}).stream().pipeThrough(new window.CompressionStream("gzip")),r=await(await new Response(e).blob()).arrayBuffer();return Vl(r)}async function Fl(t){let e=new Blob([$l(t)],{type:"application/json"}).stream().pipeThrough(new window.DecompressionStream("gzip")),n=await new Response(e).text();return JSON.parse(n)}function Vl(t){let e="",n=new Uint8Array(t),r=n.byteLength;for(let i=0;i{this.add(t)})})}function jl(t){t.pipeline.before(V.default.stemmer,ss)}function ss(t){let e=[t],n=/\/\d+$/,r=/\:|\./,i=t.toString();if(i.replace(/^[.,;?!]+|[.,;]+$/g,""),i.startsWith("`")&&i.endsWith("`")&&(i=i.slice(1,-1)),n.test(i)){let o=t.toString().replace(n,"");e.push(t.clone().update(()=>o));let a=o.split(r);if(a.length>1){for(let u of a)e.push(t.clone().update(()=>u));let l=t.toString().split(r);e.push(t.clone().update(()=>l[l.length-1]))}i=a[a.length-1]}else i.startsWith("@")?(i=i.substring(1),e.push(t.clone().update(()=>i))):i.startsWith(":")&&(i=i.substring(1),e.push(t.clone().update(()=>i)));let s=i.split(/\_|\-/);if(s.length>1)for(let o of s)e.push(t.clone().update(()=>o));return e}function Wl(t){t.pipeline.before(V.default.stemmer,os)}function os(t){return t.update(function(e){return e.replace(/^[^@:\w]+/,"").replace(/[^\?\!\w]+$/,"")})}function zl(t){return t.filter(e=>ns(e.ref)).map(e=>{let n=ns(e.ref),r=e.matchData.metadata;return{...n,metadata:r,excerpts:Gl(n,r)}})}function ns(t){return searchData.items.find(e=>e.ref===t)||null}function Gl(t,e){let{doc:n}=t,i=Object.keys(e).filter(s=>"doc"in e[s]).map(s=>e[s].doc.position.map(([o,a])=>Kl(n,o,a))).reduce((s,o)=>s.concat(o),[]);return i.length===0?[n.slice(0,wt*2)+(wt*20?"...":"",t.slice(r,e),""+Re(t.slice(e,e+n))+"",t.slice(e+n,i),i{t.key==="Escape"&&ue()}),N.querySelector(".modal-close").addEventListener("click",ue),N.addEventListener("click",t=>{t.target===N&&ue()}))}function ls(t){if(!Sn)if(N.contains(t.target))kn=t.target;else{Sn=!0;let e=N.querySelectorAll(Yl);kn===e[0]?e[e.length-1].focus():e[0].focus(),Sn=!1,kn=document.activeElement}}function bt({title:t,body:e}){Jl(),_n=document.activeElement,document.addEventListener("focus",ls,!0),N.querySelector(".modal-title").innerHTML=t,N.querySelector(".modal-body").innerHTML=e,N.classList.add("shown"),N.focus()}function ue(){N?.classList.remove("shown"),document.removeEventListener("focus",ls,!0),_n?.focus(),_n=null}function us(){return Boolean(N?.classList.contains("shown"))}var cs='
';var Xl="https://hexdocs.pm/%%",Zl="https://www.erlang.org/doc/apps/%%",eu="https://hex.pm/api/packages?search=name:%%*",tu=".display-quick-switch",fs="#quick-switch-input",ps="#quick-switch-results",nu=300,ru=9,ms=["erts","asn1","common_test","compiler","crypto","debugger","dialyzer","diameter","edoc","eldap","erl_interface","et","eunit","ftp","inets","jinterface","kernel","megaco","mnesia","observer","odbc","os_mon","parsetools","public_key","reltool","runtime_tools","sasl","snmp","ssh","ssl","stdlib","syntax_tools","tftp","tools","wx","xmerl"],iu=["elixir","eex","ex_unit","hex","iex","logger","mix"].concat(ms).map(t=>({name:t})),gs=2,B={autocompleteResults:[],selectedIdx:null};A||(window.addEventListener("swup:page:view",ds),ds());function ds(){M(tu).forEach(t=>{t.addEventListener("click",Tn)})}function su(t){if(t.key==="Enter"){let e=t.target.value;au(e),t.preventDefault()}else t.key==="ArrowUp"?(hs(-1),t.preventDefault()):t.key==="ArrowDown"&&(hs(1),t.preventDefault())}function ou(t){let e=t.target.value;if(e.lengthn.json()).then(n=>{Array.isArray(n)&&(B.autocompleteResults=du(t,n),B.selectedIdx=null,p(fs).value.length>=gs&&cu(B.autocompleteResults))})}function cu(t){p(ps).replaceChildren(...t.map(({name:e},n)=>{let r=E("div",{class:"quick-switch-result","data-index":n},[e]);return r.addEventListener("click",()=>Ln(e)),r}))}function du(t,e){return iu.concat(e).filter(n=>n.name.toLowerCase().includes(t.toLowerCase())).filter(n=>n.releases===void 0||n.releases[0].has_docs===!0).slice(0,ru)}function hs(t){B.selectedIdx=hu(t);let e=p(".quick-switch-result.selected"),n=p(`.quick-switch-result[data-index="${B.selectedIdx}"]`);e&&e.classList.remove("selected"),n&&n.classList.add("selected")}function hu(t){let e=B.autocompleteResults.length;if(B.selectedIdx===null){if(t>=0)return 0;if(t<0)return e-1}return(B.selectedIdx+t+e)%e}var fu="#settings-modal-content",In=[{key:"c",description:"Toggle sidebar",action:Ue},{key:"n",description:"Cycle themes",action:hr},{key:"s",description:"Focus search bar",displayAs:"/ or s",action:Pn},{key:"/",action:Pn},{key:"k",hasModifier:!0,action:Pn},{key:"v",description:"Open/focus version select",action:gu},{key:"g",description:"Go to package docs",displayAs:"g",action:Tn},{key:"?",displayAs:"?",description:"Bring up this modal",action:vu}],On={shortcutBeingPressed:null};A||(document.addEventListener("keydown",pu),document.addEventListener("keyup",mu));function pu(t){if(On.shortcutBeingPressed||t.target.matches("input, select, textarea"))return;let e=In.find(n=>n.hasModifier?De()&&t.metaKey||t.ctrlKey?n.key===t.key:!1:t.ctrlKey||t.metaKey||t.altKey?!1:n.key===t.key);e&&(On.shortcutBeingPressed=e,t.preventDefault(),e.action(t))}function mu(t){On.shortcutBeingPressed=null}function Pn(t){ue(),wn()}function gu(){ue(),Pr()?dn():Ar().then(dn)}function vu(){yu()?ue():An()}function yu(){return us()&&p(fu)}var vs=Y(ae());var ys=vs.template({1:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return(s=o(n,"if").call(e??(t.nullContext||{}),e!=null?o(e,"description"):e,{name:"if",hash:{},fn:t.program(2,i,0),inverse:t.noop,data:i,loc:{start:{line:40,column:6},end:{line:53,column:13}}}))!=null?s:""},2:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return`
+`+((s=(a(n,"isNonEmptyArray")||e&&a(e,"isNonEmptyArray")||t.hooks.helperMissing).call(o,e!=null?a(e,"results"):e,{name:"isNonEmptyArray",hash:{},fn:t.program(5,i,0),inverse:t.program(9,i,0),data:i,loc:{start:{line:9,column:0},end:{line:44,column:20}}}))!=null?s:"")},useData:!0});var wt=80,Rl="#search";V.default.tokenizer.separator=/\s+/;V.default.QueryLexer.termSeparator=/\s+/;V.default.Pipeline.registerFunction(ss,"docTokenSplitter");V.default.Pipeline.registerFunction(os,"docTrimmer");window.addEventListener("swup:page:view",rs);rs();function rs(){let t=window.location.pathname;if(t.endsWith("/search.html")||t.endsWith("/search")){let e=Ot("q"),n=Ot("type");Ml(e,n)}}async function Ml(t,e){if(he(t))xn({value:t});else{Vi(t);try{let n=[],r=Jn();["related","latest"].includes(e)&&r.length>0?n=await Nl(t,e,r):n=await Hl(t),xn({value:t,results:n})}catch(n){xn({value:t,errorMessage:n.message})}}}async function Hl(t){let e=await Dl(),n=t.replaceAll(/(\B|\\):/g,"\\:");return zl(e.search(n))}async function Nl(t,e,n){let r=n;e==="latest"&&(r=n.slice(0,1));let i=r.map(l=>`${l.name}-${l.version}`).join(","),s=new URLSearchParams;s.set("q",t),s.set("query_by","title,doc"),s.set("filter_by",`package:=[${i}]`);let a=await(await fetch(`https://search.hexdocs.pm/?${s.toString()}`)).json();return Array.isArray(a.hits)?a.hits.map(l=>{let[u,c]=l.document.package.split("-"),d=l.document.doc,h=[d],f={},m=`https://hexdocs.pm/${u}/${c}/${l.document.ref}`,g=l.document.title,v=l.document.type;return{doc:d,excerpts:h,metadata:f,ref:m,title:g,type:v}}):[]}function xn({value:t,results:e,errorMessage:n}){let r=p(Rl),i=ts({value:t,results:e,errorMessage:n});r.innerHTML=i}async function Dl(){let t=await Bl();if(t)return t;let e=Ul();return Ql(e),e}async function Bl(){try{let t=sessionStorage.getItem(is());if(t){let e=await Fl(t);return V.default.Index.load(e)}else return null}catch(t){return console.error("Failed to load index: ",t),null}}async function Ql(t){try{let e=await ql(t);sessionStorage.setItem(is(),e)}catch(e){console.error("Failed to save index: ",e)}}async function ql(t){let e=new Blob([JSON.stringify(t)],{type:"application/json"}).stream().pipeThrough(new window.CompressionStream("gzip")),r=await(await new Response(e).blob()).arrayBuffer();return Vl(r)}async function Fl(t){let e=new Blob([$l(t)],{type:"application/json"}).stream().pipeThrough(new window.DecompressionStream("gzip")),n=await new Response(e).text();return JSON.parse(n)}function Vl(t){let e="",n=new Uint8Array(t),r=n.byteLength;for(let i=0;i{this.add(t)})})}function jl(t){t.pipeline.before(V.default.stemmer,ss)}function ss(t){let e=[t],n=/\/\d+$/,r=/\:|\./,i=t.toString();if(i.replace(/^[.,;?!]+|[.,;]+$/g,""),i.startsWith("`")&&i.endsWith("`")&&(i=i.slice(1,-1)),n.test(i)){let o=t.toString().replace(n,"");e.push(t.clone().update(()=>o));let a=o.split(r);if(a.length>1){for(let u of a)e.push(t.clone().update(()=>u));let l=t.toString().split(r);e.push(t.clone().update(()=>l[l.length-1]))}i=a[a.length-1]}else i.startsWith("@")?(i=i.substring(1),e.push(t.clone().update(()=>i))):i.startsWith(":")&&(i=i.substring(1),e.push(t.clone().update(()=>i)));let s=i.split(/\_|\-/);if(s.length>1)for(let o of s)e.push(t.clone().update(()=>o));return e}function Wl(t){t.pipeline.before(V.default.stemmer,os)}function os(t){return t.update(function(e){return e.replace(/^[^@:\w]+/,"").replace(/[^\?\!\w]+$/,"")})}function zl(t){return t.filter(e=>ns(e.ref)).map(e=>{let n=ns(e.ref),r=e.matchData.metadata;return{...n,metadata:r,excerpts:Gl(n,r)}})}function ns(t){return searchData.items.find(e=>e.ref===t)||null}function Gl(t,e){let{doc:n}=t,i=Object.keys(e).filter(s=>"doc"in e[s]).map(s=>e[s].doc.position.map(([o,a])=>Kl(n,o,a))).reduce((s,o)=>s.concat(o),[]);return i.length===0?[n.slice(0,wt*2)+(wt*20?"...":"",t.slice(r,e),""+Re(t.slice(e,e+n))+"",t.slice(e+n,i),i{t.key==="Escape"&&ue()}),N.querySelector(".modal-close").addEventListener("click",ue),N.addEventListener("click",t=>{t.target===N&&ue()}))}function ls(t){if(!Sn)if(N.contains(t.target))kn=t.target;else{Sn=!0;let e=N.querySelectorAll(Yl);kn===e[0]?e[e.length-1].focus():e[0].focus(),Sn=!1,kn=document.activeElement}}function bt({title:t,body:e}){Jl(),_n=document.activeElement,document.addEventListener("focus",ls,!0),N.querySelector(".modal-title").innerHTML=t,N.querySelector(".modal-body").innerHTML=e,N.classList.add("shown"),N.focus()}function ue(){N?.classList.remove("shown"),document.removeEventListener("focus",ls,!0),_n?.focus(),_n=null}function us(){return Boolean(N?.classList.contains("shown"))}var cs='
';var Xl="https://hexdocs.pm/%%",Zl="https://www.erlang.org/doc/apps/%%",eu="https://hex.pm/api/packages?search=name:%%*",tu=".display-quick-switch",fs="#quick-switch-input",ps="#quick-switch-results",nu=300,ru=9,ms=["erts","asn1","common_test","compiler","crypto","debugger","dialyzer","diameter","edoc","eldap","erl_interface","et","eunit","ftp","inets","jinterface","kernel","megaco","mnesia","observer","odbc","os_mon","parsetools","public_key","reltool","runtime_tools","sasl","snmp","ssh","ssl","stdlib","syntax_tools","tftp","tools","wx","xmerl"],iu=["elixir","eex","ex_unit","hex","iex","logger","mix"].concat(ms).map(t=>({name:t})),gs=2,B={autocompleteResults:[],selectedIdx:null};A||(window.addEventListener("swup:page:view",ds),ds());function ds(){M(tu).forEach(t=>{t.addEventListener("click",Tn)})}function su(t){if(t.key==="Enter"){let e=t.target.value;au(e),t.preventDefault()}else t.key==="ArrowUp"?(hs(-1),t.preventDefault()):t.key==="ArrowDown"&&(hs(1),t.preventDefault())}function ou(t){let e=t.target.value;if(e.lengthn.json()).then(n=>{Array.isArray(n)&&(B.autocompleteResults=du(t,n),B.selectedIdx=null,p(fs).value.length>=gs&&cu(B.autocompleteResults))})}function cu(t){p(ps).replaceChildren(...t.map(({name:e},n)=>{let r=E("div",{class:"quick-switch-result","data-index":n},[e]);return r.addEventListener("click",()=>Ln(e)),r}))}function du(t,e){return iu.concat(e).filter(n=>n.name.toLowerCase().includes(t.toLowerCase())).filter(n=>n.releases===void 0||n.releases[0].has_docs===!0).slice(0,ru)}function hs(t){B.selectedIdx=hu(t);let e=p(".quick-switch-result.selected"),n=p(`.quick-switch-result[data-index="${B.selectedIdx}"]`);e&&e.classList.remove("selected"),n&&n.classList.add("selected")}function hu(t){let e=B.autocompleteResults.length;if(B.selectedIdx===null){if(t>=0)return 0;if(t<0)return e-1}return(B.selectedIdx+t+e)%e}var fu="#settings-modal-content",In=[{key:"c",description:"Toggle sidebar",action:Ue},{key:"n",description:"Cycle themes",action:hr},{key:"s",description:"Focus search bar",displayAs:"/ or s",action:Pn},{key:"/",action:Pn},{key:"k",hasModifier:!0,action:Pn},{key:"v",description:"Open/focus version select",action:gu},{key:"g",description:"Go to package docs",displayAs:"g",action:Tn},{key:"?",displayAs:"?",description:"Bring up this modal",action:vu}],On={shortcutBeingPressed:null};A||(document.addEventListener("keydown",pu),document.addEventListener("keyup",mu));function pu(t){if(On.shortcutBeingPressed||t.target.matches("input, select, textarea"))return;let e=In.find(n=>n.hasModifier?De()&&t.metaKey||t.ctrlKey?n.key===t.key:!1:t.ctrlKey||t.metaKey||t.altKey?!1:n.key===t.key);e&&(On.shortcutBeingPressed=e,t.preventDefault(),e.action(t))}function mu(t){On.shortcutBeingPressed=null}function Pn(t){ue(),wn()}function gu(){ue(),Pr()?dn():Ar().then(dn)}function vu(){yu()?ue():An()}function yu(){return us()&&p(fu)}var vs=Y(ae());var ys=vs.template({1:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return(s=o(n,"if").call(e??(t.nullContext||{}),e!=null?o(e,"description"):e,{name:"if",hash:{},fn:t.program(2,i,0),inverse:t.noop,data:i,loc:{start:{line:40,column:6},end:{line:53,column:13}}}))!=null?s:""},2:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return`
`+t.escapeExpression(t.lambda(e!=null?o(e,"description"):e,e))+`