mcpField
C
canghe-url-to-markdown

canghe-url-to-markdown

github.com/freestylefly文档处理470506 次安装20 周前更新
代码仓库

关于 canghe-url-to-markdown

这项 Skill 通过 Chrome CDP 抓取网页,并将渲染后的 HTML 转为 Markdown。它提供自动捕获和等待用户确认两种模式,适用于需要登录或额外加载的页面。

主要功能

  1. 01捕获 JavaScript 渲染页面
  2. 02自动与等待用户模式
  3. 03生成带 YAML 元数据的 Markdown
  4. 04配置输出路径与超时

适用场景

  1. 01将公开网页保存为 Markdown
  2. 02抓取需要登录的页面
  3. 03等待延迟加载内容完成
  4. 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.ts
constants.ts
html-to-markdown.ts
main.ts
paths.ts

详细介绍

URL 转 Markdown

通过 Chrome CDP 获取任意 URL,并将 HTML 转换为简洁的 Markdown。

脚本目录

重要:所有脚本都位于此技能的 scripts/ 子目录中。

Agent 执行说明:

  1. 确定此 SKILL.md 文件所在目录路径,并记为 SKILL_DIR
  2. 脚本路径 = ${SKILL_DIR}/scripts/<script-name>.ts
  3. 将本文档中所有 ${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)用户发出就绪信号需要登录的页面、延迟加载、付费墙

等待模式工作流:

  1. 使用 --wait 运行 → 脚本输出“准备就绪时按 Enter”
  2. 请用户确认页面已准备就绪
  3. 向 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 使用自定义配置。路径和支持的选项请参见偏好设置部分。

评论

支持 Markdown