[ PROMPT_NODE_25604 ]
web-to-markdown
[ SKILL_DOCUMENTATION ]
# 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 `(如果 Chrome 自动检测失败)
- `--interactive`(显示 Chrome 并暂停,以便用户完成人工检查/登录,然后按回车键)
- `--wait-until load|domcontentloaded|networkidle0|networkidle2`
- `--wait-for ''`
- `--wait-ms `
- `--headful`(调试)
- `--no-sandbox`(在容器/CI中有时需要)
- `--user-data-dir `(登录/会话;使用专用的配置文件目录)
## 工作流
1) 确认用户明确调用了该技能 (`use the skill web-to-markdown`)。
2) 验证 URL 是否以 `http://` 或 `https://` 开头。
3) 确保安装了 `web2md`:
- 运行:`command -v web2md`
- 如果缺失,指导用户安装:
- 如果可通过 npm 获取:`npm install -g web2md`
- 如果从源码安装:克隆仓库,然后运行 `npm install && npm run build && npm link`
4) 转换:
- 单个 URL → 文件:
- `web2md '' --out ./page.md`
- 单个 URL → 目录中的自动命名文件:
- `mkdir -p ./out && web2md '' --out ./out/`
- 人工验证 / 登录墙(交互式):
- `mkdir -p ./out && web2md '' --interactive --user-data-dir ./tmp/web2md-profile --out ./out/`
- 然后:在浏览器窗口中完成检查,并在终端按回车键继续。
- 打印到 stdout:
- `w