ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

openclaw-docs

OpenClaw Docs banner

已发布的 OpenClaw 文档站点的镜像仓库。

权威源位于 openclaw/openclaw,在 docs/ 下。

工作原理

  1. 英文文档在 openclaw/openclaw 中编写。
  2. openclaw/openclaw/.github/workflows/docs-sync-publish.yml 将文档树镜像到本仓库。
  3. 本仓库存储已发布的文档树以及生成的语言版本输出。
  4. openclaw/docs/.github/workflows/translate-incremental.yml 对常规文档变更进行防抖处理,而 translate-all.yml 处理术语表变更、每周计划、发布分发或手动分发的完整协调。
  5. .github/workflows/r2-pages.yml 构建完整的未修剪静态站点,并将更改的对象上传到 Cloudflare R2。
  6. .github/workflows/pages.yml 部署小型 Cloudflare Worker 路由器,该路由器在从 R2 读取文档时保留干净的 URL 和 Markdown 协商。

翻译行为

  • docs/<locale>/** 下的语言区域页面为生成的输出。
  • 每个翻译页面存储 x-i18n.source_hash
  • 翻译工作流在调用模型之前计算待处理文件列表。
  • 如果没有英文源哈希发生变化,工作流将完全跳过昂贵的翻译步骤。
  • 如果文件已更改,仅翻译待处理文件。
  • 工作流会重试瞬时的模型格式故障。
  • 语言区域输出首先作为工件上传,然后由最终确定器一起提交。
  • 增量翻译和全量翻译使用独立的并发通道,因此小型文档编辑不会取消每周或术语表触发的全量对账。
  • 每周计划运行使用全量对账模式来修复遗漏或不稳定的语言区域更新。

编辑规则

  • 不要将此仓库视为英文文档编辑的主要位置。
  • openclaw/openclaw 中进行英文文档更改,然后让同步将其复制到这里。
  • docs/<locale>/** 下的语言区域页面为生成的输出。
  • .openclaw-sync/source.json 记录此镜像同步自哪个 openclaw/openclaw 提交。

静态站点构建

  • npm run docs:build 将镜像的 Mintlify 风格文档渲染到 dist/docs-site
  • npm run docs:build:cloudflare 是旧版 Worker Static Assets 回退构建。
  • npm run docs:build:r2 渲染完整的未修剪站点,并为 R2 上传准备 dist/docs-r2-manifest.json
  • npm run docs:r2:upload 仅上传已更改的 R2 对象,报告缓存命中/未命中,并拒绝将损坏的远程清单读取转化为全树重新上传。
  • 手动 R2 刷新在上传前审计对象;未更改的对象保持为缓存命中,瞬时的 HEAD 失败回退到签名清单。R2_UPLOAD_PUT_ALL=1 是用于有意重写每个对象的紧急逃生通道。
  • npm run docs:smoke 检查代表性的英文和本地化页面以及 Pagefind 搜索捆绑包。
  • npm run docs:check 运行这两个步骤。
  • 生成的站点包含语言选择器和通过 Pagefind 实现的静态全文搜索。
  • Cloudflare 部署 workers/docs-router.ts,它提供无斜杠的页面 URL,针对 .md 路径或 Accept: text/markdown 提供英文 Markdown 响应,并通过 DOCS_BUCKET R2 绑定提供 /api/search
  • Cloudflare 托管详情和限制记录在 CLOUDFLARE.md 中。

Secrets

  • OPENCLAW_DOCS_SYNC_TOKEN 位于 openclaw/openclaw 中,允许源仓库推送到此仓库。
  • OPENCLAW_DOCS_I18N_OPENAI_API_KEY 位于此仓库中,用于驱动本地化翻译刷新。
  • CLOUDFLARE_API_TOKEN 位于此仓库中,部署 docs.openclaw.ai 路由器。
  • R2 上传验证 CLOUDFLARE_API_TOKEN,尝试临时 R2 凭据,并通常回退到令牌派生的直接 S3 凭据形式。OPENCLAW_R2_ACCESS_KEY_ID / OPENCLAW_R2_SECRET_ACCESS_KEY 仅在无法验证 Cloudflare 令牌时作为回退上传凭据。