[{"data":1,"prerenderedAt":100},["ShallowReactive",2],{"$ffVHTZhDAwJanTeCM_H9p_9Q_UgPvBfg_4xzak_Liwao":3},{"_id":4,"body":5,"publishedAt":98,"title":99},"77u2pKEdX2tsZkin9LhQBf",[6,17,26,34,42,50,58,66,74,82,90],{"_key":7,"_type":8,"children":9,"markDefs":15,"style":16},"b1","block",[10],{"_key":11,"_type":12,"marks":13,"text":14},"s1","span",[],"本博客采用 Sanity + Nuxt + Cloudflare Pages 架构，文章从撰写到上线的完整流程如下：",[],"normal",{"_key":18,"_type":8,"children":19,"markDefs":24,"style":25},"b2",[20],{"_key":21,"_type":12,"marks":22,"text":23},"s2",[],"1. 在 Sanity Studio 撰写文章",[],"h2",{"_key":27,"_type":8,"children":28,"markDefs":33,"style":16},"b3",[29],{"_key":30,"_type":12,"marks":31,"text":32},"s3",[],"打开 Sanity Studio（writer-blog-2024.sanity.studio），创建新的「文章」文档。填写标题、Slug、发布时间和正文内容，完成后点击「Publish」发布。",[],{"_key":35,"_type":8,"children":36,"markDefs":41,"style":25},"b4",[37],{"_key":38,"_type":12,"marks":39,"text":40},"s4",[],"2. Webhook 自动触发构建",[],{"_key":43,"_type":8,"children":44,"markDefs":49,"style":16},"b5",[45],{"_key":46,"_type":12,"marks":47,"text":48},"s5",[],"Sanity 配置了 GROQ-powered Webhook，当 post 类型的文档被创建、更新或删除时，会向 GitHub API 发送 repository_dispatch 事件（event_type: sanity-publish）。",[],{"_key":51,"_type":8,"children":52,"markDefs":57,"style":25},"b6",[53],{"_key":54,"_type":12,"marks":55,"text":56},"s6",[],"3. GitHub Actions 重新构建",[],{"_key":59,"_type":8,"children":60,"markDefs":65,"style":16},"b7",[61],{"_key":62,"_type":12,"marks":63,"text":64},"s7",[],"GitHub Actions 工作流监听 repository_dispatch 事件，自动执行 nuxt generate 静态构建。构建过程中，Nuxt 通过 Sanity Client 拉取所有文章数据，生成静态 HTML 页面。",[],{"_key":67,"_type":8,"children":68,"markDefs":73,"style":25},"b8",[69],{"_key":70,"_type":12,"marks":71,"text":72},"s8",[],"4. 部署到 Cloudflare Pages",[],{"_key":75,"_type":8,"children":76,"markDefs":81,"style":16},"b9",[77],{"_key":78,"_type":12,"marks":79,"text":80},"s9",[],"构建完成后，GitHub Actions 使用 Wrangler 将生成的静态文件上传到 Cloudflare Pages。几分钟后，新文章即可在博客站点上访问。",[],{"_key":83,"_type":8,"children":84,"markDefs":89,"style":25},"b10",[85],{"_key":86,"_type":12,"marks":87,"text":88},"s10",[],"总结",[],{"_key":91,"_type":8,"children":92,"markDefs":97,"style":16},"b11",[93],{"_key":94,"_type":12,"marks":95,"text":96},"s11",[],"整个流程完全自动化：撰写 → 发布 → Webhook → 构建 → 部署。作者只需在 Sanity Studio 中编写并发布文章，无需手动操作任何部署步骤。",[],"2026-03-31T02:50:00Z","文章发布流程",1774937325127]