本博客采用 Sanity + Nuxt + Cloudflare Pages 架构,文章从撰写到上线的完整流程如下:
1. 在 Sanity Studio 撰写文章
打开 Sanity Studio(writer-blog-2024.sanity.studio),创建新的「文章」文档。填写标题、Slug、发布时间和正文内容,完成后点击「Publish」发布。
2. Webhook 自动触发构建
Sanity 配置了 GROQ-powered Webhook,当 post 类型的文档被创建、更新或删除时,会向 GitHub API 发送 repository_dispatch 事件(event_type: sanity-publish)。
3. GitHub Actions 重新构建
GitHub Actions 工作流监听 repository_dispatch 事件,自动执行 nuxt generate 静态构建。构建过程中,Nuxt 通过 Sanity Client 拉取所有文章数据,生成静态 HTML 页面。
4. 部署到 Cloudflare Pages
构建完成后,GitHub Actions 使用 Wrangler 将生成的静态文件上传到 Cloudflare Pages。几分钟后,新文章即可在博客站点上访问。
总结
整个流程完全自动化:撰写 → 发布 → Webhook → 构建 → 部署。作者只需在 Sanity Studio 中编写并发布文章,无需手动操作任何部署步骤。