关于 web-to-markdown
web-to-markdown 是通过本地浏览器调用 web2md,将网页转换为整洁 Markdown 的 Skill。它支持 JavaScript 渲染页面,可提取正文、清理链接,并可选添加 YAML frontmatter。
主要功能
- 01将网页转换为 Markdown
- 02处理 JavaScript 渲染页面
- 03使用 Readability 提取正文
- 04使用 Turndown 清理链接
- 05可选添加 YAML frontmatter
- 06输出到终端或保存文件
适用场景
- 01将网页文章保存为 Markdown
- 02转换动态渲染的页面
- 03批量转换多个 URL
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ softaworks/ agent-toolkit --skill web-to-markdown安装后在 Claude Code 中输入/web-to-markdown确认已加载。
附带文件README.md
详细介绍
web-to-markdown
通过驱动本地安装的浏览器(使用 web2md),将网页转换为整洁的 Markdown。
严格触发条件(必须遵守)
除非用户明确写出完全一致的短语,例如:
use the skill web-to-markdown ...use a skill web-to-markdown ...
否则绝不能使用此技能。如果用户没有明确按名称请求此技能,请停止并要求他们重新提出请求,并包含:use the skill web-to-markdown。
此技能的功能
- 处理由 JS 渲染的页面(Puppeteer → 用户的 Chrome)。
- 通过
puppeteer-core,最适用于 Chromium 系浏览器(Chrome/Chromium/Brave/Edge)。 - 提取主要内容(Readability)。
- 转换为 Markdown(Turndown),并清理链接,可选添加 YAML frontmatter。
非目标
- 不要使用 Playwright 或其他浏览器自动化技术栈;此工具使用
web2md。
需要收集的输入(仅在缺少时询问)
url(或 URL 列表)- 输出偏好:
- 输出到 stdout(
--print),或 - 保存到文件(
--out ./file.md),或 - 保存到目录(
--out ./some-dir/,根据页面标题自动命名)
- 输出到 stdout(
- 可选的页面渲染控制参数,用于处理棘手页面:
--chrome-path <path>(Chrome 自动检测失败时使用)--interactive(显示 Chrome 并暂停,以便用户完成人工验证或登录,然后按 Enter)--wait-until load|domcontentloaded|networkidle0|networkidle2--wait-for '<css selector>'--wait-ms <milliseconds>--headful(调试)--no-sandbox(在容器/CI 中有时需要)--user-data-dir <dir>(登录/会话;使用专用的配置目录)
工作流
- 确认用户明确调用了此技能(
use the skill web-to-markdown)。 - 验证 URL 以
http://或https://开头。 - 确保已安装
web2md:- 运行:
command -v web2md - 如果未安装,指导用户安装(假设项目位于
~/workspace/softaworks/projects/web2md):cd ~/workspace/softaworks/projects/web2md && npm install && npm run build && npm link- 或:
cd ~/workspace/softaworks/projects/web2md && npm install && npm run build && npm install -g .
- 运行:
- 转换:
- 单个 URL → 文件:
web2md '<url>' --out ./page.md
- 单个 URL → 在目录中自动命名的文件:
mkdir -p ./out && web2md '<url>' --out ./out/
- 人工验证/登录拦截(交互模式):
mkdir -p ./out && web2md '<url>' --interactive --user-data-dir ./tmp/web2md-profile --out ./out/- 然后:在浏览器窗口中完成人工验证,并在终端中按 Enter 继续。
- 输出到 stdout:
web2md '<url>' --print
- 多个 URL(批量):
- 创建输出目录(例如
./out/),然后针对每个 URL 分别运行一个web2md命令,并使用--out ./out/
- 创建输出目录(例如
- 单个 URL → 文件:
- 验证输出:
- 如果写入文件,请确认文件存在且非空(例如
ls -la <path>和wc -c <path>)。
- 如果写入文件,请确认文件存在且非空(例如
- 返回:
- 保存的文件路径,或 Markdown(stdout 模式)。
默认设置(推荐)
- 对于大多数页面:
--wait-until networkidle2 - 对于复杂的应用:先使用
--wait-until domcontentloaded --wait-ms 2000,然后在需要时添加--wait-for 'main'(或其他稳定的选择器)。
评论
支持 Markdown