用途:说明 Releases 的 fetch 流水线如何把变更日志页面转换为结构化发布数据。
抓取优先级:若来源带 metadata.feedUrl 则直接抓取并解析 feed;有 metadata.markdownUrl 则抓取原始 markdown;对 Docusaurus、VitePress、WordPress、Ghost、Mintlify 等静态提供商走快速抓取(Cloudflare crawl API,render:false);JS 较重页面用 Cloudflare 浏览器渲染;受 Cloudflare Managed Challenge 阻挡的来源可用 Firecrawl 监控,经管理 API 按来源启用。
解析方式:已有发布记录时默认增量解析,仅提取新条目;首次抓取或指定 --full 时全量解析。每次抓取计算页面内容 SHA-256 哈希,与上次相同则跳过解析。索引型页面可用爬取模式,跟随链接逐页抓取并聚合。
常用命令:releases admin source fetch <slug> [--dry-run] [--max <n>],另有 --full、--crawl/--no-crawl。检查结果用 releases tail <slug> --json 或 releases admin source fetch-log <slug>。
日期处理:尽量为每条发布恢复 publishedAt;仅有月份用当月首日,季度/季节用首日,仅年份用当年 1 月 1 日;确实无可恢复信号才省略。
rollup 分类:季节、季度、年度合集页标记为 type: rollup,单版本发布或单日条目不算。来源的常规节奏可记录在 playbook 中,新来源应先 dry-run 验证,效果差再调整 URL 或类型。