关于 canghe-url-to-markdown
这项 Skill 通过 Chrome CDP 抓取网页,并将渲染后的 HTML 转为 Markdown。它提供自动捕获和等待用户确认两种模式,适用于需要登录或额外加载的页面。
主要功能
- 01捕获 JavaScript 渲染页面
- 02自动与等待用户模式
- 03生成带 YAML 元数据的 Markdown
- 04配置输出路径与超时
适用场景
- 01将公开网页保存为 Markdown
- 02抓取需要登录的页面
- 03等待延迟加载内容完成
- 04通过 EXTEND.md 设置捕获偏好
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ freestylefly/ canghe-skills --skill canghe-url-to-markdown安装后在 Claude Code 中输入/canghe-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 .canghe-skills/canghe-url-to-markdown/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.canghe-skills/canghe-url-to-markdown/EXTEND.md" && echo "user"
┌────────────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .canghe-skills/canghe-url-to-markdown/EXTEND.md │ 项目目录 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.canghe-skills/canghe-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 front matter 包含 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 使用自定义配置。路径和支持的选项请参见偏好设置部分。