get-popo-doc
SKILL.md
get-popo-doc
获取 POPO 文档内容并转换为 Markdown 格式,以文档标题命名保存到系统下载目录。支持自动登录、Cookie 持久化、iframe 内容提取,以及 Mermaid 图表、代码块、表格等复杂元素的转换。
When to use
- 用户提供 POPO 文档链接(如
https://docs.popo.netease.com/lingxi/xxx) - 用户请求获取、读取、抓取 POPO 文档内容
- 用户需要将 POPO 文档转换为 Markdown
- 用户提到"灵犀文档"、"POPO 文档"等关键词
Instructions
执行步骤
- 先安装依赖(只需首次执行):
cd /path/to/get_popo_doc
npm install
- 执行脚本获取文档:
npx tsx src/index.ts <POPO文档链接>
登录说明
⚠️ 重要提示:首次使用或登录失效时,工具会自动打开浏览器窗口,需要用户手动完成 POPO 登录。
- 首次使用:会弹出浏览器窗口,用户需在页面中完成 POPO 账号登录
- 登录失效:Cookie 过期后(通常几天到几周),需要重新登录
- 登录成功后:Cookie 会保存到
~/.popo-doc-cookies.json,后续请求自动复用登录状态 - 首次登录后可能失败:首次登录完成后,当次获取可能会失败,需要自动重试一次命令
AI 需提醒用户:执行命令后如果弹出浏览器窗口,请在浏览器中完成登录,登录成功后工具会自动继续获取文档内容。
AI 处理失败:如果首次登录后获取失败,自动重新执行一次命令即可成功。
输出说明
- 成功时:
- 文件保存到
~/Downloads/目录 - 文件名格式:
{文档标题}_{时间戳}.md(如API设计文档_20260306_162500.md) - stdout 输出文件的绝对路径
- 文件保存到
- 写入失败时:stdout 直接输出 Markdown 内容
- 获取失败时:stderr 输出错误信息,exit code 为 1
读取结果
- 执行命令后,从 stdout 获取输出
- 如果输出是文件路径(以
/开头且以.md结尾),则读取该文件 - 如果输出是 Markdown 内容(写入失败的降级方案),直接使用该内容
- 将内容展示给用户
示例
cd /Users/zhaoxuhui/Desktop/get_popo_doc
npm install
npx tsx src/index.ts https://docs.popo.netease.com/lingxi/7509c0c0435f47559d265d613ebf915c
# 成功输出: /Users/xxx/Downloads/API设计文档_20260306_162500.md
然后读取输出的文件路径获取 Markdown 内容。
Examples
用户请求示例
- "帮我获取这个 POPO 文档:https://docs.popo.netease.com/lingxi/xxx"
- "读取这个灵犀文档的内容"
- "把这个 POPO 链接的内容转成 Markdown"
AI 响应流程
- 识别用户提供的 POPO 文档链接
- 提醒用户:"正在获取文档,如果弹出浏览器窗口请完成登录"
- 进入 skill 目录,执行
npm install安装依赖(如未安装) - 执行
npx tsx src/index.ts <URL> - 如果失败(exit code 为 1),自动重试一次命令(仅重试 1 次,首次登录后可能需要重试)
- 从 stdout 获取输出:
- 如果是文件路径,读取该文件获取 Markdown 内容
- 如果是 Markdown 内容,直接使用
- 将 Markdown 内容展示给用户
Dependencies
- puppeteer: ^24.0.0
- turndown: ^7.2.0
- tsx: ^4.19.3
Tags
- popo
- document
- markdown
- scraper
- netease