个人网站最容易失败的地方,不是设计不够复杂,而是维护成本太高:想写文章时还要先修环境,想改一句话又担心碰坏线上应用。

这次把目标定得很窄:内容优先、纯静态、自动部署、主站与业务应用完全隔离。

Astro 负责页面,Markdown 负责内容

页面由 Astro 组件组成,文章放在 Content Collections 里,可以直接使用 Markdown 或 MDX。

src/
├── content/blog/   # 文章
├── layouts/        # 页面框架
├── components/     # 可复用组件
└── pages/          # 路由入口

这种结构的优点是路径直观。新增一篇文章,就是新增一个 .md 或 .mdx 文件;新增一个页面,就是新增一个路由文件。

静态站也要把基础做完整

纯静态不等于功能少。这个站同时包含:

这些能力可以由构建过程生成,不需要在服务器上运行额外程序。

部署只保留一条路径

代码推到 GitHub 后,由 ESA Pages 自动执行:

npm run build

构建产物输出到 dist/,随后发布到 CDN。整个流程没有服务器、没有手工上传,也没有“本机可以、线上不行”的环境差异。

网站不是一次性作品。能把发布这一步做得没有心理负担,内容才有可能持续更新。