[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"navigation_docs":3,"-temp-2026-10-8-cloudflare-pages":78,"-temp-2026-10-8-cloudflare-pages-surround":380},[4,40,65],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project Structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Studio module","\u002Fgetting-started\u002Fstudio","1.getting-started\u002F5.studio","i-lucide-mouse-pointer-2",{"title":31,"path":32,"stem":33,"icon":34},"Migration","\u002Fgetting-started\u002Fmigration","1.getting-started\u002F6.migration","i-lucide-replace",{"title":36,"path":37,"stem":38,"icon":39},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F7.troubleshooting","i-lucide-wrench",{"title":41,"path":42,"stem":43,"children":44,"page":6},"Essentials","\u002Fessentials","2.essentials",[45,50,55,60],{"title":46,"path":47,"stem":48,"icon":49},"Markdown Syntax","\u002Fessentials\u002Fmarkdown-syntax","2.essentials\u002F1.markdown-syntax","i-lucide-heading-1",{"title":51,"path":52,"stem":53,"icon":54},"Code Blocks","\u002Fessentials\u002Fcode-blocks","2.essentials\u002F2.code-blocks","i-lucide-code-xml",{"title":56,"path":57,"stem":58,"icon":59},"Components","\u002Fessentials\u002Fcomponents","2.essentials\u002F3.components","i-lucide-component",{"title":61,"path":62,"stem":63,"icon":64},"Images and Embeds","\u002Fessentials\u002Fimages-embeds","2.essentials\u002F4.images-embeds","i-lucide-image",{"title":66,"path":67,"stem":66,"children":68,"page":6},"Temp","\u002Ftemp",[69],{"title":70,"path":71,"stem":72,"children":73,"page":6},"2026 10 8","\u002Ftemp\u002F2026-10-8","Temp\u002F2026-10-8",[74],{"title":75,"path":76,"stem":77},"GitHub 与 Cloudflare Pages 部署","\u002Ftemp\u002F2026-10-8\u002Fcloudflare-pages","Temp\u002F2026-10-8\u002Fcloudflare-pages",{"id":79,"title":75,"body":80,"description":373,"extension":374,"links":375,"meta":376,"navigation":377,"path":76,"seo":378,"stem":77,"__hash__":379},"docs\u002FTemp\u002F2026-10-8\u002Fcloudflare-pages.md",{"type":81,"value":82,"toc":367},"minimark",[83,87,113,116,159,171,175,178,216,223,226,249,252,266,273,306,309,313,316,319,327,330,356,363],[84,85,86],"h2",{"id":86},"项目位置",[88,89,90,98,107],"ul",{},[91,92,93,94],"li",{},"本地目录：",[95,96,97],"code",{},"\u002FUsers\u002Fxiaoxin\u002Fdocus-docs",[91,99,100,101],{},"私有仓库：",[102,103,104],"a",{"href":104,"rel":105},"https:\u002F\u002Fgithub.com\u002FSoliyakeitong\u002Fdocus-docs",[106],"nofollow",[91,108,109,110],{},"生产分支：",[95,111,112],{},"main",[84,114,115],{"id":115},"本地编辑",[117,118,123],"pre",{"className":119,"code":120,"language":121,"meta":122,"style":122},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cd ~\u002Fdocus-docs\nnpm ci\nnpm run dev\n","bash","",[95,124,125,138,148],{"__ignoreMap":122},[126,127,130,134],"span",{"class":128,"line":129},"line",1,[126,131,133],{"class":132},"s2Zo4","cd",[126,135,137],{"class":136},"sfazB"," ~\u002Fdocus-docs\n",[126,139,141,145],{"class":128,"line":140},2,[126,142,144],{"class":143},"sBMFI","npm",[126,146,147],{"class":136}," ci\n",[126,149,151,153,156],{"class":128,"line":150},3,[126,152,144],{"class":143},[126,154,155],{"class":136}," run",[126,157,158],{"class":136}," dev\n",[160,161,162,163,166,167,170],"p",{},"打开开发服务器，点击左下角「编辑此页面」进入中文 Nuxt Studio。\n本地编辑会直接写入 ",[95,164,165],{},"content\u002F","。未分类文章默认放在\n",[95,168,169],{},"content\u002FTemp\u002FYYYY-M-D\u002F","，日期按上海时区且不补零。",[84,172,174],{"id":173},"cloudflare-pages","Cloudflare Pages",[160,176,177],{},"本项目使用 Pages Functions 提供服务端接口，并通过 D1 保存 Nuxt Content 的内容索引。\nMarkdown 原文保存在 GitHub 仓库中。",[88,179,180,186,192,198,204,210],{},[91,181,182,183],{},"构建命令：",[95,184,185],{},"npm run build",[91,187,188,189],{},"输出目录：",[95,190,191],{},"dist",[91,193,194,195],{},"Node.js 版本：",[95,196,197],{},"24.13.0",[91,199,200,201],{},"D1 绑定名称：",[95,202,203],{},"DB",[91,205,206,207],{},"D1 数据库名称：",[95,208,209],{},"docus-docs-content",[91,211,212,213],{},"兼容性标志：",[95,214,215],{},"nodejs_compat",[160,217,218,219,222],{},"数据库绑定和 Pages 配置见项目根目录 ",[95,220,221],{},"wrangler.jsonc","。",[160,224,225],{},"构建后可在本地模拟 Cloudflare 环境：",[117,227,229],{"className":119,"code":228,"language":121,"meta":122,"style":122},"npm run build\nnpm run preview\n",[95,230,231,240],{"__ignoreMap":122},[126,232,233,235,237],{"class":128,"line":129},[126,234,144],{"class":143},[126,236,155],{"class":136},[126,238,239],{"class":136}," build\n",[126,241,242,244,246],{"class":128,"line":140},[126,243,144],{"class":143},[126,245,155],{"class":136},[126,247,248],{"class":136}," preview\n",[160,250,251],{},"首次部署通过 Wrangler Direct Upload 完成。在已登录 Cloudflare 的本机重新部署：",[117,253,255],{"className":119,"code":254,"language":121,"meta":122,"style":122},"npm run deploy\n",[95,256,257],{"__ignoreMap":122},[126,258,259,261,263],{"class":128,"line":129},[126,260,144],{"class":143},[126,262,155],{"class":136},[126,264,265],{"class":136}," deploy\n",[160,267,268,269,272],{},"项目包含 ",[95,270,271],{},".github\u002Fworkflows\u002Fdeploy-pages.yml","，用于 GitHub Actions 自动部署。\n在仓库 Settings → Secrets and variables → Actions 中添加：",[88,274,275,286,300],{},[91,276,277,278,281,282,285],{},"Secret ",[95,279,280],{},"CLOUDFLARE_PAGE_EDIT_API_TOKEN","：具有本账号 Cloudflare Pages 编辑权限的 API Token，工作流将其传入 Wrangler 的 ",[95,283,284],{},"CLOUDFLARE_API_TOKEN"," 环境变量。",[91,287,288,289,292,293,296,297,299],{},"Variable ",[95,290,291],{},"CLOUDFLARE_PAGES_AUTO_DEPLOY","：设为 ",[95,294,295],{},"true"," 启用推送 ",[95,298,112],{}," 后自动部署。",[91,301,288,302,305],{},[95,303,304],{},"NUXT_PUBLIC_SITE_URL","：实际的生产站点地址。",[160,307,308],{},"未配置 API Token 时，自动部署默认关闭；可继续使用本机部署命令。\nDirect Upload 项目使用 GitHub Actions 接入自动部署；Cloudflare 原生 Git 集成需要另建项目。",[84,310,312],{"id":311},"nuxt-studio-在线编辑","Nuxt Studio 在线编辑",[160,314,315],{},"在线编辑需要单独创建 GitHub OAuth App；Cloudflare 的 GitHub 应用授权用于构建部署，\nStudio OAuth 用于编辑器登录。",[160,317,318],{},"在 GitHub Developer Settings 中创建 OAuth App，将 Homepage URL 设置为实际的站点地址，\nAuthorization callback URL 设置为：",[117,320,325],{"className":321,"code":323,"language":324,"meta":122},[322],"language-text","https:\u002F\u002F你的站点域名\u002F__nuxt_studio\u002Fauth\u002Fgithub\n","text",[95,326,323],{"__ignoreMap":122},[160,328,329],{},"在 Cloudflare Pages 的生产环境中添加以下变量，并重新部署：",[88,331,332,338,344,350],{},[91,333,334,337],{},[95,335,336],{},"STUDIO_GITHUB_CLIENT_ID","：OAuth App 的 Client ID。",[91,339,340,343],{},[95,341,342],{},"STUDIO_GITHUB_CLIENT_SECRET","：以 Secret 类型保存 Client Secret。",[91,345,346,349],{},[95,347,348],{},"STUDIO_GITHUB_MODERATORS","：允许登录的 GitHub 账号邮箱，用逗号分隔。",[91,351,352,355],{},[95,353,354],{},"NUXT_STUDIO_AUTH_SESSION_SECRET","：以 Secret 类型保存随机会话密钥，至少 32 个字符。",[160,357,358,359,362],{},"以上 GitHub 变量名对应本项目安装的 Nuxt Studio 1.7.0 的实际服务端实现。\n配置完成后，访问站点的 ",[95,360,361],{},"\u002F_studio"," 登录、编辑并提交内容。\n启用 GitHub Actions 自动部署后，提交会触发 Pages 重新部署；否则使用本机部署命令更新站点。\n不要将真实凭据写入 Markdown、Git 仓库或聊天记录。",[364,365,366],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":122,"searchDepth":140,"depth":140,"links":368},[369,370,371,372],{"id":86,"depth":140,"text":86},{"id":115,"depth":140,"text":115},{"id":173,"depth":140,"text":174},{"id":311,"depth":140,"text":312},"本项目的本地开发、部署配置和 Nuxt Studio 在线编辑设置。","md",null,{},true,{"title":75,"description":373},"wu3-EVNA6zxOlIFL8pug5NN2ce7coTvZKe_u__QFGVY",[381,375],{"title":61,"path":62,"stem":63,"description":382,"icon":64,"children":-1},"Add image, video, and other HTML elements",1791454522389]