library-page-archivelisted
Install: claude install-skill huangjun124114/skills
# 资料库已托管页面:本地复刻 + Markdown 归档
把一份**已托管的资料库 HTML 页面**完整搬到本地,既保留可交互的原件,
又产出一份能检索、能二次引用的 Markdown 归档版。
---
## 0. 先确认这是不是本技能的场景
| 用户意图 | 走哪条路 |
|---|---|
| "复刻 / 归档 / 存下来 / 转 markdown"一份**已托管的 page 链接** | **本技能** |
| "做同款 / 克隆一份到我的资料库"(要新建等价副本) | 资料库 skill 的 §4.5 `clone-flow.md`(需 databaseId 重映射) |
| 改已托管页面的内容 | 资料库 skill 的 §4 `edit-flow.md`(增量事务) |
| 把本地素材做成新的在线 page | 资料库 skill 的 §8 `beautify-flow.md` |
> **判定要点**:本技能**只读不写**远端——从远端拉产物到本地。任何"要新建/要改远端"的诉求都不在本技能。
---
## 1. 链路(四步,最小实现)
### 第 1 步 · 归一化 nodeId
链接形态 → nodeId:
| 链接形态 | nodeId |
|---|---|
| `https://www.workbuddy.link/p/1uHlxkwWT6MilnLA3suld9` | `/p/` 后那段 |
| `https://www.workbuddy.cn/space/d/1uHlxkwWT6MilnLA3suld9` | `/d/` 后那段 |
| 裸 nodeId | 原值 |
### 第 2 步 · 判 kind(决定能不能走本技能)
```bash
# mode=client 需先换票:ToolSearch → DeferExecuteTool(connect_open_platform, skill_id=library)
printf '%s\n%s' "<token>" '{"nodeId":"<nodeId>"}' \
| python3 "<library_skill_dir>/space_api.py" space.workspace.node-info --token-stdin --stdin
```
- `kind=web` / `kind=page` → ✅ 本技能
- `kind=doc` → 是文档,走 library `doc/entry.md` 读正文
- `kind=database` → 是表格,走 library `database/entry.md`
### 第 3 步 · 取产物地址并下载
```bash
printf '%s' "<token>" | python3 "<library_skill_dir>/page/list_page_artifacts.py" \
--token-stdin --node-id "<nodeId>"
# 输出 KS_IMPORT_OK 风格 JSON:data.url(产物根地址)+ data.artifacts[].path
# 拼 {data.url}{path} 直接 curl 拉取,即得完整单文件
curl -s --ssl-no-revoke -L "{data.url}{path}" -o "中间产物/_archive/<name>.html" \
-w "%{http_code} %