用途
openpress-deploy 是 open-press 的公开部署技能,掌管公开发布关卡。仅在用户要求配置、检查、试运行或发布 open-press 文档时使用。
主要能力
- 检查 openpress/settings.json 中 "deploy" 字段的部署配置。
- 核对目标适配器、暂存来源、项目名称与确认设置。
- 运行部署预检与试运行(dry run)。
- 确保密钥不进入源文件。
- 发布前要求明确确认。
- 部署成功后报告公开 URL,如包含 PDF 则一并报告 PDF URL。
职责边界
- openpress 负责通用 CLI 用法、非部署校验、本地审阅以及源文件/生成物边界。
- openpress-create-pages 负责页面产物内容与视觉就绪度。
- openpress-create-slide 负责幻灯片内容与视觉就绪度。
- 本技能负责公开目标确认与部署执行。
公开部署规则
未经明确且指明目标项目的确认,绝不发布。
良好的确认形式示例:
This will publish the current open-press build to Cloudflare Pages project
<projectName>from<deploy.source>. Do you want me to deploy now?
预检
正式部署前,运行以下命令以证明输出已就绪:
npm run build # validates + renders dist-react/
同时扫描面向公众的源文件中的未完成标记:
rg "\[TODO:|\[FIX:|\[DRAFT:" "press/*/chapters" press/design.md
PDF 大小限制
Cloudflare Pages 会拒绝任何大于 25 MB 的单个文件。多 press 或图片较多的 PDF 通常会超过此限制。
除非用户明确要求发布 PDF,否则部署时不包含 PDF:
npm run openpress:deploy -- --confirm --no-pdf
--no-pdf 会跳过 PDF 生成,并将其完全排除在部署源之外。
如果用户想先检查 PDF 大小:
npm run openpress:pdf
du -sh .deploy/**/*.pdf 2>/dev/null
如果 PDF 超过 25 MB 且用户仍希望公开托管,建议使用单独的托管服务(Cloudflare R2、S3 等)。OpenPress 目前未提供用于填写外部 PDF URL 的字段,因此不要在 openpress/settings.json 中自行编造该字段;请在交付说明中报告该单独 URL。
部署命令
试运行:
npm run openpress:deploy:dry-run -- --no-pdf
明确确认后发布:
npm run openpress:deploy -- --confirm --no-pdf
仅当用户明确将 PDF 纳入已确认的发布目标时,才移除 --no-pdf。
何时阅读参考文档
在创建或修复 Cloudflare Pages 配置、项目设置、Wrangler 认证预期或 UI 部署按钮行为时,阅读 references/cloudflare-pages.md。
适用场景
- 准备、配置、检查、暂存或发布 open-press 文档到公开托管(尤其是 Cloudflare Pages)。
- 需要部署设置、部署预检、试运行或正式发布时。
限制
- 未经明确确认不得发布。
- Cloudflare Pages 单文件上限 25 MB,超出时需改用其他托管或排除 PDF。
- 不负责页面或幻灯片的内容与视觉就绪度,也不负责通用 CLI 用法与非部署校验。
- 关于收费、价格、平台支持范围等更多信息,资料暂未提供。