1import{_ as x,o as P,a as l,c as i,b as s,d as a,e as o,w as v,f as c,t as d,F as _,r as p,g as k,h as j,i as h,u as B,j as L,k as y}from"./index-CsDazpOw.js";import{P as N}from"./ProductCard-CLAtRdRf.js";import{T as R}from"./Tag-D-zW_rzZ.js";const V={class:"hero"},F={class:"container hero-inner"},S={class:"hero-text"},T={class:"cta"},$={class:"stats"},H={class:"section container"},I={class:"section-head"},D={class:"grid grid-3"},E={class:"section container"},M={class:"grid grid-4"},O={class:"cap-ico"},q={class:"muted"},A={class:"section container"},G={class:"grid grid-2 news"},J={class:"card news-col"},K={class:"col-title"},Q={key:0},U=["onClick"],W={class:"row"},X={class:"muted"},Y={class:"date"},Z={key:1,class:"muted"},ss={class:"card news-col"},ts={class:"col-title"},es={key:0},ns=["onClick"],os={class:"row"},ls={class:"muted"},is={class:"date"},as={key:1,class:"muted"},ds={class:"section container"},rs={class:"cta-band card"},cs={__name:"Home",setup(us){const g=B(),u=k([]),m=k([]),w=h(()=>{const n=u.value.filter(t=>t.featured);return(n.length?n:u.value).slice(0,3)}),b=h(()=>u.value.map(n=>({name:n.name,id:n.id,...n.changelog&&n.changelog[0]?n.changelog[0]:{version:"",date:"",note:""}})).filter(n=>n.version).slice(0,4)),f=h(()=>m.value.slice(0,4)),C=[{icon:"zap",title:"æçå·¥å ·å¼å",desc:"é¢ååä½è ä¸å¼åè çæçæåå·¥å ·ï¼macOS / æµè§å¨ / CLIã"},{icon:"layers",title:"æä»¶ä¸æ©å±",desc:"Final Cut ProãVS Code çå¹³å°ç深度å®å¶æä»¶ã"},{icon:"code",title:"å ¨æ è½å",desc:"å端工ç¨åãNode / Python å端ãé¨ç½²ä¸è¿ç»´ä¸ä½åã"},{icon:"sparkles",title:"产åæç£¨",desc:"ä»äº¤äºç»èå°è§è§è§èï¼æ³¨éä½éªä¸å¯ç¨æ§ã"}];return P(async()=>{try{const[n,t]=await Promise.all([fetch("/data/products.json").then(r=>r.json()),fetch("/blog/index.json").then(r=>r.json())]);u.value=n,m.value=t}catch{}}),(n,t)=>{const r=j("RouterLink");return l(),i("div",null,[s("section",V,[s("div",F,[s("div",S,[t[5]||(t[5]=s("span",{class:"eyebrow"},"个人å¼åè · ç¬ç«äº§å",-1)),t[6]||(t[6]=s("h1",null,[a("ç¨ä»£ç æç£¨"),s("br"),a("好ç¨çå¼åè å·¥å ·")],-1)),t[7]||(t[7]=s("p",{class:"lead"}," ææ¯ Carlï¼ä¸åç¬ç«å¼åè ãè¿éæ±éæå¼åçæä»¶ä¸å·¥å ·äº§åï¼ ä¹å享å¼åè¿ç¨ä¸çæèä¸å®è·µã ",-1)),s("div",T,[o(r,{to:"/products",class:"btn btn-primary"},{default:v(()=>[t[0]||(t[0]=a(" æ¥ç产å ",-1)),o(c,{name:"arrow",size:16})]),_:1}),o(r,{to:"/about",class:"btn btn-ghost"},{default:v(()=>[...t[1]||(t[1]=[a("å ³äºæ",-1)])]),_:1})]),s("div",$,[s("div",null,[s("strong",null,d(u.value.length||"â"),1),t[2]||(t[2]=s("span",null,"产å",-1))]),s("div",null,[s("strong",null,d(m.value.length||"â"),1),t[3]||(t[3]=s("span",null,"æç« ",-1))]),t[4]||(t[4]=s("div",null,[s("strong",null,"5+"),s("span",null,"å¹´ç»éª")],-1))])]),t[8]||(t[8]=s("div",{class:"hero-art","aria-hidden":"true"},[s("div",{class:"art-card"},[s("div",{class:"dots"},[s("i"),s("i"),s("i")]),s("pre",null,`<dev> 2 build() 3 ship() 4 repeat() 5</dev>`)])],-1))])]),s("section",H,[s("div",I,[t[10]||(t[10]=s("div",null,[s("h2",null,"æ ¸å¿æä»¶äº§å"),s("span",{class:"sub"},"ç²¾éææ£å¨ç»´æ¤ä¸è¿ä»£çå·¥å ·")],-1)),o(r,{to:"/products",class:"more"},{default:v(()=>[t[9]||(t[9]=a("æ¥çå ¨é¨ ",-1)),o(c,{name:"arrow",size:16})]),_:1})]),s("div",D,[(l(!0),i(_,null,p(w.value,e=>(l(),L(N,{key:e.id,product:e},null,8,["product"]))),128))])]),s("section",E,[t[11]||(t[11]=s("div",{class:"section-head"},[s("div",null,[s("h2",null,"æè½åä»ä¹"),s("span",{class:"sub"},"ææ¯æ 䏿塿¹å")])],-1)),s("div",M,[(l(),i(_,null,p(C,e=>s("div",{key:e.title,class:"card cap"},[s("span",O,[o(c,{name:e.icon,size:24},null,8,["name"])]),s("h3",null,d(e.title),1),s("p",q,d(e.desc),1)])),64))])]),s("section",A,[t[14]||(t[14]=s("div",{class:"section-head"},[s("div",null,[s("h2",null,"ææ°å¨æ"),s("span",{class:"sub"},"çæ¬æ´æ°ä¸ææ¯æç« ")])],-1)),s("div",G,[s("div",J,[s("h3",K,[o(c,{name:"tag",size:18}),t[12]||(t[12]=a(" çæ¬æ´æ°",-1))]),b.value.length?(l(),i("ul",Q,[(l(!0),i(_,null,p(b.value,e=>(l(),i("li",{key:e.id+e.version,onClick:z=>y(g).push("/product/"+e.id)},[s("div",W,[s("strong",null,d(e.name),1),o(R,{label:"v"+e.version,tone:"primary"},null,8,["label"])]),s("p",X,d(e.note),1),s("span",Y,[o(c,{name:"clock",size:13}),a(" "+d(e.date),1)])],8,U))),128))])):(l(),i("p",Z,"ææ æ´æ°"))]),s("div",ss,[s("h3",ts,[o(c,{name:"book",size:18}),t[13]||(t[13]=a(" ææ°æç« ",-1))]),f.value.length?(l(),i("ul",es,[(l(!0),i(_,null,p(f.value,e=>(l(),i("li",{key:e.slug,onClick:z=>y(g).push("/blog/"+e.slug)}
5,[s("div",os,[s("strong",null,d(e.title),1)]),s("p",ls,d(e.excerpt),1),s("span",is,[o(c,{name:"clock",size:13}),a(" "+d(e.date),1)])],8,ns))),128))])):(l(),i("p",as,"ææ æç« "))])])]),s("section",ds,[s("div",rs,[t[16]||(t[16]=s("div",null,[s("h2",null,"æé¡¹ç®æ³ä¸èµ·åï¼"),s("p",{class:"muted"},"æä»¶å®å¶ãææ¯å¨è¯¢ãåå¡åä½ï¼æ¬¢è¿éæ¶èç³»ã")],-1)),o(r,{to:"/contact",class:"btn btn-primary"},{default:v(()=>[t[15]||(t[15]=a("èç³»æ ",-1)),o(c,{name:"send",size:16})]),_:1})])])])}}},ms=x(cs,[["__scopeId","data-v-0f110710"]]);export{ms 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.