☰
obsidian-skills 之 Defuddle:一条命令把任意网页提取为干净 Markdown 的 Agent Skill
2026/9/30 6:49:13 网站建设 项目流程
  • AI 技能
  • AI 插件

【免费下载链接】obsidian-skills

Agent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.

项目地址:https://gitcode.com/GitHub_Trending/ob/obsidian-skills
点击查看免费下载

本指南以 obsidian-skills 仓库中的 defuddle Skill 为唯一主体,讲解如何用 Defuddle CLI 把标准网页转换为去除导航、广告与杂乱的干净 Markdown,帮助 AI Agent 以更少的 token 阅读和分析网页内容。读完本文,你将掌握 defuddle 的安装方式、核心parse命令的完整用法、四种输出格式的取舍,以及如何将提取结果顺畅接入 Obsidian 的笔记工作流。

Defuddle Skill 是什么:它在 obsidian-skills 中的定位

obsidian-skills 是一个面向 Obsidian 的 Agent Skills 集合(见 README.md),全部技能遵循 Agent Skills 规范,可被 Claude Code、Codex、Open Code 等任何兼容该规范的 Agent 直接使用。每个 Skill 都以独立的SKILL.md文件承载,defuddle就是其中之一,位于 skills/defuddle/SKILL.md。

该 Skill 的作用非常聚焦:当 Agent 需要阅读或分析一个网页 URL 时,优先使用 Defuddle CLI 提取干净可读的内容,而不是直接抓取原始页面。其核心价值在于 "removing clutter and navigation to save tokens"(去除杂乱与导航以节省 token)——Defuddle 会移除页面中的导航、广告和装饰性内容,只保留正文,从而显著降低进入模型上下文的无效字符。

SKILL.md 采用标准的 Agent Skill 格式,YAML frontmatter 中的name与description字段是 Agent 判断"何时调用该技能"的路由依据,完整内容如下:

--- name: defuddle description: Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly. ---

可以看到,description 不仅说明了工具能力,还明确划定了使用边界("何时用、何时不用"),这是 Agent 正确触发该 Skill 的关键。仓库 README 的技能表中对它的概括与此一致:Extract clean markdown from web pages using Defuddle, removing clutter to save tokens。

何时使用:场景判断与决策边界

根据 SKILL.md 中 frontmatter 与正文的指引,Agent 应在以下场景优先选择 Defuddle,而不是 WebFetch:

  • 用户给出一个 URL 并要求阅读或分析时;
  • 目标是在线文档、技术文章、博客文章或其他标准网页时;
  • 目标是减少 token 消耗、只保留正文核心内容时。

而明确排除的场景只有一个:URL 以.md结尾。这类地址本身已是 Markdown 文件,直接使用 WebFetch 获取即可,无需也不应经过 Defuddle 的清洗转换。

之所以"优先于 WebFetch",原文给出了直接理由:it removes navigation, ads, and clutter, reducing token usage。也就是说,Defuddle 的价值不在于"能否抓到网页"(WebFetch 也能做到),而在于输出的是经过清洗、可直接投喂给模型的正文,这对长文档、多页面批量分析场景尤为实用。

安装:一条命令完成

Defuddle 以 npm 全局包的形式分发,SKILL.md 给出的安装命令只有一条:

npm install -g defuddle

几点说明:

  • 该命令通过 npm 全局安装,安装完成后defuddle命令即可直接使用(从-g全局标志可以推断,本机需具备 npm / Node.js 环境,安装后的可执行文件会进入系统 PATH)。
  • 如果你的 Agent 尚未部署该 Skill,可以连同整个 obsidian-skills 集合一起安装。README 提供了三种途径:通过插件市场执行/plugin marketplace add kepano/obsidian-skills与/plugin install obsidian@obsidian-skills;使用npx skills add拉取集合;或将skills/目录手动复制到对应 Agent 的 skills 路径(如 Codex 的~/.codex/skills、OpenCode 的~/.opencode/skills/)。安装细节请直接参考 README.md。

核心用法:defuddle parse命令

SKILL.md 明确要求:凡是解析网页,一律使用--md输出 Markdown。最基础的一条命令是:

defuddle parse <url> --md

parse是 Defuddle 的解析子命令,<url>为目标网页地址,--md声明输出格式为 Markdown。执行后,终端直接输出清洗后的正文内容。

保存到文件

当提取结果需要落盘(例如作为后续写入笔记的素材)时,使用-o指定输出文件:

defuddle parse <url> --md -o content.md

命令将清洗后的 Markdown 写入当前目录下的content.md,供后续读取、加工或持久化。

