1. 写作前准备
目录约定:
docs/<locale>/content/<slug>/index.mdFrontmatter 最小集:
yaml--- title: <标题> date: 'YYYY-MM-DD' status: published category_zh: 管理与协作 # 或工程笔记/架构设计等 tags_zh: [<标签1>, <标签2>] series: 项目起航手记 series_slug: project-kickoff slug: <kebab-case> excerpt: <一句话摘要> ---预检命令:
npm run precheck(Frontmatter/Schema/配置校验)。
2. 本地生成与预览
bash
npm run gen # 生成聚合页/RSS/Sitemap
npm run dev # 启动预览服务器必要时使用:
npm run gen -- --full-sync强制全量同步;npm run gen -- --no-cache观察 collect 真实解析;PAGEGEN_CONCURRENCY=8 npm run gen调整解析并发。
3. 质量守门与观测
- 观测指标页检查:缓存命中率、写入失败、AI 概览(可在占位阶段忽略
missing/skipped)。 - 死链/构建体检:
npm run build(阻断)或npm run check(precheck+build)。 - 常见问题:
- 聚合引用旧 slug → 运行
--full-sync并更新schema/nav.json; - 写入失败 → 查看 CLI 错误与
_generated/目标路径权限; - 告警含义 → 参考《观测指标导览》。
- 聚合引用旧 slug → 运行
4. 发布与回滚
bash
codex run publish --message "content: 新增 <标题>"流程拆解:tags:normalize → precheck → ai:prepare → ai:smoke → gen → build → push。
回滚建议:
- 发布后发现死链 → 修正文档或导航,重新
publish; - AI 冒烟不通过 → 切回
AI_RUNTIME=placeholder,再ai:prepare && ai:smoke; - 构建异常 → 直接回退上一个 commit,再离线修复后重试。
5. FAQ
- 只写中文,英文聚合也会生成吗?
英文目录没有内容时,英文导航/聚合会为空但不阻断构建。建议初期仅维护中文,英文后续补齐。
- 草稿如何处理?
Frontmatter 设
status: draft即可避免进入聚合/RSS/Sitemap。 - 如何批量改 slug?
先修改内容目录与 Frontmatter,再
--full-sync,最后检查_generated与nav.manifest.*.json。