mcpField
B
baoyu-url-to-markdown

baoyu-url-to-markdown

github.com/makerjackie文档处理144 次安装36 周前更新
代码仓库

关于 baoyu-url-to-markdown

通过 Chrome CDP 获取网页并将 HTML 转换为 Markdown 的技能,适用于需要保存网页内容的场景。提供自动捕获和等待模式,可在捕获前处理需要用户交互的页面。

主要功能

  1. 01通过 Chrome CDP 渲染页面
  2. 02自动与等待捕获模式
  3. 03附带 YAML 元数据的 Markdown 输出
  4. 04可配置输出路径与超时
  5. 05支持 EXTEND.md 配置

适用场景

  1. 01将公开网页保存为 Markdown
  2. 02交互后捕获需要登录的页面
  3. 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.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 .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)用户发出就绪信号需要登录的页面、延迟加载、付费墙

等待模式工作流:

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

评论

支持 Markdown