name: web-to-markdown description: “仅当用户明确说:‘使用技能 web-to-markdown …’(或’使用一个技能 web-to-markdown …')时才使用。通过调用本地 web2md CLI(Puppeteer + Readability)将网页URL转换为干净的Markdown,适合JS渲染的页面。” metadata: version: 0.1.0
网页到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前端元数据。
非目标
- 不要使用Playwright或其他浏览器自动化堆栈;机制是
web2md。
应收集的输入(仅当缺失时询问)
url(或URL列表)- 输出偏好:
- 打印到标准输出(
--print),或 - 保存到文件(
--out ./file.md),或 - 保存到目录(
--out ./some-dir/以页面标题自动命名)
- 打印到标准输出(
- 棘手页面的可选渲染控制:
--chrome-path <路径>(如果Chrome自动检测失败)--interactive(显示Chrome并暂停,以便用户完成人工检查/登录,然后按Enter)--wait-until load|domcontentloaded|networkidle0|networkidle2--wait-for '<css选择器>'--wait-ms <毫秒>--headful(调试)--no-sandbox(有时在容器/CI中需要)--user-data-dir <目录>(登录/会话;使用专用配置文件目录)
工作流程
- 确认用户明确调用了技能(
use the skill web-to-markdown)。 - 验证URL以
http://或https://开头。 - 确保
web2md已安装:- 运行:
command -v web2md - 如果缺失,指导用户安装:
- 如果可通过npm获得:
npm install -g web2md - 如果从源代码:克隆存储库,然后运行
npm install && npm run build && npm link
- 如果可通过npm获得:
- 运行:
- 转换:
- 单个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继续。
- 打印到标准输出:
web2md '<url>' --print
- 多个URL(批处理):
- 创建输出目录(例如
./out/),然后对每个URL运行一个web2md命令,使用--out ./out/
- 创建输出目录(例如
- 单个URL → 文件:
- 验证输出:
- 如果写入文件,验证它们存在且非空(例如
ls -la <路径>和wc -c <路径>)。
- 如果写入文件,验证它们存在且非空(例如
- 返回:
- 保存的文件路径,或Markdown(标准输出模式)。
默认设置(推荐)
- 对于大多数页面:
--wait-until networkidle2 - 对于重应用:从
--wait-until domcontentloaded --wait-ms 2000开始,然后根据需要添加--wait-for 'main'(或其他稳定选择器)。