关于 baoyu-url-to-markdown
通过 Chrome CDP 获取网页并将 HTML 转换为 Markdown 的技能,适用于需要保存网页内容的场景。提供自动捕获和等待模式,可在捕获前处理需要用户交互的页面。
主要功能
- 01通过 Chrome CDP 渲染页面
- 02自动与等待捕获模式
- 03附带 YAML 元数据的 Markdown 输出
- 04可配置输出路径与超时
- 05支持 EXTEND.md 配置
适用场景
- 01将公开网页保存为 Markdown
- 02交互后捕获需要登录的页面
- 03提取 JavaScript 密集型页面内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ makerjackie/ jackie-skills-starter --skill baoyu-url-to-markdown安装后在 Claude Code 中输入/baoyu-url-to-markdown确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/cdp.tsconstants.tshtml-to-markdown.tsmain.tspaths.ts详细介绍
URL 转 Markdown
通过 Chrome CDP 获取任意 URL,并将 HTML 转换为简洁的 Markdown。
脚本目录
重要:所有脚本都位于此技能的 scripts/ 子目录中。
Agent 执行说明:
- 将此 SKILL.md 文件所在目录路径确定为
SKILL_DIR - 脚本路径 =
${SKILL_DIR}/scripts/<script-name>.ts - 将本文档中的所有
${SKILL_DIR}替换为实际路径
脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/main.ts | 获取 URL 的 CLI 入口点 |
偏好设置(EXTEND.md)
使用 Bash 按以下优先级检查 EXTEND.md 是否存在:
# Check project-level first
test -f .baoyu-skills/baoyu-url-to-markdown/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on 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
- 通过等待模式处理需要登录的页面
用法
# Auto mode (default) - capture when page loads
npx -y bun ${SKILL_DIR}/scripts/main.ts <url>
# Wait mode - wait for user signal before capture
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --wait
# Save to specific file
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md
选项
| 选项 | 描述 |
|---|---|
<url> | 要获取的 URL |
-o <path> | 输出文件路径(默认:自动生成) |
--wait | 捕获前等待用户信号 |
--timeout <ms> | 页面加载超时(默认:30000) |
捕获模式
| 模式 | 行为 | 适用场景 |
|---|---|---|
| 自动(默认) | 网络空闲时捕获 | 公开页面、静态内容 |
等待(--wait) | 用户发出就绪信号 | 需要登录的页面、延迟加载、付费墙 |
等待模式工作流:
- 使用
--wait运行 → 脚本输出“准备就绪时按 Enter” - 询问用户确认页面是否已准备就绪
- 向 stdin 发送换行符以触发捕获
输出格式
YAML 前置元数据包含 url、title、description、author、published、captured_at 字段,后接转换后的 Markdown 内容。
输出目录
url-to-markdown/<domain>/<slug>.md
<slug>:根据页面标题或 URL 路径生成(kebab-case,2-6 个单词)- 冲突处理:追加时间戳
<slug>-YYYYMMDD-HHMMSS.md
环境变量
| 变量 | 描述 |
|---|---|
URL_CHROME_PATH | 自定义 Chrome 可执行文件路径 |
URL_DATA_DIR | 自定义数据目录 |
URL_CHROME_PROFILE_DIR | 自定义 Chrome 配置文件目录 |
故障排查:找不到 Chrome → 设置 URL_CHROME_PATH。超时 → 增加 --timeout。复杂页面 → 尝试 --wait 模式。
扩展支持
通过 EXTEND.md 使用自定义配置。路径和支持的选项请参阅偏好设置部分。