mcpField
F
feedsmith

feedsmith

github.com/dobroslavradosavljevic开发339 次安装2 天前更新
代码仓库

关于 feedsmith

面向开发者的 Feedsmith v3+ 使用技能,可解析和生成 RSS、Atom、RDF、JSON Feed 与 OPML。重点介绍保留结构的类型化 API,以及版本行为和迁移事项。

主要功能

  1. 01解析 RSS、Atom、RDF、JSON Feed 和 OPML
  2. 02生成支持的 Feed 格式及 OPML
  3. 03类型化的格式专属结构
  4. 04Feed 格式检测指南
  5. 05v2 到 v3 迁移指导

适用场景

  1. 01解析已知格式的 Feed
  2. 02处理混合或未知来源的 Feed
  3. 03生成 JSON Feed、RSS、Atom 或 OPML
  4. 04将项目从 Feedsmith v2 迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dobroslavradosavljevic/skills --skill feedsmith

安装后在 Claude Code 中输入/feedsmith确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
formats-namespaces.md
generating.md
migration-v2-to-v3.md
parsing.md
source-map.md

详细介绍

Feedsmith

将此技能用于 Feedsmith v3+(feedsmith):通过保留结构的类型化 API 解析和生成 RSS、Atom、RDF、JSON Feed 和 OPML。文档:feedsmith.dev。快照 3.0.1(2026-10-01)。

工作流

  1. 检查本地情况:
    • 已安装的 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 类型命名空间。
  2. 已知格式时优先使用专用解析器;仅对未知或混合来源使用 parseFeed。
  3. 标签发生变化时更新文档。从 source-map.md 开始。
  4. 深入了解相关内容:
  5. 命令示例优先使用 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 / RSS Person / dc.creators(复数)/ itunes.duration 的类型为 number。
  • 严格生成:在 { strict: true } 下,缺少必需字段应导致编译失败。
  • 针对错误路径进行测试:使用专用错误类处理无效 XML/格式错误。

报告已运行和未运行的检查,以及仍存在的版本/标签假设。

评论

支持 Markdown