1import{e as ce}from"../chunks/index.CzR0xuCU.js";import{b as ue,g as ge,P as ve,a as fe,t as pe}from"../chunks/PostTags.D1C0F_Zb.js";import{c as B,a as g,t as k}from"../chunks/disclose-version.DE-liGRC.js";import{f as w,g as a,d as u,p as Q,c as o,t as P,a as R,s,n as te,r}from"../chunks/runtime.vEvs2zhv.js";import{b as $,h as xe,i as L,s as b}from"../chunks/props.CdrK0jyI.js";import{c as he}from"../chunks/svelte-component.CiFqmCp_.js";import{k as be,s as U,e as _e}from"../chunks/Icon.VaO0A4Wf.js";import{M as ye}from"../chunks/MetaTags.BewDlfzo.js";import{h as ee}from"../chunks/html.CtXZ4gcb.js";import{r as M,P as we}from"../chunks/lint.Ce7dyNqv.js";import"../chunks/legacy.B3rupc9m.js";import{I as Pe}from"../chunks/index.DQk258T9.js";import{s as ke}from"../chunks/site.Dgzfuz1j.js";import{C as Se}from"../chunks/copy.BcV599FY.js";function je(v,e){let t=$(e,"output",3,"head"),f=$(e,"schema",3,void 0),d=u(()=>f()&&typeof f()=="object");const S=n=>{const i=p=>({"@context":"https://schema.org",...p});return Array.isArray(n)?n.map(p=>i(p)):i(n)};let j=u(()=>`<script type="application/ld+json">${JSON.stringify(S(f()))}<\/script>`);var _=B();xe(n=>{var i=B(),p=w(i);{var A=T=>{var C=B(),D=w(C);ee(D,()=>a(j),!1,!1),g(T,C)};L(p,T=>{a(d)&&t()==="head"&&T(A)})}g(n,i)});var y=w(_);{var O=n=>{var i=B(),p=w(i);ee(p,()=>a(j),!1,!1),g(n,i)};L(y,n=>{a(d)&&t()==="body"&&n(O)})}g(v,_)}const Oe=()=>ue({drafts:!0}).map(v=>({slug:v.slug})),Te=({params:v})=>{const e=ge(v.slug);return e||ce(404,"No such post"),{meta:e.meta,component:e.component}},$e=Object.freeze(Object.defineProperty({__proto__:null,entries:Oe,load:Te},Symbol.toStringTag,{value:"Module"}));var Ce=k('<aside class="not-prose mt-14 flex flex-wrap items-center justify-between gap-4 rounded-xl border border-border bg-card px-5 py-4"><div class="text-sm"><p class="font-medium">Discuss this post</p> <p class="mt-0.5 text-muted-foreground">Questions, corrections, and disagreements all go to the Vale Discord.</p></div> <a target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 rounded-full border border-lime-500 bg-lime-500/10 px-4 py-1.5 text-sm font-medium transition-colors hover:bg-lime-500/20"><!> Join the conversation</a></aside>');function Ve(v,e){Q(e,!1),be();var t=Ce(),f=s(o(t),2),d=o(f);Pe.Discord(d,{class:"h-4 w-4 fill-current"}),te(),r(f),r(t),P(()=>U(f,"href",ke.links.discord)),g(v,t),R()}var De=k('<!> <span>Linted by <a class="font-medium hover:underline" href="https://vale.sh">Vale</a> </span>',1),Fe=k('<span>Linted by <a class="font-medium hover:underline" href="https://vale.sh">Vale</a> </span>'),Le=k('<div class="bg-card px-2.5 py-2"><dt class="text-[10px] font-medium uppercase tracking-wider text-muted-foreground"> </dt> <dd class="mt-0.5 text-sm tabular-nums"> </dd></div>'),Ae=k(`<footer class="not-prose mt-14 border-t border-border pt-5"><div class="flex flex-wrap items-baseline justify-between gap-x-6 gap-y-1 text-sm"><span class="flex items-center gap-1.5"><!></span> <span class="text-xs text-muted-foreground"> </span></div> <dl class="mt-4 grid grid-cols-4 gap-px overflow-hidden rounded-lg bg-border sm:grid-cols-8"></dl> <p class="mt-2.5 text-xs leading-relaxed text-muted-foreground/70">One <code class="font-mono text-[11px]">vale</code> run on this file, wall clock. Counts from <code class="font-mono text-[11px]">vale ls-metrics</code>; reading time at 200 words a 2 minute.</p></footer>`);function Be(v,e){Q(e,!0);const t=M.posts[e.slug],f=u(()=>t?t.errors+t.warnings+t.suggestions:0),d=u(()=>t?[{label:"Words",value:t.words.toLocaleString("en-US")},{label:"Sentences",value:String(t.sentences)},{label:"Paragraphs",value:String(t.paragraphs)},{label:"FK grade",value:t.grade.toFixed(1)},{label:"Flesch ease",value:t.ease.toFixed(1)},{label:"SMOG",value:t.smog.toFixed(1)},{label:"Complex",value:`${t.complex}%`},{label:"Read",value:`${t.minutes} min`}]:[]);var S=B(),j=w(S);{var _=y=>{var O=Ae(),n=o(O),i=o(n),p=o(i);{var A=m=>{var c=De(),x=w(c);Se(x,{class:"h-3.5 w-3.5 text-lime-500"});var h=s(x,2),V=s(o(h),2);r(h),P(()=>b(V,` ${M.vale} in ${t.ms??""}âms â no alerts`)),g(m,c)},T=m=>{var c=Fe(),x=s(o(c),2);r(c),P(()=>b(x,` ${M.vale} in ${t.ms??""}âms â ${t.errors??""} errors, ${t.warnings??""} warnings, 3 ${t.suggestions??""} suggestions`)),g(m,c)};L(p,m=>{a(f)===0?m(A):m(T,!1)})}r(i);var C=s(i,2),D=o(C);r(C),r(n);var Z=s(n,2);_e(Z,21,()=>a(d),m=>m.label,(m,c)=>{var x=Le(),h=o(x),V=o(h,!0);r(h);var G=s(h,2),z=o(G,!0);r(G),r(x),P(()=>{b(V,a(c).label),b(z,a(c).value)}),g(m,x)}),r(Z),te(2),r(O),P(()=>b(D,`Checked ${M.generated}`)),g(y,O)};L(j,y=>{t&&y(_)})}g(v,S),R()}
3var Me=k('<span class="ml-2 rounded-full border border-amber-500/40 px-2 py-0.5 text-xs font-medium text-amber-500">Draft</span>'),Ze=k('<span class="mx-1.5">·</span> ',1),Ge=k('<!> <!> <article class="mx-auto max-w-3xl px-6 py-16 lg:px-8"><div class="mb-10 overflow-hidden rounded-xl border border-border"><!></div> <header><p class="text-sm text-muted-foreground"><a class="hover:text-foreground" href="/blog">â Blog</a> <!></p> <h1 class="mt-3 text-balance text-4xl font-semibold tracking-tight sm:text-5xl"> </h1> <p class="mt-4 text-pretty text-lg leading-8 text-muted-foreground"> </p> <div class="mt-6 flex items-center gap-3"><img alt="" width="40" height="40" class="h-10 w-10 rounded-full border border-border"> <div class="text-sm leading-tight"><a class="font-medium hover:underline"> </a> <p class="mt-0.5 text-muted-foreground"><time> </time><!></p></div></div> <!></header> <!> <!> <!></article>',1);function et(v,e){Q(e,!0);const t=`https://vale.sh/blog/${e.data.meta.slug}`,f=u(()=>e.data.component),d=u(()=>fe(e.data.meta)),S=u(()=>pe(e.data.meta).map(l=>l.label)),j=u(()=>{var l;return(l=M.posts[e.data.meta.slug])==null?void 0:l.minutes}),_=`https://vale.sh${e.data.meta.image??`/blog/og/${e.data.meta.slug}.png`}`,y=e.data.meta.imageAlt??"Vale",O=l=>new Date(`${l}T00:00:00Z`).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",timeZone:"UTC"});var n=Ge(),i=w(n),p=u(()=>`${e.data.meta.title} â Vale`),A=u(()=>e.data.meta.draft?"noindex,nofollow":"index,follow"),T=u(()=>({url:t,title:e.data.meta.title,description:e.data.meta.description,type:"article",siteName:"Vale",article:{publishedTime:`${e.data.meta.date}T00:00:00Z`,authors:[a(d).url],tags:a(S)},images:[{url:_,width:1200,height:630,alt:y}]})),C=u(()=>({cardType:"summary_large_image",site:"@jdkato",creator:"@jdkato",title:e.data.meta.title,description:e.data.meta.description,image:_,imageAlt:y}));ye(i,{get title(){return a(p)},get description(){return e.data.meta.description},get robots(){return a(A)},canonical:t,get openGraph(){return a(T)},get twitter(){return a(C)}});var D=s(i,2),Z=u(()=>({"@type":"BlogPosting",headline:e.data.meta.title,description:e.data.meta.description,datePublished:`${e.data.meta.date}T00:00:00Z`,image:_,url:t,mainEntityOfPage:t,keywords:a(S).join(", "),author:{"@type":"Person",name:a(d).name,url:a(d).url},publisher:{"@type":"Organization",name:"Vale",url:"https://vale.sh"}}));je(D,{get schema(){return a(Z)}});var m=s(D,2),c=o(m),x=o(c);we(x,{get seed(){return e.data.meta.slug},get image(){return e.data.meta.image},get values(){return e.data.meta.poster},get motif(){return e.data.meta.motif},get alt(){return e.data.meta.imageAlt},class:"h-44 w-full sm:h-56"}),r(c);var h=s(c,2),V=o(h),G=s(o(V),2);{var z=l=>{var F=Me();g(l,F)};L(G,l=>{e.data.meta.draft&&l(z)})}r(V);var I=s(V,2),ae=o(I,!0);r(I);var E=s(I,2),re=o(E,!0);r(E);var K=s(E,2),W=o(K),q=s(W,2),J=o(q),se=o(J,!0);r(J);var H=s(J,2),N=o(H),oe=o(N,!0);P(()=>b(oe,O(e.data.meta.date))),r(N);var ne=s(N);{var le=l=>{var F=Ze(),me=s(w(F));P(()=>b(me,`${a(j)??""} min read`)),g(l,F)};L(ne,l=>{a(j)&&l(le)})}r(H),r(q),r(K);var ie=s(K,2);ve(ie,{get post(){return e.data.meta},class:"mt-6"}),r(h);var X=s(h,2);he(X,()=>a(f),(l,F)=>{F(l,{})});var Y=s(X,2);Ve(Y,{});var de=s(Y,2);Be(de,{get slug(){return e.data.meta.slug}}),r(m),P(()=>{b(ae,e.data.meta.title),b(re,e.data.meta.description),U(W,"src",a(d).avatar),U(J,"href",a(d).url),b(se,a(d).name),U(N,"datetime",e.data.meta.date)}),g(v,n),R()}export{et as component,$e as universal};
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.