# baoyu-url-to-markdown > 使用 Chrome CDP 抓取任意 URL 并转换为 Markdown。支持两种模式——页面加载时自动捕获,或等待用户信号(用于需要登录的页面)。当用户想要将网页保存为 Markdown 时使用。 - Author: acs1899 - Repository: acs1899/baoyu-skills - Version: 20260125004404 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/acs1899/baoyu-skills - Web: https://mule.run/skillshub/@@acs1899/baoyu-skills~baoyu-url-to-markdown:20260125004404 --- --- name: baoyu-url-to-markdown description: 使用 Chrome CDP 抓取任意 URL 并转换为 Markdown。支持两种模式——页面加载时自动捕获,或等待用户信号(用于需要登录的页面)。当用户想要将网页保存为 Markdown 时使用。 --- # URL 转 Markdown 通过 Chrome CDP 抓取任意 URL 并转换 HTML 为干净的 Markdown。 ## 脚本目录 **重要**:所有脚本位于此技能的 `scripts/` 子目录中。 **Agent 执行说明**: 1. 将此 SKILL.md 文件的目录路径确定为 `SKILL_DIR` 2. 脚本路径 = `${SKILL_DIR}/scripts/.ts` 3. 将本文档中所有 `${SKILL_DIR}` 替换为实际路径 **脚本参考**: | 脚本 | 用途 | |--------|---------| | `scripts/main.ts` | URL 抓取的 CLI 入口点 | ## 偏好设置 (EXTEND.md) 使用 Bash 检查 EXTEND.md 是否存在(优先级顺序): ```bash # 首先检查项目级别 test -f .baoyu-skills/baoyu-url-to-markdown/EXTEND.md && echo "project" # 然后检查用户级别(跨平台:$HOME 在 macOS/Linux/WSL 上都有效) test -f "$HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md" && echo "user" ``` ┌────────────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-url-to-markdown/EXTEND.md │ 项目目录 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md │ 用户主目录 │ └────────────────────────────────────────────────────────┴───────────────────┘ ┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 结果 │ 操作 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 找到 │ 读取、解析、应用设置 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 未找到 │ 使用默认值 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘ **EXTEND.md 支持**:默认输出目录 | 默认捕获模式 | 超时设置 ## 功能特性 - Chrome CDP 完整 JavaScript 渲染 - 两种捕获模式:自动或等待用户 - 带元数据的干净 Markdown 输出 - 通过等待模式处理需要登录的页面 ## 使用方法 ```bash # 自动模式(默认)- 页面加载时捕获 npx -y bun ${SKILL_DIR}/scripts/main.ts # 等待模式 - 等待用户信号后捕获 npx -y bun ${SKILL_DIR}/scripts/main.ts --wait # 保存到指定文件 npx -y bun ${SKILL_DIR}/scripts/main.ts -o output.md ``` ## 选项 | 选项 | 描述 | |--------|-------------| | `` | 要抓取的 URL | | `-o ` | 输出文件路径(默认:自动生成) | | `--wait` | 等待用户信号后捕获 | | `--timeout ` | 页面加载超时(默认:30000) | ## 捕获模式 | 模式 | 行为 | 适用场景 | |------|----------|----------| | 自动(默认) | 网络空闲时捕获 | 公开页面、静态内容 | | 等待(`--wait`) | 用户发信号时捕获 | 需要登录、延迟加载、付费墙 | **等待模式工作流程**: 1. 使用 `--wait` 运行 → 脚本输出"准备好后按回车" 2. 询问用户确认页面已准备好 3. 向 stdin 发送换行符以触发捕获 ## 输出格式 YAML front matter 包含 `url`、`title`、`description`、`author`、`published`、`captured_at` 字段,后跟转换后的 Markdown 内容。 ## 输出目录 ``` url-to-markdown//.md ``` - ``:来自页面标题或 URL 路径(kebab-case,2-6 个词) - 冲突解决:追加时间戳 `-YYYYMMDD-HHMMSS.md` ## 环境变量 | 变量 | 描述 | |----------|-------------| | `URL_CHROME_PATH` | 自定义 Chrome 可执行文件路径 | | `URL_DATA_DIR` | 自定义数据目录 | | `URL_CHROME_PROFILE_DIR` | 自定义 Chrome 配置文件目录 | **故障排除**:找不到 Chrome → 设置 `URL_CHROME_PATH`。超时 → 增加 `--timeout`。复杂页面 → 尝试 `--wait` 模式。 ## 扩展支持 通过 EXTEND.md 自定义配置。路径和支持的选项请参见**偏好设置**部分。