mcpField
W
web-to-markdown

web-to-markdown

github.com/softaworks文档处理2.6k761 次安装34 周前更新
代码仓库

关于 web-to-markdown

web-to-markdown 是通过本地浏览器调用 web2md,将网页转换为整洁 Markdown 的 Skill。它支持 JavaScript 渲染页面,可提取正文、清理链接,并可选添加 YAML frontmatter。

主要功能

  1. 01将网页转换为 Markdown
  2. 02处理 JavaScript 渲染页面
  3. 03使用 Readability 提取正文
  4. 04使用 Turndown 清理链接
  5. 05可选添加 YAML frontmatter
  6. 06输出到终端或保存文件

适用场景

  1. 01将网页文章保存为 Markdown
  2. 02转换动态渲染的页面
  3. 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/,根据页面标题自动命名)
  • 可选的页面渲染控制参数,用于处理棘手页面:
    • --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>(登录/会话;使用专用的配置目录)

工作流

  1. 确认用户明确调用了此技能(use the skill web-to-markdown)。
  2. 验证 URL 以 http:// 或 https:// 开头。
  3. 确保已安装 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 .
  4. 转换:
    • 单个 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/
  5. 验证输出:
    • 如果写入文件,请确认文件存在且非空(例如 ls -la <path> 和 wc -c <path>)。
  6. 返回:
    • 保存的文件路径,或 Markdown(stdout 模式)。

默认设置(推荐)

  • 对于大多数页面:--wait-until networkidle2
  • 对于复杂的应用:先使用 --wait-until domcontentloaded --wait-ms 2000,然后在需要时添加 --wait-for 'main'(或其他稳定的选择器)。

评论

支持 Markdown