1import{d as _,u as w,i as z,o as n,c as i,a as e,w as C,F as k,r as v,b as t,t as o,e as f,T as B,f as A,g as j,h as M,j as y,k as I,p as H}from"./app-B5HE4BKI.js";function T(g){if(typeof document<"u"){document.title=g.title;let r=document.querySelector('meta[name="description"]');r||(r=document.createElement("meta"),r.setAttribute("name","description"),document.head.appendChild(r)),r.setAttribute("content",g.description||"");let c=document.querySelector('meta[property="og:title"]');c||(c=document.createElement("meta"),c.setAttribute("property","og:title"),document.head.appendChild(c)),c.setAttribute("content",g.title);let s=document.querySelector('meta[property="og:description"]');if(s||(s=document.createElement("meta"),s.setAttribute("property","og:description"),document.head.appendChild(s)),s.setAttribute("content",g.description||""),g.ogImage){let a=document.querySelector('meta[property="og:image"]');a||(a=document.createElement("meta"),a.setAttribute("property","og:image"),document.head.appendChild(a)),a.setAttribute("content",g.ogImage)}}}const L={class:"fixed top-0 left-0 right-0 z-50 bg-white/75 dark:bg-gray-950/75 backdrop-blur-xl border-b border-gray-200/50 dark:border-gray-800/50"},V={class:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},N={class:"flex items-center justify-between h-16"},R={class:"hidden md:flex items-center space-x-1"},E=["onClick"],D={class:"hidden md:flex items-center space-x-2"},O=["title"],P=["title"],U={class:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},F={key:0,"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 6h16M4 12h16M4 18h16"},q={key:1,"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"},G={key:0,class:"md:hidden border-t border-gray-200/50 dark:border-gray-800/50 bg-white/95 dark:bg-gray-950/95 backdrop-blur-xl"},W={class:"px-4 py-3 space-y-1"},J=["onClick"],K={class:"flex items-center space-x-2 px-3 py-1"},Z=_({__name:"AppHeader",setup(g){const{t:r,locale:c}=w(),s=z("switchLang",()=>{}),a=z("switchTheme",()=>{}),u=M(!1),m=[{id:"hero",key:"common.home"},{id:"projects",key:"common.projects"},{id:"services",key:"common.services"},{id:"opensource",key:"common.openSource"},{id:"contact",key:"common.contact"}];function h(x){u.value=!1;const l=document.getElementById(x);l&&l.scrollIntoView({behavior:"smooth"})}return(x,l)=>(n(),i("header",L,[e("div",V,[e("div",N,[e("a",{href:"#hero",class:"flex-shrink-0 font-bold text-xl tracking-tight bg-gradient-to-r from-blue-500 via-purple-500 to-indigo-500 bg-clip-text text-transparent",onClick:l[0]||(l[0]=C(d=>h("hero"),["prevent"]))}," æ¶µæ · Hanshu "),e("nav",R,[(n(),i(k,null,v(m,d=>e("button",{key:d.id,onClick:p=>h(d.id),class:"px-3 py-2 text-sm font-medium rounded-lg text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200"},o(t(r)(d.key)),9,E)),64))]),e("div",D,[e("button",{onClick:l[1]||(l[1]=(...d)=>t(s)&&t(s)(...d)),class:"px-3 py-2 text-sm font-medium rounded-lg text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200",title:t(r)("common.switchLang")},o(t(r)("common.switchLang")),9,O),e("button",{onClick:l[2]||(l[2]=(...d)=>t(a)&&t(a)(...d)),class:"p-2 rounded-lg text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200",title:t(r)("common.switchTheme")},[...l[6]||(l[6]=[e("svg",{class:"w-5 h-5 hidden dark:block",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})],-1),e("svg",{class:"w-5 h-5 block dark:hidden",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})],-1)])],8,P)]),e("button",{onClick:l[3]||(l[3]=d=>u.value=!u.value),class:"md:hidden p-2 rounded-lg text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors","aria-label":"Toggle menu"},[(n(),i("svg",U,[u.value?(n(),i("path",q)):(n(),i("path",F))]))])])]),f(B,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:A(()=>[u.value?(n(),i("div",G,[e("div",W,[(n(),i(k,null,v(m,d=>e("button",{key:d.id,onClick:p=>h(d.id),class:"block w-full text-left px-3 py-2.5 text-sm font-medium rounded-lg text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},o(t(r)(d.key)),9,J)),64)),l[8]||(l[8]=e("div",{class:"h-px bg-gray-200 dark:bg-gray-800 my-2"},null,-1)),e("div",K,[e("button",{onClick:l[4]||(l[4]=(...d)=>t(s)&&t(s)(...d)),class:"flex-1 py-2 text-sm font-medium rounded-lg text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},o(t(r)("common.switchLang")),1),e("button",{onClick:l[5]||(l[5]=(...d)=>t(a)&&t(a)(...d)),class:"p-2 rounded-lg text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[...l[7]||(l[7]=[e("svg",{class:"w-5 h-5 hidden dark:block",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})],-1),e("svg",{class:"w-5 h-5 block dark:hidden",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})],-1)])])])])])):j("",!0)]),_:1})]))}}),Q={id:"hero",class:"relative overflow-hidden scroll-mt-20"},X={class:"relative mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-24 sm:py-32 lg:py-40"},Y={class:"max-w-3xl"},ee={class:"text-sm font-medium tracking-widest uppercase text-blue-500 dark:text-blue-400 mb-3"},te={class:"text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight mb-4"},re={class:"bg-gradient-to-r from-blue-500 via-purple-500 to-indigo-500 bg-clip-text text-transparent"},oe={class:"text-lg sm:text-xl text-gray-500 dark:text-gray-400 font-mono tracking-tight mb-6"},se={class:"text-base sm:text-lg text-gray-600 dark:text-gray-400 leading-relaxed max-w-xl mb-10"},ae={class:"flex flex-col sm:flex-row gap-4"},le=_({__name:"HeroSection",setup(g){const{t:r}=w();function c(s){typeof document<"u"&&document.getElementById(s)?.scrollIntoView({behavior:"smooth"})}return(s,a)=>(n(),i("section",Q,[a[5]||(a[5]=e("div",{class:"absolute inset-0 bg-gradient-to-br from-blue-50 via-indigo-50/80 to-white dark:from-gray-950 dark:via-blue-950/20 dark:to-gray-950"},null,-1)),a[6]||(a[6]=e("div",{class:"absolute inset-0 opacity-[0.03] dark:opacity-[0.06] bg-[radial-gradient(circle_at_1px_1px,#6366f1_1px,transparent_0)] bg-[size:40px_40px]"},null,-1)),e("div",X,[e("div",Y,[e("p",ee,o(t(r)("home.hero.greeting")),1),e("h1",te,[e("span",re,o(t(r)("home.hero.name")),1)]),e("p",oe,o(t(r)("home.hero.subtitle")),1),e("p",se,o(t(r)("home.hero.description")),1),e("div",ae,[e("a",{href:"#projects",onClick:a[0]||(a[0]=C(u=>c("projects"),["prevent"])),class:"inline-flex items-center justify-center px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-blue-500 via-purple-500 to-indigo-500 shadow-lg shadow-blue-500/25 dark:shadow-purple-500/20 hover:shadow-xl hover:shadow-blue-500/30 dark:hover:shadow-
1purple-500/30 hover:scale-105 transition-all duration-300"},[y(o(t(r)("home.hero.cta_projects"))+" ",1),a[2]||(a[2]=e("svg",{class:"w-4 h-4 ml-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 9l-7 7-7-7"})],-1))]),e("a",{href:"#contact",onClick:a[1]||(a[1]=C(u=>c("contact"),["prevent"])),class:"inline-flex items-center justify-center px-6 py-3 rounded-xl font-semibold text-gray-700 dark:text-gray-300 bg-white/80 dark:bg-gray-900/60 backdrop-blur-sm border border-gray-200 dark:border-gray-700 hover:border-blue-300 dark:hover:border-blue-500 hover:text-blue-600 dark:hover:text-blue-400 hover:scale-105 transition-all duration-300"},o(t(r)("home.hero.cta_contact")),1)])]),a[3]||(a[3]=e("div",{class:"absolute top-1/4 right-0 w-72 sm:w-96 h-72 sm:h-96 bg-blue-500/10 dark:bg-blue-500/5 rounded-full blur-3xl pointer-events-none"},null,-1)),a[4]||(a[4]=e("div",{class:"absolute bottom-1/4 right-1/4 w-64 h-64 bg-purple-500/10 dark:bg-purple-500/5 rounded-full blur-3xl pointer-events-none"},null,-1))])]))}}),ne={id:"projects",class:"relative scroll-mt-20 py-24 sm:py-32"},ie={class:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},de={class:"text-center mb-16"},ce={class:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4"},he={class:"text-lg text-gray-500 dark:text-gray-400 max-w-2xl mx-auto"},ue={class:"grid lg:grid-cols-2 gap-8 max-w-5xl mx-auto"},me={class:"group relative rounded-2xl bg-white dark:bg-gray-900/60 backdrop-blur-xl border border-gray-100 dark:border-gray-800 shadow-sm dark:shadow-none p-8 transition-all duration-300 hover:-translate-y-1 hover:shadow-xl dark:hover:shadow-2xl dark:hover:shadow-blue-500/5"},ge={class:"text-2xl font-bold text-gray-900 dark:text-white mb-2"},xe={class:"text-xs font-medium text-blue-500 dark:text-blue-400 uppercase tracking-wider mb-4"},pe={class:"text-gray-600 dark:text-gray-400 leading-relaxed mb-6"},be={class:"flex flex-wrap gap-2 mb-6"},ke={class:"space-y-2.5 mb-8"},ve=["href"],ye={class:"group relative rounded-2xl bg-white dark:bg-gray-900/60 backdrop-blur-xl border border-gray-100 dark:border-gray-800 shadow-sm dark:shadow-none p-8 transition-all duration-300 hover:-translate-y-1 hover:shadow-xl dark:hover:shadow-2xl dark:hover:shadow-purple-500/5"},fe={class:"text-2xl font-bold text-gray-900 dark:text-white mb-2"},_e={class:"text-xs font-medium text-purple-500 dark:text-purple-400 uppercase tracking-wider mb-4"},we={class:"text-gray-600 dark:text-gray-400 leading-relaxed mb-6"},$e={class:"flex flex-wrap gap-2 mb-6"},Ce={class:"space-y-2.5 mb-8"},je=["href"],Me={class:"group relative rounded-2xl bg-white dark:bg-gray-900/60 backdrop-blur-xl border border-gray-100 dark:border-gray-800 shadow-sm dark:shadow-none p-8 transition-all duration-300 hover:-translate-y-1 hover:shadow-xl dark:hover:shadow-2xl dark:hover:shadow-amber-500/5"},ze={class:"text-2xl font-bold text-gray-900 dark:text-white mb-2"},Se={class:"text-xs font-medium text-amber-500 dark:text-amber-400 uppercase tracking-wider mb-4"},Be={class:"text-gray-600 dark:text-gray-400 leading-relaxed mb-6"},Ae={class:"flex flex-wrap gap-2 mb-6"},Ie={class:"space-y-2.5 mb-8"},He=["href"],Te=_({__name:"ProjectsSection",setup(g){const{t:r,tm:c}=w(),s=(()=>{const l=c("home.projects.resume_assistant.techStack");return Array.isArray(l)?l:[]})(),a=(()=>{const l=c("home.projects.resume_assistant.highlights");return Array.isArray(l)?l:[]})(),u=(()=>{const l=c("home.projects.log_system.techStack");return Array.isArray(l)?l:[]})(),m=(()=>{const l=c("home.projects.log_system.highlights");return Array.isArray(l)?l:[]})(),h=(()=>{const l=c("home.projects.zhihu_ai_works.techStack");return Array.isArray(l)?l:[]})(),x=(()=>{const l=c("home.projects.zhihu_ai_works.highlights");return Array.isArray(l)?l:[]})();return(l,d)=>(n(),i("section",ne,[d[9]||(d[9]=e("div",{class:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-gray-300 dark:via-gray-700 to-transparent"},null,-1)),e("div",ie,[e("div",de,[e("h2",ce,o(t(r)("home.projects.title")),1),e("p",he,o(t(r)("home.projects.subtitle")),1)]),e("div",ue,[e("div",me,[d[2]||(d[2]=e("div",{class:"w-12 h-12 rounded-xl bg-gradient-to-br from-blue-500/10 to-purple-500/10 dark:from-blue-500/20 dark:to-purple-500/20 flex items-center justify-center mb-6 ring-1 ring-blue-500/10 dark:ring-blue-500/20"},[e("svg",{class:"w-6 h-6 text-blue-500 dark:text-blue-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})])],-1)),e("h3",ge,o(t(r)("home.projects.resume_assistant.title")),1),e("p",xe,o(t(r)("home.projects.resume_assistant.role")),1),e("p",pe,o(t(r)("home.projects.resume_assistant.description")),1),e("div",be,[(n(!0),i(k,null,v(t(s),p=>(n(),i("span",{key:p,class:"px-3 py-1 text-xs font-medium rounded-full bg-blue-50 dark:bg-blue-500/10 text-blue-600 dar
1k:text-blue-300 border border-blue-100 dark:border-blue-500/20"},o(p),1))),128))]),e("ul",ke,[(n(!0),i(k,null,v(t(a),(p,$)=>(n(),i("li",{key:$,class:"flex items-start text-sm text-gray-600 dark:text-gray-400"},[d[0]||(d[0]=e("svg",{class:"w-4 h-4 text-green-500 mr-2.5 mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"})],-1)),y(" "+o(p),1)]))),128))]),e("a",{href:t(r)("home.projects.resume_assistant.link"),target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center justify-center w-full py-3 rounded-xl font-semibold text-sm text-white bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 shadow-md shadow-blue-500/20 hover:shadow-lg hover:shadow-blue-500/30 transition-all duration-300"},[y(o(t(r)("common.learnMore"))+" ",1),d[1]||(d[1]=e("svg",{class:"w-4 h-4 ml-1.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0l-4 4m4-4H3"})],-1))],8,ve)]),e("div",ye,[d[5]||(d[5]=e("div",{class:"w-12 h-12 rounded-xl bg-gradient-to-br from-purple-500/10 to-indigo-500/10 dark:from-purple-500/20 dark:to-indigo-500/20 flex items-center justify-center mb-6 ring-1 ring-purple-500/10 dark:ring-purple-500/20"},[e("svg",{class:"w-6 h-6 text-purple-500 dark:text-purple-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})])],-1)),e("h3",fe,o(t(r)("home.projects.log_system.title")),1),e("p",_e,o(t(r)("home.projects.log_system.role")),1),e("p",we,o(t(r)("home.projects.log_system.description")),1),e("div",$e,[(n(!0),i(k,null,v(t(u),p=>(n(),i("span",{key:p,class:"px-3 py-1 text-xs font-medium rounded-full bg-purple-50 dark:bg-purple-500/10 text-purple-600 dark:text-purple-300 border border-purple-100 dark:border-purple-500/20"},o(p),1))),128))]),e("ul",Ce,[(n(!0),i(k,null,v(t(m),(p,$)=>(n(),i("li",{key:$,class:"flex items-start text-sm text-gray-600 dark:text-gray-400"},[d[3]||(d[3]=e("svg",{class:"w-4 h-4 text-green-500 mr-2.5 mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"})],-1)),y(" "+o(p),1)]))),128))]),e("a",{href:t(r)("home.projects.log_system.link"),target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center justify-center w-full py-3 rounded-xl font-semibold text-sm text-white bg-gradient-to-r from-purple-500 to-indigo-500 hover:from-purple-600 hover:to-indigo-600 shadow-md shadow-purple-500/20 hover:shadow-lg hover:shadow-purple-500/30 transition-all duration-300"},[y(o(t(r)("common.learnMore"))+" ",1),d[4]||(d[4]=e("svg",{class:"w-4 h-4 ml-1.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0l-4 4m4-4H3"})],-1))],8,je)]),e("div",Me,[d[8]||(d[8]=e("div",{class:"w-12 h-12 rounded-xl bg-gradient-to-br from-amber-500/10 to-amber-600/10 dark:from-amber-500/20 dark:to-amber-600/20 flex items-center justify-center mb-6 ring-1 ring-amber-500/10 dark:ring-amber-500/20"},[e("svg",{class:"w-6 h-6 text-amber-500 dark:text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"})])],-1)),e("h3",ze,o(t(r)("home.projects.zhihu_ai_works.title")),1),e("p",Se,o(t(r)("home.projects.zhihu_ai_works.role")),1),e("p",Be,o(t(r)("home.projects.zhihu_ai_works.description")),1),e("div",Ae,[(n(!0),i(k,null,v(t(h),p=>(n(),i("span",{key:p,class:"px-3 py-1 text-xs font-medium rounded-full bg-amber-50 dark:bg-amber-500/10 text-amber-600 dar
1k:text-amber-300 border border-amber-100 dark:border-amber-500/20"},o(p),1))),128))]),e("ul",Ie,[(n(!0),i(k,null,v(t(x),(p,$)=>(n(),i("li",{key:$,class:"flex items-start text-sm text-gray-600 dark:text-gray-400"},[d[6]||(d[6]=e("svg",{class:"w-4 h-4 text-green-500 mr-2.5 mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"})],-1)),y(" "+o(p),1)]))),128))]),e("a",{href:t(r)("home.projects.zhihu_ai_works.link"),target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center justify-center w-full py-3 rounded-xl font-semibold text-sm text-white bg-gradient-to-r from-amber-500 to-amber-600 hover:from-amber-600 hover:to-amber-700 shadow-md shadow-amber-500/20 hover:shadow-lg hover:shadow-amber-500/30 transition-all duration-300"},[y(o(t(r)("common.learnMore"))+" ",1),d[7]||(d[7]=e("svg",{class:"w-4 h-4 ml-1.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0l-4 4m4-4H3"})],-1))],8,He)])])])]))}}),Le={id:"services",class:"relative scroll-mt-20 overflow-hidden py-24 sm:py-32 bg-gray-950 text-white"},Ve={class:"relative mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},Ne={class:"grid gap-12 lg:grid-cols-[0.82fr_1.18fr] lg:gap-16"},Re={class:"lg:pt-3"},Ee={class:"mb-4 text-sm font-semibold uppercase tracking-[0.22em] text-blue-300"},De={class:"text-3xl font-bold tracking-tight sm:text-4xl"},Oe={class:"mt-5 max-w-xl text-lg leading-relaxed text-gray-300"},Pe={class:"mt-8 flex items-center gap-3 text-sm text-blue-100"},Ue={class:"grid gap-4 sm:grid-cols-3 lg:grid-cols-1 xl:grid-cols-3"},Fe={class:"mb-5 flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-blue-400 to-indigo-500 text-sm font-bold shadow-lg shadow-blue-500/20"},qe={class:"text-lg font-bold"},Ge={class:"mt-3 min-h-20 text-sm leading-relaxed text-gray-300"},We={class:"mt-5 space-y-2 border-t border-white/10 pt-4"},Je=_({__name:"ServicesSection",setup(g){const{t:r,tm:c}=w(),s=(()=>{const u=c("home.services.items");return Array.isArray(u)?u:[]})();function a(){document.getElementById("contact")?.scrollIntoView({behavior:"smooth"})}return(u,m)=>(n(),i("section",Le,[m[3]||(m[3]=e("div",{class:"absolute inset-0 bg-[radial-gradient(circle_at_top_right,_rgba(99,102,241,0.24),_transparent_34%),radial-gradient(circle_at_bottom_left,_rgba(59,130,246,0.18),_transparent_36%)]"},null,-1)),m[4]||(m[4]=e("div",{class:"absolute inset-0 opacity-[0.12] bg-[radial-gradient(circle_at_1px_1px,#a5b4fc_1px,transparent_0)] bg-[size:28px_28px]"},null,-1)),e("div",Ve,[e("div",Ne,[e("div",Re,[e("p",Ee,o(t(r)("home.services.eyebrow")),1),e("h2",De,o(t(r)("home.services.title")),1),e("p",Oe,o(t(r)("home.services.subtitle")),1),e("div",Pe,[m[0]||(m[0]=e("span",{class:"flex h-8 w-8 items-center justify-center rounded-full border border-blue-300/30 bg-blue-400/10 font-semibold"},"1",-1)),e("span",null,o(t(r)("home.services.process")),1)]),e("button",{type:"button",class:"mt-8 inline-flex items-center rounded-xl bg-white px-5 py-3 text-sm font-semibold text-gray-950 shadow-lg shadow-blue-900/30 transition hover:-translate-y-0.5 hover:bg-blue-50",onClick:a},[y(o(t(r)("home.services.cta"))+" ",1),m[1]||(m[1]=e("svg",{class:"ml-2 h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0-4 4m4-4H3"})],-1))])]),e("div",Ue,[(n(!0),i(k,null,v(t(s),(h,x)=>(n(),i("article",{key:h.title,class:"group rounded-2xl border border-white/10 bg-white/[0.06] p-6 backdrop-blur-sm transition duration-300 hover:-translate-y-1 hover:border-blue-300/40 hover:bg-white/[0.10]"},[e("div",Fe," 0"+o(x+1),1),e("h3",qe,o(h.title),1),e("p",Ge,o(h.description),1),e("ul",We,[(n(!0),i(k,null,v(h.deliverables,l=>(n(),i("li",{key:l,class:"flex gap-2 text-xs leading-relaxed text-blue-100"},[m[2]||(m[2]=e("svg",{class:"mt-0.5 h-3.5 w-3.5 shrink-0 text-blue-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m5 12 4 4L19 6"})],-1)),y(" "+o(l),1)]))),128))])]))),128))])])])]))}}),Ke=[{name:"micro_proxy",description:{zh:"ä¸ä¸ªç¨äºç®¡çå¾®åºç¨çå·¥å
·ï¼æ¯æ Docker éåæå»ºãå
1®¹å¨ç®¡çãNginx åå代çé
ç½®çåè½ãç¨ Rust ç¼åï¼æ³¨éæ§è½åå¯é æ§ã",en:"A micro-app management tool built with Rust. Supports Docker image building, container management, and Nginx reverse proxy configuration. Performance and reliability focused."},stars:0,tags:["Rust","Docker","Nginx","Microservices"],link:"https://github.com/cao5zy/proxy-config"},{name:"CLI Coder GUI",description:{zh:"为 cli_coder å½ä»¤è¡å·¥å
·æä¾çå¾å½¢ç¨æ·çé¢ï¼GUIï¼ï¼è®© AI ç¼ç¨è¾
婿´ç´è§æç¨ãåºäº Vue 3 + TypeScript æå»ºã",en:"A graphical user interface for the cli_coder command-line tool, making AI-assisted programming more intuitive and accessible. Built with Vue 3 + TypeScript."},stars:1,tags:["AI","VibeCoding","Agents"],link:"https://gitee.com/hanshu_alan/coding_app"},{name:"cli_assistant",description:{zh:"ä¸ä¸ªå½ä»¤è¡ç¥è¯ç®¡çå·¥å
·ï¼ç¨äºç®¡çå AI è天çå
容ï¼å®ç°ä¸ªäººæå¢éç¥è¯åºçæç»ç§¯ç´¯ãRust ç¼åï¼é«æå¯é ã",en:"A command-line knowledge management tool for organizing AI chat history, enabling personal and team knowledge base accumulation. Written in Rust for efficiency."},stars:1,tags:["AI","KnowledgeBase"],link:"https://gitee.com/hanshu_alan/cli_assistant"}
1,{name:"vite-plugin-property-paths-to-types",description:{zh:"ä¸ä¸ª Vite æä»¶ï¼èªå¨ä» JSON é
ç½®æä»¶çæ TypeScript ç±»åå®ä¹ãæåé
置类åå®å
¨ï¼åå°æå¨ç»´æ¤ç±»åçå·¥ä½éã",en:"A Vite plugin that automatically generates TypeScript type definitions from JSON configuration files. Improves type safety and reduces manual type maintenance."},stars:1,tags:["Vite","TypeScript"],link:"https://github.com/cao5zy/vite-plugin-property-paths-to-types"},{name:"blogstore",description:{zh:"èªæç®¡å客弿ï¼ç¨ Rust æå»ºãæ¯æå¨ Obsidian ç Markdown ç¼è¾å¨ä¸åä½ï¼éè¿ CLI ä¸ä¼ ï¼å¿«é SSR 渲æé¡µé¢ã",en:"A self-hosted blog engine built with Rust. Write posts in Obsidian (or any Markdown editor), upload via CLI, and serve fast SSR HTML pages."},stars:0,tags:["Rust","Blog","SSR"],link:"https://github.com/cao5zy/blogstore"}],Ze={id:"opensource",class:"relative scroll-mt-20 py-24 sm:py-32 bg-gray-50/50 dark:bg-gray-900/30"},Qe={class:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},Xe={class:"text-center mb-16"},Ye={class:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4"},et={class:"text-lg text-gray-500 dark:text-gray-400 max-w-2xl mx-auto"},tt={class:"grid sm:grid-cols-2 gap-6 max-w-5xl mx-auto"},rt={class:"flex items-start justify-between mb-3"},ot={class:"text-lg font-bold text-gray-900 dark:text-white group-hover:text-blue-500 dark:group-hover:text-blue-400 transition-colors"},st={class:"flex items-center text-amber-500 flex-shrink-0 ml-3"},at={class:"ml-1 text-sm font-medium text-gray-500 dark:text-gray-400"},lt={class:"text-sm text-gray-600 dark:text-gray-400 leading-relaxed mb-4 line-clamp-2"},nt={class:"flex flex-wrap gap-1.5 mb-5"},it=["href"],dt={class:"text-center mt-12"},ct={href:"https://github.com/cao5zy",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center text-sm font-semibold text-blue-500 dark:text-blue-400 hover:text-blue-600 dark:hover:text-blue-300 transition-colors group"},ht=_({__name:"OpenSourceSection",setup(g){const{t:r,locale:c}=w();return(s,a)=>(n(),i("section",Ze,[a[3]||(a[3]=e("div",{class:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-gray-300 dark:via-gray-700 to-transparent"},null,-1)),e("div",Qe,[e("div",Xe,[e("h2",Ye,o(t(r)("home.openSource.title")),1),e("p",et,o(t(r)("home.openSource.subtitle")),1)]),e("div",tt,[(n(!0),i(k,null,v(t(Ke),u=>(n(),i("div",{key:u.name,class:"group relative rounded-2xl bg-white dark:bg-gray-900/60 backdrop-blur-xl border border-gray-100 dark:border-gray-800 p-6 transition-all duration-300 hover:-translate-y-1 hover:shadow-lg dark:hover:shadow-xl dark:hover:shadow-blue-500/5"},[e("div",rt,[e("h3",ot,o(u.name),1),e("div",st,[a[0]||(a[0]=e("svg",{class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},[e("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"})],-1)),e("span",at,o(u.stars),1)])]),e("p",lt,o(t(c)==="en"?u.description.en:u.description.zh),1),e("div",nt,[(n(!0),i(k,null,v(u.tags,m=>(n(),i("span",{key:m,class:"px-2.5 py-0.5 text-xs font-medium rounded-full bg-blue-50 dark:bg-blue-500/10 text-blue-600 dark:text-blue-300 border border-blue-100 dark:border-blue-500/20"},o(m),1))),128))]),e("a",{href:u.link,target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center text-sm font-medium text-gray-500 dark:text-gray-400 hover:text-blue-500 dark:hover:text-blue-400 transition-colors"},[...a[1]||(a[1]=[e("svg",{class:"w-4 h-4 mr-1.5",fill:"currentColor",viewBox:"0 0 24 24"},[e("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1),y(" GitHub ",-1)])],8,it)]))),128))]),e("div",dt,[e("a",ct,[y(o(t(r)("home.openSource.viewAll"))+" ",1),a[2]||(a[2]=e("svg",{class:"w-4 h-4 ml-1 group-hover:translate-x-0.5 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0l-4 4m4-4H3"})],-1))])])])]))}}),S=(g,r)=>{const c=g.__vccOpts||g;for(const[s,a]of r)c[s]=a;return c},ut=S(ht,[["__scopeId","data-v-bfe1b1d9"]]),b={name:{zh:"æ¶µæ ",en:"Hanshu"},author:{email:"[email protected]",wechat:"a83637638"},social:{github:"https://github.com/cao5zy",zhihu:"https://www.zhihu.com/people/cao-zong-ying-58"},blog:{baseUrl:"/blog-store",apiPath:"/api/posts",perPage:6}
1,copyright:"Copyright © 2026 All Rights Reserved",icp:"æ¸ICPå¤2026002469å·"},mt={id:"blog",class:"relative scroll-mt-20 py-24 sm:py-32"},gt={class:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},xt={class:"text-center mb-16"},pt={class:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4"},bt={class:"text-lg text-gray-500 dark:text-gray-400 max-w-2xl mx-auto"},kt={key:0,class:"flex flex-col items-center justify-center py-20"},vt={class:"text-gray-500 dark:text-gray-400"},yt={key:1,class:"text-center py-20"},ft={class:"text-gray-500 dark:text-gray-400"},_t={key:2,class:"text-center py-20"},wt={class:"text-gray-500 dark:text-gray-400"},$t={key:3,class:"grid gap-8 md:grid-cols-2 lg:grid-cols-3"},Ct=["href"],jt={class:"text-xs font-medium text-gray-400 dark:text-gray-500 mb-3"},Mt={class:"text-lg font-bold text-gray-900 dark:text-white mb-2 group-hover:text-emerald-600 dark:group-hover:text-emerald-400 transition-colors line-clamp-2"},zt={class:"text-sm text-gray-600 dark:text-gray-400 leading-relaxed mb-4 line-clamp-3 flex-grow"},St={key:0,class:"flex flex-wrap gap-1.5"},Bt={key:4,class:"text-center mt-12"},At=["href"],It=_({__name:"BlogSection",setup(g){const{t:r,locale:c}=w(),s=M([]),a=M("loading"),u=m=>{const h=new Date(m);return Number.isNaN(h.getTime())?"":new Intl.DateTimeFormat(c.value==="en"?"en-US":"zh-CN",{year:"numeric",month:"short",day:"numeric"}).format(h)};return I(async()=>{try{const m=`${b.blog.baseUrl}${b.blog.apiPath}?status=published&page=1&per_page=${b.blog.perPage}`,h=await fetch(m);if(!h.ok)throw new Error(`Failed to fetch posts: ${h.status}`);const x=await h.json();s.value=x.items??[],a.value="ready"}catch{a.value="error"}}),(m,h)=>(n(),i("section",mt,[h[4]||(h[4]=e("div",{class:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-gray-300 dark:via-gray-700 to-transparent"},null,-1)),e("div",gt,[e("div",xt,[e("h2",pt,o(t(r)("home.blog.title")),1),e("p",bt,o(t(r)("home.blog.subtitle")),1)]),a.value==="loading"?(n(),i("div",kt,[h[0]||(h[0]=e("svg",{class:"w-8 h-8 text-emerald-500 animate-spin mb-4",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)),e("p",vt,o(t(r)("home.blog.loading")),1)])):a.value==="error"?(n(),i("div",yt,[h[1]||(h[1]=e("svg",{class:"w-10 h-10 mx-auto text-gray-300 dark:text-gray-600 mb-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"})],-1)),e("p",ft,o(t(r)("home.blog.error")),1)])):s.value.length===0?(n(),i("div",_t,[h[2]||(h[2]=e("svg",{class:"w-10 h-10 mx-auto text-gray-300 dark:text-gray-600 mb-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"})],-1)),e("p",wt,o(t(r)("home.blog.empty")),1)])):(n(),i("div",$t,[(n(!0),i(k,null,v(s.value,x=>(n(),i("a",{key:x.slug,href:`${t(b).blog.baseUrl}/posts/${x.slug}`,target:"_blank",rel:"noopener",class:"group flex flex-col rounded-2xl bg-white dark:bg-gray-900/60 backdrop-blur-xl border border-gray-200 dark:border-gray-800 p-6 transition-all duration-300 hover:-translate-y-1 hover:shadow-xl"},[e("time",jt,o(u(x.created_at)),1),e("h3",Mt,o(x.title),1),e("p",zt,o(x.excerpt),1),x.tags.length?(n(),i("div",St,[(n(!0),i(k,null,v(x.tags,l=>(n(),i("span",{key:l,class:"px-2.5 py-0.5 text-xs font-medium rounded-full bg-emerald-50 dark:bg-emerald-500/10 text-emerald-700 dark:text-emerald-400"},o(l),1))),128))])):j("",!0)],8,Ct))),128))])),a.value==="ready"&&s.value.length>0?(n(),i("div",Bt,[e("a",{href:t(b).blog.baseUrl,target:"_blank",rel:"noopener",class:"inline-flex items-center text-sm font-semibold text-emerald-600 dark:text-emerald-400 hover:text-emerald-700 dark:hover:text-emerald-300 transition-colors group"},[y(o(t(r)("home.blog.viewAll"))+" ",1),h[3]||(h[3]=e("svg",{class:"w-4 h-4 ml-1 group-hover:translate-x-0.5 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17 8l4 4m0 0l-4 4m4-4H3"})],-1))],8,At)])):j("",!0)])]))}}),Ht=S(It,[["__scopeId","data-v-b876e072"]]),Tt={id:"contact",class:"relative scroll-mt-20 py-24 sm:py-32"},Lt={class:"relative mx-auto max-w-6xl px-4 sm:px-6 lg:px-8"},Vt={class:"max-w-2xl mx-auto text-center mb-12"},Nt={class:"text-3xl sm:text-4xl font-bold text-white mb-4"},Rt={class:"text-lg text-blue-200/80 dark:text-indigo-200/80"},Et={class:"max-w-lg mx-auto rounded-2xl bg-white/10 dark:bg-white/5 backdrop-blur-xl border border-white/10 dark:border-white/5 p-8 sm:p-10 shadow-2xl"},Dt={class:"flex items-center mb-6 pb-6 border-b border-white/10"},Ot={class:"text-xs font-medium text-blue-300/70 uppercase tracking-wider mb-0.5"},Pt=["href"],Ut={class:"flex items-center mb-6 pb-6 border-b border-white/10"},Ft={class:"text-xs font-medium text-green-300/70 uppercase tracking-wider mb-0.5"},qt={class:"text-sm sm:text-base text-white/90"},Gt={class:"flex items-center mb-8"},Wt={class:"text-xs font-medium text-gray-300/70 uppercase tracking-wider mb-0.5"},Jt=["href"],Kt=["href"],Zt=_({__name:"ContactSection",setup(g){const{t:r}=w();return(c,s)=>(n(),i("section",Tt,[s[4]||(s[4]=e("div",{class:"absolute inset-0 bg-gradient-to-br from-gray-900 via-indigo-950/40 to-gray-900 dark:from-gray-950 dark:via-indigo-950/30 dark:to-gray-950"},null,-1)),s[5]||(s[5]=e("div",{class:"absolute inset-0 opacity-[0.04] bg-[radial-gradient(circle_at_1px_1px,#818cf8_1px,transparent_0)] bg-[size:32px_32px]"},null,-1)),e("div",Lt,[e("div",Vt,[e("h2",Nt,o(t(r)("home.contact.title")),1),e("p",Rt,o(t(r)("home.contact.subtitle")),1)]),e("div",Et,[e("div",Dt,[s[0]||(s[0]=e("div",{class:"w-10 h-10 rounded-xl bg-blue-500/20 flex items-center justify-center flex-shrink-0 mr-4"},[e("svg",{class:"w-5 h-5 text-blue-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})])],-1)),e("div",null,[e("p",Ot,o(t(r)("home.contact.email")),1),e("a",{href:"mailto:"+t(b).author.email,class:"text-sm sm:text-base text-white/90 hover:text-blue-300 transition-colors"},o(t(b).author.email),9,Pt)])]),e("div",Ut,[s[1]||(s[1]=e("div",{class:"w-10 h-10 rounded-xl bg-green-500/20 flex items-center justify-center flex-shrink-0 mr-4"},[e("svg",{class:"w-5 h-5 text-green-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.25
15-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})])],-1)),e("div",null,[e("p",Ft,o(t(r)("home.contact.wechat")),1),e("p",qt,o(t(b).author.wechat),1)])]),e("div",Gt,[s[2]||(s[2]=e("div",{class:"w-10 h-10 rounded-xl bg-gray-500/20 flex items-center justify-center flex-shrink-0 mr-4"},[e("svg",{class:"w-5 h-5 text-gray-300",fill:"currentColor",viewBox:"0 0 24 24"},[e("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})])],-1)),e("div",null,[e("p",Wt,o(t(r)("home.contact.github")),1),e("a",{href:t(b).social.github,target:"_blank",rel:"noopener noreferrer",class:"text-sm sm:text-base text-white/90 hover:text-blue-300 transition-colors"},o(t(b).social.github),9,Jt)])]),e("a",{href:"mailto:"+t(b).author.email,class:"flex items-center justify-center w-full py-3.5 rounded-xl font-semibold text-white bg-gradient-to-r from-blue-500 via-purple-500 to-indigo-500 shadow-lg shadow-blue-500/20 hover:shadow-xl hover:shadow-blue-500/30 hover:scale-[1.02] transition-all duration-300"},[s[3]||(s[3]=e("svg",{class:"w-5 h-5 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),y(" "+o(t(r)("home.contact.cta")),1)],8,Kt)])])]))}}),Qt="/wexin-gongzhonghao.jpg",Xt={class:"relative bg-gray-50 dark:bg-gray-950 border-t border-gray-100 dark:border-gray-800/50"},Yt={class:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-12"},er={class:"flex flex-col md:flex-row items-center justify-between gap-8"},tr={class:"flex items-center space-x-5"},rr=["href"],or=["href"],sr={class:"text-center md:text-right"},ar={class:"text-xs text-gray-400 dark:text-gray-500"},lr={class:"text-xs text-gray-400 dark:text-gray-500 mt-1"},nr=_({__name:"AppFooter",setup(g){const{t:r}=w();return(c,s)=>(n(),i("footer",Xt,[e("div",Yt,[e("div",er,[s[3]||(s[3]=e("a",{href:"#hero",class:"font-bold text-xl tracking-tight bg-gradient-to-r from-blue-500 via-purple-500 to-indigo-500 bg-clip-text text-transparent"}," æ¶µæ · Hanshu ",-1)),e("div",tr,[e("a",{href:t(b).social.github,target:"_blank",rel:"noopener noreferrer",class:"text-gray-400 dark:text-gray-500 hover:text-gray-900 dark:hover:text-white transition-colors",title:"GitHub"},[...s[0]||(s[0]=[e("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24"},[e("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)])],8,rr),e("a",{href:t(b).social.zhihu,target:"_blank",rel:"noopener noreferrer",class:"text-gray-400 dark:text-gray-500 hover:text-blue-500 transition-colors",title:"Zhihu"},[...s[1]||(s[1]=[e("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24"},[e("path",{d:"M13.444 18.258h-2.282l3.156-7.328h2.283l-3.157 7.328zm-11.34-8.32h5.97v1.35h-
15.97v-1.35zm7.378 9.562h-9.482v-1.357h9.482v1.357zm1.104-8.212h2.28l-3.156 7.327h-2.283l3.159-7.327zm4.672-8.288h1.359v8.444h-1.359v-8.444zm-12.47 0h1.359v8.445h-1.359v-8.445zm17.212 13.177c-.458 1.253-1.384 2.135-2.432 2.523-1.049.389-2.18.48-3.241.27-1.062-.21-2.018-.668-2.747-1.356-.73-.688-1.214-1.585-1.407-2.612-.194-1.027-.132-2.1.193-3.11.325-1.009.916-1.903 1.718-2.588.803-.686 1.762-1.138 2.803-1.31 1.041-.172 2.131-.066 3.14.326 1.01.392 1.888 1.04 2.559 1.92l-1.058.846c-.487-.64-1.122-1.14-1.86-1.441-.738-.3-1.547-.386-2.323-.218-.776.168-1.462.514-2.002 1.05-.54.537-.892 1.214-1.022 1.991-.13.777-.057 1.569.214 2.267.27.699.715 1.273 1.287 1.678.571.406 1.255.623 1.96.635.704.012 1.405-.196 1.994-.618.588-.422 1.042-1.013 1.29-1.721l1.068.849z"})],-1)])],8,or),s[2]||(s[2]=e("span",{class:"text-gray-400 dark:text-gray-500 cursor-default",title:"WeChat: a83637638"},[e("svg",{class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})])],-1))]),s[4]||(s[4]=e("div",{class:"flex flex-col items-center"},[e("img",{src:Qt,alt:"微信å
¬ä¼å·äºç»´ç ",class:"h-24 rounded-lg shadow-sm"}),e("span",{class:"text-xs text-gray-400 dark:text-gray-500 mt-2"}," 微信å
¬ä¼å· ")],-1)),e("div",sr,[e("p",ar,o(t(b).copyright),1),e("p",lr,o(t(b).icp),1)])])])]))}}),ir={class:"min-h-screen bg-gray-50 dark:bg-gray-950 text-gray-900 dark:text-white antialiased"},cr=_({__name:"index",setup(g){const{t:r}=w();function c(s){const a=document.getElementById(s);a&&a.scrollIntoView({behavior:"smooth"})}return H("scrollTo",c),T({title:r("home.hero.name")+" â "+r("home.hero.subtitle"),description:r("home.hero.description")}),(s,a)=>(n(),i("div",ir,[f(Z),e("main",null,[f(le),f(Te),f(Je),f(ut),f(Ht),f(Zt)]),f(nr)]))}});export{cr 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.