提取指定元数据

使用-p <name>可以只提取页面中的某个元数据属性,适合快速获取标题、描述等摘要信息,无需拉取全文:

defuddle parse <url> -p title defuddle parse <url> -p description defuddle parse <url> -p domain

以上三条分别提取网页标题、描述与来源域名。这类轻量提取常用于:为笔记生成 frontmatter(title / description)、记录网页来源(domain)、在批量归档时快速生成索引信息。实际可用的属性名以 Defuddle CLI 支持为准,文档中以title、description、domain为典型代表。

输出格式:四种选择与取舍

SKILL.md 以表格形式完整列出了四种输出格式,这是使用 Defuddle 的核心参考,原文如下:

FlagFormat
--mdMarkdown(默认推荐)
--json同时包含 HTML 与 Markdown 的 JSON
(无标志)HTML
-p <name>指定的元数据属性

结合用途可以这样选择:

  • --md(推荐):绝大多数场景的默认选择。输出为标准 Markdown,正文干净、token 开销最小,可直接作为笔记正文或喂给模型分析。
  • --json:同时携带 HTML 与 Markdown 两份内容。当你既需要保留页面结构信息(HTML)又需要可读正文(Markdown),或需要由程序进一步解析字段时使用;代价是输出体积更大。
  • 无标志(默认 HTML):输出原始清洗后的 HTML。适用于需要保留链接、富文本结构、或下游有 HTML 解析需求的场景。
  • -p <name>:仅输出单一元数据属性,是四者中体积最小、速度最快的选项,适合标题、描述、域名等轻量信息提取。

一个实用策略是:需要全文时用--md,只需要摘要信息时用-p,两者结合可以覆盖"归档网页"与"建立索引"两类常见任务。

接入 Obsidian 工作流:从网页到笔记

Defuddle 的产出是标准 Markdown,天然适合落入 Obsidian 笔记。虽然该 Skill 只负责"提取"这一步,但与本仓库中的其他 Skill 组合,可以构成一条完整的"网页 → 笔记"流水线(以下为基于仓库 Skill 能力的组合用法推断):

  1. 提取:用 defuddle 将目标网页转为干净 Markdown——
    defuddle parse <url> --md -o article.md
  2. 写入 Vault:结合 obsidian-cli Skill,通过 Obsidian CLI 把内容创建或追加到笔记中,例如用obsidian create新建笔记、用obsidian append追加内容(如obsidian append file="Reading Notes" content="...")。
  3. Obsidian 化加工:如需在笔记中使用 wikilink、callout、frontmatter properties 等 Obsidian 特有语法,可参照 obsidian-markdown Skill 的规范对提取结果进行二次整理,让网页正文与你的知识库无缝融合。

借助 frontmatter 中的-p title、-p description、-p domain提取结果,还可以为每条网页笔记自动补齐标题、摘要与来源域名的元数据,实现轻量级"网页剪藏 + 自动归档"。

实践要点与注意事项

  • 守住 .md 例外:URL 以.md结尾时不要调用 defuddle,直接使用 WebFetch——这是 SKILL.md 反复强调的边界,能避免对已是 Markdown 的内容做无意义的二次转换。
  • 默认带--md:除非确有 HTML 或元数据需求,否则一律显式使用--md,这是该 Skill 对输出格式的硬性约定,也是控制 token 的关键。
  • 安装环境:npm install -g defuddle需要本机具备 npm / Node.js 环境;若由 Agent 代为执行,注意全局安装的写入权限。
  • 结果核验:Defuddle 输出的正文以"可读内容"为目标,Agent 在引用或转述时仍应结合用户任务对提取结果做必要的准确性判断,避免把清洗后的摘要当作完整事实。
  • 仓库为只读参考:本仓库仅用于查看 Skill 定义与安装方式,文章所述所有操作均在本地 Agent 环境执行,无需也不应修改仓库内容。

通过以上命令与决策原则,Defuddle 可以成为 Agent 处理网页内容时最高效的"前置清洗器":一次parse,即可把杂乱网页变成干净、可读、低 token 的 Markdown 正文,直接服务于 Obsidian 知识库的采集与沉淀。

  • AI 技能
  • AI 插件

【免费下载链接】obsidian-skills

Agent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.

项目地址:https://gitcode.com/GitHub_Trending/ob/obsidian-skills
点击查看免费下载

相关推荐

上一篇:SVG2GCODE:将矢量图形转换为G代码的强大工具
下一篇:H5P互动视频制作终极指南:如何创建令人惊叹的交互式视频内容

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询