Shared Page Markdown
接收用户提供的 URL,并将页面内容转成 Markdown。
Prerequisite
确认本机浏览器已开启 CDP 远程调试端口:
& "brave.exe" --remote-debugging-port=9222
如果端口不可用,先确认浏览器是否已启动;必要时使用 everything-file-search 找到浏览器路径。
Workflow
- 接收用户提供的 URL。
- 默认假设该 URL 已经在用户浏览器中打开;目标是复用用户当前会话里的已有标签页,而不是新开页面。
- 在
shared-page-mdskill 目录下运行:
python .\scripts\page_to_md.py --url <url>
- 脚本会在系统临时目录下自动创建本次输出目录,并恒写出:
full.md: 当前页面body转出的 Markdown;若命中域名 adaptor,可能已删除该站已知噪声节点page.html: 抓到的 HTMLmain.md: 仅当页面存在main或article时才写出
- 从 stdout 读取结果:
- 若找到
main或article,最前会打印<!-- main -->或<!-- article --> - 随后直接打印所选中的 Markdown;有主内容时打印
main.md的内容,否则打印full.md的内容 - 正文结束后会打印一行
---,用以分隔正文与路径元信息 - 恒打印
full_md=<path> - 恒打印
html=<path>
- 若找到
- 默认先取
main或article;若不存在,则直接使用body的 Markdown。 - 页面抓取默认不再依赖
domcontentloaded作为正文就绪信号,而是在导航完成后统一额外等待 3 秒;若命中域名 adaptor,可再追加站点专用ready_hint(page)等待。 - 若
scripts/adapters/<domain>.py存在,则会按hostname后缀动态装载,例如www.youtube.com -> youtube_com.py、jakobnielsenphd.substack.com -> substack_com.py;adaptor 只负责等待与噪声裁剪,不参与main/article的选择。 - 根据 Markdown 继续执行用户任务:
- 需要快速理解页面时,先总结正文和页面结构
- 需要提取信息时,优先保留标题、列表、表格、关键链接
- 页面很长时,先给出结构化摘要,再按用户要求展开
Output Strategy
- 页面较短时,直接基于 Markdown 回答。
- 页面较长时,先输出页面主题、主要分段、关键链接和表格,再展开细节。
- 导航、页脚、推荐内容较多时,明确说明输出来自页面 DOM,可能包含噪音。
- 脚本只把
main或article视为主内容;若二者皆无,则直接落回body的 Markdown。 - 发现登录态相关内容时,优先按“当前浏览器会话可见内容”理解,不要假设匿名访问结果。
Parameters
--url <url>: 必填,目标页面 URL- 输出路径策略:
- 若找到
main或article,stdout 最前打印<!-- main -->或<!-- article --> - stdout 总是直接承载所选中的 Markdown
- 路径元信息之前恒有一行
--- - 恒返回
full_md=<path> - 恒返回
html=<path>
- 若找到
Boundaries
- 只需要语义内容时,用这个 skill。
- 需要视觉布局、像素级对照、UI 细节时,改用
screenshot-webpage。 - 需要点击、输入、切换标签、处理复杂交互时,改用
browser。
Failure Handling
常见失败模式和处理方式见 references/failure-modes.md。