名称:baoyu-url-to-markdown 描述:使用Chrome CDP获取任何URL并将其转换为Markdown。支持两种模式 - 在页面加载时自动捕获,或等待用户信号(用于需要登录的页面)。当用户想将网页保存为Markdown时使用。
URL到Markdown
通过Chrome CDP获取任何URL并将HTML转换为干净的Markdown。
脚本目录
重要:所有脚本都位于此技能的scripts/子目录中。
代理执行指令:
- 确定此SKILL.md文件的目录路径为
SKILL_DIR - 脚本路径 =
${SKILL_DIR}/scripts/<脚本名称>.ts - 在此文档中替换所有
${SKILL_DIR}为实际路径
脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/main.ts |
URL获取的CLI入口点 |
偏好设置 (EXTEND.md)
使用Bash检查EXTEND.md的存在(优先级顺序):
# 首先检查项目级别
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输出,带有元数据
- 通过等待模式处理需要登录的页面
使用方法
# 自动模式(默认) - 页面加载时捕获
npx -y bun ${SKILL_DIR}/scripts/main.ts <url>
# 等待模式 - 在捕获前等待用户信号
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --wait
# 保存到指定文件
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md
选项
| 选项 | 描述 |
|---|---|
<url> |
要获取的URL |
-o <路径> |
输出文件路径(默认:自动生成) |
--wait |
在捕获前等待用户信号 |
--timeout <毫秒> |
页面加载超时(默认:30000) |
捕获模式
| 模式 | 行为 | 使用场景 |
|---|---|---|
| 自动(默认) | 在网络空闲时捕获 | 公共页面、静态内容 |
等待(--wait) |
用户发出信号时准备就绪 | 需要登录的页面、懒加载、付费墙 |
等待模式工作流程:
- 使用
--wait运行 → 脚本输出"准备就绪时按Enter" - 询问用户确认页面就绪
- 发送换行符到stdin以触发捕获
输出格式
带有url、title、description、author、published、captured_at字段的YAML front matter,后跟转换的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进行自定义配置。有关路径和支持的选项,请参见偏好设置部分。