PageSourceSearch

https://davestewart.co.uk/_nuxt/Z4sDwEbR.js

js davestewart.co.uk collected 2026-10-02 17:29:43 UTC 16,404 bytes, 45 lines download raw bytes

1import{i as Q,a as K}from"./QvC9xnMO.js";import tt from"./Cc97Fd8f.js";import{M as et,s as B}from"./Cd17bL7R.js";import nt from"./RjGqf6Fw.js";import ot from"./BQ742-Oo.js";import{d as h,p as d,c as f,l as g,o as c,k as _,m as X,a as v,N as x,Q as $,t as k,R,g as l,S as A,r as C,_ as st,w as at,v as rt,h as W,e as j,T as it,U as lt,u as I,V as ct,z as N,f as y,W as V,C as ut,X as U,Y as mt,O as dt,B as pt,D as _t,Z as gt,$ as ft,i as ht}from"./Bp3WZnwP.js";import{t as M,n as F,g as H,a as vt,e as yt,m as G,b as P,f as kt}from"./DpSLcpTi.js";import{_ as bt,a as wt,u as St}from"./CqSB4fMX.js";import $t from"./DE9aoeaN.js";import xt from"./CTIuqALO.js";import{_ as Mt,a as Ct}from"./BBvNDIsK.js";import{u as Dt}from"./CXxjwD0T.js";import"./Cn_1PB81.js";import"./BSZFgSs5.js";import"./B8IaAclc.js";import"./BfFPsv58.js";import"./B9M5LNhO.js";import"./KavS5l6m.js";function At(t){return!!t&&typeof t=="object"}function Nt(t){return At(t)&&!Array.isArray(t)}const Pt={key:0,class:"pageHero"},Tt=h({__name:"PageHero",props:{page:{}},setup(t){const e=t,n=d(()=>{const{media:o,hero:s}=e.page;if(o){if(s&&o[s])return s;if(o.featured)return"featured";if(o.gallery)return"gallery";if(o.video)return"video"}return""}),r=d(()=>{const o=n.value;if(!o)return null;const s=e.page.media?.[o];if(Array.isArray(s))return et;const a=Nt(s)?s.src:typeof s=="string"?s:"";return Q(a)?nt:K(a)?ot:tt});return(o,s)=>r.value?(c(),f("div",Pt,[(c(),_(X(r.value),{media:n.value,width:"100%",scale:""},null,8,["media"]))])):g("",!0)}}),Ot=Object.assign(Tt,{__name:"PageHero"});function T(t,e){const n=+M(t)-+M(e);return n<0?-1:n>0?1:n}function Lt(t,e,n){const[r,o]=F(n?.in,t,e),s=r.getFullYear()-o.getFullYear(),a=r.getMonth()-o.getMonth();return s*12+a}function Rt(t){return e=>{const n=Math.trunc,r=n(e);return r===0?0:r}}function jt(t,e){return+M(t)-+M(e)}function It(t,e){const n=M(t,e?.in);return n.setHours(23,59,59,999),n}function Ft(t,e){const n=M(t,e?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function Et(t,e){const n=M(t,e?.in);return+It(n,e)==+Ft(n,e)}function Bt(t,e,n){const[r,o,s]=F(n?.in,t,t,e),a=T(o,s),i=Math.abs(Lt(o,s));if(i<1)return 0;o.getMonth()===1&&o.getDate()>27&&o.setDate(30),o.setMonth(o.getMonth()-a*i);let u=T(o,s)===-a;Et(r)&&i===1&&T(r,s)===1&&(u=!1);const p=a*(i-+u);return p===0?0:p}function Vt(t,e,n){const r=jt(t,e)/1e3;return Rt()(r)}function Ut(t,e,n){const r=vt(),o=n?.locale??r.locale??yt,s=2520,a=T(t,e);if(isNaN(a))throw new RangeError("Invalid time value");const i=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:a}),[u,p]=F(n?.in,...a>0?[e,t]:[t,e]),D=Vt(p,u),b=(H(p)-H(u))/1e3,m=Math.round((D-b)/60);let w;if(m<2)return m===0?o.formatDistance("lessThanXMinutes",1,i):o.formatDistance("xMinutes",m,i);if(m<45)return o.formatDistance("xMinutes",m,i);if(m<90)return o.formatDistance("aboutXHours",1,i);if(m<G){const S=Math.round(m/60);return o.formatDistance("aboutXHours",S,i)}else{if(m<s)return o.formatDistance("xDays",1,i);if(m<P){const S=Math.round(m/G);return o.formatDistance("xDays",S,i)}else if(m<P*2)return w=Math.round(m/P),o.formatDistance("aboutXMonths",w,i)}if(w=Bt(p,u),w<12){const S=Math.round(m/P);return o.formatDistance("xMonths",S,i)}else{const S=w%12,O=Math.trunc(w/12);return S<3?o.formatDistance("aboutXYears",O,i):S<9?o.formatDistance("overXYears",O,i):o.formatDistance("almostXYears",O+1,i)}}const Ht={key:0,class:"pageDate"},Gt=h({__name:"PageDate",props:{date:{}},setup(t){const e=t,n=d(()=>e.date?new Date(e.date):new Date),r=d(()=>Ut(n.value,new Date)),o=d(()=>kt(n.value,"MMM yyyy")),s=d(()=>e.date?.slice(0,4)||"");return(a,i)=>{const u=R;return t.date?(c(),f("div",Ht,[v(u,{class:"pageDate__text",href:`/search/?group=date#${s.value}`,title:r.value},{default:x(()=>[$(k(o.value),1)]),_:1},8,["href","title"])])):g("",!0)}}}),Yt=Object.assign(Gt,{__name:"PageDate"}),zt={key:0,class:"pageStats"},Xt=["title"],Wt=h({__name:"PageStats",props:{text:{},words:{}},setup(t){return(e,n)=>t.text?(c(),f("div",zt,[l("span",{class:"pageStats__text",title:`${t.words} words`},k(t.text),9,Xt)])):g("",!0)}}),qt=Object.assign(Wt,{__name:"PageStats"}),Zt=A("/assets/share/twitter.svg"),Jt=A("/assets/share/facebook.svg"),Qt=A("/assets/share/linkedin.svg"),Kt=A("/assets/share/reddit.svg"),te=A("/assets/share/email.svg"),ee={class:"pageShare",unselectable:"on"},ne={class:"pageShare__popup"},oe=["href"],se=["href"],ae=["href"],re=["href"],ie=["href"],le=h({__name:"PageShare",props:{page:{}},setup(t){const e=t,n=C(!1),r=C(null),o=C(null),s=d(()=>encodeURIComponent(e.page.title)),a=d(()=>encodeURIComponent(e.page.description??"")),i=d(()=>`https://davestewart.co.uk${e.page._path}`),u=d(()=>(e.page.tags||[]).join(",")),p=()=>{n.value=!1},D=()=>{setTimeout(()=>{n.value=!0,W(()=>{r.value&&o.value&&(r.value.style.marginLeft=o.value.offsetLeft-13+"px")});const b=()=>{document.body.removeEventListener("click",b),p()};document.body.addEventListener("click",b)},50)};return(b,m)=>{const w=st;return c(),f("div",ee,[l("a",{ref_key:"toggle",ref:o,class:"pageShare__toggle",onClick:D},[v(w,{icon:"share",size:25})],512),l("div",ne,[at(l("div",{ref_key:"links",ref:r,class:"pageShare__links"},[l("a",{href:`https://twitter.com/intent/tweet?url=${i.value}&text=${s.value}%0A%0A${a.value}%0A%0A&hashtags=${u.value}&via=dave_stewart`,target:"_blank",title:"Tweet"},[...m[0]||(m[0]=[l("img",{alt:"Tweet",src:Zt},null,-1)])],8,oe),l("a",{href:`https://www.facebook.com/sharer/sharer.php?u=${i.value}`,title:"Share on Facebook",target:"_blank"},[...m[1]||(m[1]=[l("img",{alt:"Share on Facebook",src:Jt},null,-1)])],8,se),l("a",{href:`https://www.linkedin.com/shareArticle?url=${i.value}&title=${s.value}&summary=${a.value}&source=${i.value}`,target:"_blank",title:"Share on LinkedIn"},[...m[2]||(m[2]=[l("img",{alt:"Share on LinkedIn",src:Qt},null,-1)])],8,ae),l("a",{href:`http://www.reddit.com/submit?url=${i.value}&title=${s.value}`,target:"_blank",title:"Share on Reddit"},[...m[3]||(m[3]=[l("img",{alt:"Share on Reddit",src:Kt},null,-1)])],8,re),l("a",{href:`mailto:?subject=${s.value}&body=${a.value}%0A%0A${i.value}`,target:"_blank",title:"Send email"},[...m[4]||(m[4]=[l("img",{alt:"Send email",src:te},null,-1)])],8,ie)],512),[[rt,n.value]])])])}}}),ce=Object.assign(le,{__name:"PageShare"}),ue={class:"shield"},me=["href"],de=["src","alt","title"],pe=h({__name:"Shield",props:{github:{}},setup(t){const e=t,n=C(),r=d(()=>`https://img.shields.io/github/stars/${e.github}?style=flat&color=%23ea4848&label=Stars%3A&logo=github`),o=d(()=>`https://github.com/${e.github}#readme`),s=d(()=>`badges/${e.github}`);j(()=>{const i=B.get(s.value);i&&n.value&&(n.value.style.width=i+"px")});function a(){n.value&&(n.value.style.width="",W(()=>{if(n.value){const i=n.value.offsetWidth;B.set(s.value,i)}}))}return(i,u)=>(c(),f("span",ue,[l("a",{ref_key:"link",ref:n,href:o.value,target:"_blank",class:"shield__link"},[l("img",{ref:"img",class:"shield__image",src:r.value,alt:t.github,title:t.github,onLoad:a},null,40,de)],8,me)]))}}),_e=Object.assign(pe,{__name:"Shield"}),ge=h({__name:"PageInfo",props:{page:{}},setup(t){function e(n){return!!n}return(n,r)=>{const o=Yt,s=qt,a=ce,i=_e,u=bt,p=wt;return c(),_(p,{class:"pageInfo"},{default:x(()=>[t.page.date?(c(),_(o,{key:0,date:t.page.date},null,8,["date"])):g("",!0),t.page.path?.startsWith("/blog/")&&t.page.readingTime?(c(),_(s,it(lt({key:1},t.page.readingTime)),null,16)):g("",!0),e(t.page)?(c(),_(a,{key:2,page:t.page,class:"only-md-up"},null,8,["page"])):g("",!0),t.page.github?(c(),_(i,{key:3,github:t.page.github,class:"only-md-up"},null,8,["github"])):g("",!0),t.page.tags?(c(),_(u,{key:4,tags:t.page.tags},null,8,["tags"])):g("",!0)]),_:1})}}}),fe=Object.assign(ge,{__name:"PageInfo"}),he={key:0,class:"navSurround"},ve={class:"navSurround__text"},ye={key:1},ke={class:"navSurround__text"},be=h({__name:"NavSurround",setup(t){const e=I(),n=ct("page"),r=N(),o=d(()=>{const i=n?.value?.path??e.path;return r.getSurround(i)}),s=d(()=>o.value.prev),a=d(()=>o.value.next);return(i,u)=>{const p=R;return s.value||a.value?(c(),f("nav",he,[s.value?(c(),_(p,{key:0,to:s.value.path,class:"navSurround__link navSurround__prev"},{default:x(()=>[u[0]||(u[0]=l("span",{class:"navSurround__arrow"},null,-1)),l("div",ve,k(y(V)(s.value)),1)]),_:1},8,["to"])):(c(),f("span",ye)),a.value?(c(),_(p,{key:2,to:a.value.path,class:"navSurround__link navSurround__next"},{default:x(()=>[l("div",ke,k(y(V)(a.value)),1),u[1]||(u[1]=l("span",{class:"navSurround__arrow"},null,-1))]),_:1},8,["to"])):g("",!0)])):g("",!0)}}}),q=Object.assign(be,{__name:"NavSurround"});function we(t){if(document.querySelector(`script[src="${t}"]`))return;const e=document.createElement("script");e.src=t,e.async=!0,e.type="module",document.head.appendChild(e)}const Z=["loaded","comment:published","comment:edited","comment:deleted","comment:voted","comment:flagged","reaction","rating","auth:login:clicked","profile:clicked"];class E{static script(e){e=e||"https://talk.hyvor.com",we(`${e}/embed/embed.js`)}static comments(e,n,r){E.script(e.instance);const o=document.createElement("hyvor-talk-comments");for(let[s,a]of Object.entries(e))if(a!=null){if(s==="translations"&&typeof a=="object"){for(let[i,u]of Object.entries(a))i=i.replace("_","-"),o.setAttribute(`t-${i}`,u);continue}s==="settings"&&(a=JSON.stringify(a)),o.setAttribute(s,a)}return r&&Z.forEach(s=>{o.addEventListener(s,a=>{r(s,a.detail)})}),n.appendChild(o),o}}function Se(t){const e={};for(const n in t){const r=n.replace(/([a-z0-9]|(?=[A-Z0-9]))([A-Z0-9])/g,"$1-$2").toLowerCase();e[r]=t[n]}return e}const J={comments:["websiteId","pageId","pageUrl","pageTitle","pageLanguage","pageAuthor","ssoUser","ssoHash","colors","loading","instance","settings","translations","tReactionsText","tRatingsText","tRatings1","tRatingsMulti","tLogin","tLoginToContinue","tPageClosed","tLoginToComment","tNoCommentsText","tComments0","tComments1","tCommentsMulti","tOnline","tNotifications","tNotificationsNo","tNotificationsRead","tNotificationsReply","tNotificationsMention","tNotificationsLoadMore","tTop","tNewest","tOldest","tJustNow","tAgoSeconds","tAgoDay","tAgoDays","tAgoHour","tAgoHours","tAgoMinute","tAgoMinutes","tAgoYear","tAgoYears","tFeatured","tPending","tDeleted","tLovedBy","tTeam","tAuthor","tEdited","tModerate","tSpam","tFeature","tUnfeature","tLove","tUnlove","tShowMore","tShowLess","t
1ExpandComment","tExpandComments","tLoadMoreComments","tLoadMore","tMoreReplies","tHiddenComment","tReply","tReplyingWithCount","tGuest","tGuests","tShowNewComment","tShowNewComments","tShowNewReply","tShowNewReplies","tShowAllComments","tShowParentComment","tGuestName","tGuestEmail","tGuestNameFill","tGuestEmailRequired","tGuestEmailInvalid","tCommentCharLimit","tCommentBoxText","tReplyBoxText","tGuestVote","tAsGuest","tCommentButtonText","tReplyButtonText","tEdit","tDelete","tDeleteConfirm","tCancel","tSearch","tSearchComments","tSearchBack","tSearchType","tFlag","tUnflag","tFlagComment","tFlagReason","tOptional","tBanned","tComments","tSettings","tSettingsForWebsite","tBlocked","tUnblocked","tReplyEmails","tMentionEmails","tSaved","tNoResults","tPoweredBy","tUploadImage","tOr","tPasteUrl","tAdd","tLink","tEmbed","tCopyLink","tLinkCopied","tBlock","tBlockButton","tUnblock","tAccountLogout","tAccountMy","tDefaultError"],"gated-content":["key","secure","defaultGateTitle","defaultGateContent"]},$e=h((t,{emit:e,expose:n})=>{const r=C(null),o=C(null);return j(()=>{r.value&&(o.value=E.comments(Se(t),r.value,(s,a)=>{e(s,a)}))}),n({wrap:()=>r.value,element:()=>o.value}),()=>ut("div",{class:"ht-comments-wrap",ref:r})},{props:J.comments,emits:Z});let L=J["gated-content"];L=L.filter(t=>t!=="key");L.push("_key");const xe={id:"hyvor-talk-view",class:"pageFeedback pageContent"},Me={key:0},Ce={key:1},De=h({__name:"PageFeedback",setup(t){const e={custom_css:`
2.comment-writer {
3  background: var(--ht-color-input);
4  margin: 4px 10px;
5}
6
7.comment-writer,
8input {
9  background: white !important;
10  box-shadow: 0 0 0 1px var(--ht-color-accent-15);
11}
12
13.comments-list .no-comments {
14  display: none;
15}
16
17.main-box-footer {
18  display: none;
19}
20
21.comment-content {
22  line-height: 1.7;
23}
24
25.reactions {
26  margin: 0 -20px;
27}
28
29#app.light .hljs span *
30  background: #f5f5f8;
31  color: var(--foreground) !important; {
32  font-weight: normal !important;
33}
34
35code,
36.hljs * {
37  color: #5c6e74 !important;
38  font-weight: 500 !important;
39}
40
41.hljs-title, .hljs-literal {
42  color: #EA4848 !important;
43}
44
45`};return(n,r)=>{const o=mt,s=dt;return c(),f("div",xe,[r[0]||(r[0]=l("h2",null,"So...",-1)),(n._.provides[U]||n.$route).path.includes("/blog/")?(c(),f("p",Me,"I hope you found this article useful or enjoyable.")):(c(),f("p",Ce,"I hope you found this post interesting or useful.")),r[1]||(r[1]=l("p",null,[$(" If you want to engage further, follow me on "),l("a",{href:"https://twitter.com/dave_stewart",target:"_blank"},"Twitter"),$(", "),l("a",{href:"https://bsky.app/profile/davestewart.uk",target:"_blank"},"Bluesky"),$(", or drop a "),l("a",{href:"#hyvor-talk-view"},"comment"),$(" or "),l("a",{href:"#hyvor-talk-view"},"reaction"),$(" below. ")],-1)),r[2]||(r[2]=l("p",null,"Either way, thanks for reading!",-1)),v(o,{size:"32",fill:"#EA4848"}),v(s,null,{default:x(()=>[v(y($e),{"website-id":6366,"page-url":`https://davestewart.co.uk${(n._.provides[U]||n.$route).path}`,settings:e},null,8,["page-url"])]),_:1})])}}}),Ae=Object.assign(De,{__name:"PageFeedback"}),Ne=["data-path"],Pe={class:"description"},Te=h({__name:"PageView",props:{page:{},info:{type:Boolean}},setup(t){const e=t,n=N(),r=d(()=>!["/bio/","/nuxt-mentor/"].some(s=>e.page._path?.startsWith(s)));return(o,s)=>{const a=Ot,i=fe,u=$t,p=q;return c(),f("div",{class:"layout__page","data-path":t.page._path},[v(a,{page:t.page},null,8,["page"]),l("h1",null,k(t.page.title),1),l("p",Pe,k(t.page.description),1),r.value?(c(),_(i,{key:0,page:t.page},null,8,["page"])):g("",!0),v(u,{value:t.page,class:"pageContent"},null,8,["value"]),r.value&&!y(n).isShowcase?(c(),_(Ae,{key:1})):g("",!0),v(p)],8,Ne)}}}),Y=Object.assign(Te,{__name:"PageView"}),Oe={class:"layout__folder"},Le={class:"description"},Re={class:"pageContent"},je={class:"folderContent"},Ie=h({__name:"FolderView",props:{page:{}},setup(t){const e=t,n=I(),r=N(),o=d(()=>r.isShowcase?{...e.page,body:{...e.page.body,children:e.page.body?.children.slice(0,1)}}:e.page),s=d(()=>({mode:"tree",format:"image",...n.query})),a=d(()=>{const i=r.isShowcase?void 0:"path";return r.search({...s.value,path:n.path,group:i}).items});return pt("folders",a.value),j(()=>{St()}),(i,u)=>{const p=xt,D=Mt,b=q;
45return c(),f("div",Oe,[l("h1",null,k(t.page.title),1),l("p",Le,k(t.page.description),1),l("div",Re,[t.page.body?.children.length?(c(),_(p,{key:0,value:o.value,class:"pageContent__intro"},null,8,["value"])):g("",!0),l("section",je,[v(D,{items:a.value,format:s.value.format},null,8,["items","format"])])]),v(b)])}}}),Fe=Object.assign(Ie,{__name:"FolderView"}),Ee={class:"layout__page"},Be={class:"pageContent"},Ve={style:{"margin-top":"2rem"}},Ue=h({__name:"NotFoundView",setup(t){const e=_t();gt({title:"404"});const n=N(),{data:r}=ft("items",async()=>{const{items:s}=n.search({randomize:!0,limit:3});return s}),o=e.path.split("/").filter(Boolean).pop()?.replace(/-/g," ")??"";return(s,a)=>{const i=R,u=Ct;return c(),f("div",Ee,[a[4]||(a[4]=l("h1",null,"404",-1)),a[5]||(a[5]=l("p",{class:"description"}," That link goes nowhere... ",-1)),l("div",Be,[a[3]||(a[3]=l("h3",null,"But you have options!",-1)),l("section",null,[a[1]||(a[1]=l("p",null,"Try these links:",-1)),l("ul",null,[l("li",null,[v(i,{to:`/search/?text=${y(o)}`},{default:x(()=>[$(' Search for: "'+k(y(o))+'" ',1)]),_:1},8,["to"])]),l("li",null,[v(i,{to:"/"},{default:x(()=>[...a[0]||(a[0]=[$(" Home page ",-1)])]),_:1})])])]),l("section",Ve,[a[2]||(a[2]=l("p",null,"Or pick a random project!",-1)),y(r)?(c(),_(u,{key:0,pages:y(r)},null,8,["pages"])):g("",!0)])])])}}}),z=Object.assign(Ue,{__name:"NotFoundView"}),ln=h({__name:"[...slug]",async setup(t){let e,n;const r=I(),o=N(),{data:s,error:a}=([e,n]=ht(()=>Dt({noTitle:!0})),e=await e,n(),e),i=d(()=>{if(a.value||!s.value||!o.getItem(r.path))return console.warn("Not Found",{error:a.value,data:s.value}),z;switch(s.value.type){case"folder":return Fe;case"post":return Y;default:return Y}});return(u,p)=>(c(),f("div",null,[y(s)?(c(),_(X(i.value),{key:0,page:y(s)},null,8,["page"])):(c(),_(z,{key:1}))]))}});export{ln as default};

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.