18x
Version:
util js for build web site
1 lines • 935 B
JavaScript
let t;import{fJson as e,fTxt as r}from"x/f.js";import o from"x/isPrefix.js";let s=document.documentElement;export const vUrl=(t,e)=>_V+"@"+t+"/"+e;let n=(t,e)=>{let r;if(t){let{length:o}=e;Array.isArray(t)?o&&(r=o>1?n(t[1][e.shift()],e):t[0][e[0]]):1==o&&(r=t[e[0]])}return void 0===r?-1:r};export const TRIE=[];export const reset=()=>{let{lang:e}=s;return t!=e&&(TRIE.splice(0),t=e),t};export const trieN=async(r,o,s)=>{let[n,l]=await e(vUrl(o,r+".js")),i=n[l[t]||0],f=await e(vUrl(i,t+"/"+r+".json"));return f[0]=f[0].split(";"),TRIE[s]=f,f};export const fd=async(e,r)=>{reset();let s=0;for(let[l,i]of _P){if(o(l,r)){let o=TRIE[s];o||(o=await trieN(l,i,s));let f=n(o[1][e],r.slice(l?l.length+1:0).split("/"));if(~f)return vUrl(o[0][f],t+"/"+(e?r+"."+e:r));break}++s}return 0};export const fV=(t,e)=>async r=>(r=await fd(t,r))?e(r):0;export const fJson=fV("json",e);export const fMd=fV("md",r);export const USE={};export const NAV={};