关于 feedsmith
面向开发者的 Feedsmith v3+ 使用技能,可解析和生成 RSS、Atom、RDF、JSON Feed 与 OPML。重点介绍保留结构的类型化 API,以及版本行为和迁移事项。
主要功能
- 01解析 RSS、Atom、RDF、JSON Feed 和 OPML
- 02生成支持的 Feed 格式及 OPML
- 03类型化的格式专属结构
- 04Feed 格式检测指南
- 05v2 到 v3 迁移指导
适用场景
- 01解析已知格式的 Feed
- 02处理混合或未知来源的 Feed
- 03生成 JSON Feed、RSS、Atom 或 OPML
- 04将项目从 Feedsmith v2 迁移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill feedsmith安装后在 Claude Code 中输入/feedsmith确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/formats-namespaces.mdgenerating.mdmigration-v2-to-v3.mdparsing.mdsource-map.md详细介绍
Feedsmith
将此技能用于 Feedsmith v3+(feedsmith):通过保留结构的类型化 API 解析和生成 RSS、Atom、RDF、JSON Feed 和 OPML。文档:feedsmith.dev。快照 3.0.1(2026-10-01)。
工作流
- 检查本地情况:
- 已安装的
feedsmith版本(bun pm ls feedsmith/bun info feedsmith)。此技能面向 3.x;latest为 3.0.1(ESM 构建现在提供.mjs文件;与 3.0.0 相比没有 API 变更)。 - 用途是解析、生成、处理 OPML,还是仅检测。
- 日期:原始字符串,还是使用
parseDateFn/ 在生成时使用Date。 - v2 遗留项:
feedsmith/types、{ lenient: true }、扁平化的 Atom 字符串、字符串形式的 RSS 人员字段、单数dc.*字段、Rss/Atom/Json/Rdf类型命名空间。
- 已安装的
- 已知格式时优先使用专用解析器;仅对未知或混合来源使用
parseFeed。 - 标签发生变化时更新文档。从 source-map.md 开始。
- 深入了解相关内容:
- 解析/检测/日期/错误:parsing.md
- 生成、严格模式、样式表、OPML 扩展:generating.md
- 格式、命名空间、类型:formats-namespaces.md
- v2→v3 破坏性变更:migration-v2-to-v3.md
- 命令示例优先使用
bun/bunx。
核心判断
- 保留结构——不要创建“通用扁平化 Feed”层;应读取特定格式的字段和命名空间(
feed.itunes、item.dc,等等)。 - 解析时日期默认是字符串。使用
parseDateFn进行转换;该函数抛出的错误不会被吞掉。 - 生成默认采用宽松模式(所有字段均为可选)。使用
{ strict: true },启用编译时规范必需字段检查,并使用Date日期。 - Atom 文本/内容是对象:
title?.value、content?.value(不是裸字符串)。 - RSS 人员字段是对象:
{ email?, name?, link? },不是"a@b (Name)"这样的字符串。link仅用于解析。 - 类型来自主入口:
RssFeed、AtomFeed、JsonFeed、RdfFeed、Opml、AnyFeed。没有feedsmith/types。 - 不支持 RDF 生成(计划推出
generateRdfFeed)。支持生成 JSON Feed / RSS / Atom / OPML。generateJsonFeed返回对象,而不是字符串。 - 捕获
DetectError|MalformedError|ParseError|GenerateError,不要只捕获通用的Error。 - 已知格式 → 使用专用解析器(比检测启发式方法更快、更可靠)。
验证
优先使用仓库自带的命令。覆盖相关部分:
bun pm ls feedsmith/bun info feedsmith——确认版本为 3.x。- 往返测试:解析测试样例 → 断言关键字段 → 生成 → 重新解析并进行冒烟测试。
- 升级后进行类型检查:Atom
.value/ RSSPerson/dc.creators(复数)/itunes.duration的类型为number。 - 严格生成:在
{ strict: true }下,缺少必需字段应导致编译失败。 - 针对错误路径进行测试:使用专用错误类处理无效 XML/格式错误。
报告已运行和未运行的检查,以及仍存在的版本/标签假设。
评论
支持 Markdown