$npx -y skills add Byte-n/larkDocx2md --skill lark-docx2md读取飞书 Wiki 文档或电子表格(https://*.feishu.cn/wiki/...、https://*.feishu.cn/sheets/...)内容。当需要读取、导入、归档、分析或处理飞书 wiki 或 sheets 链接的内容时使用。
| 1 | # lark-docx2md |
| 2 | |
| 3 | 将飞书文档或电子表格 URL 转换为本地 Markdown 文件。 |
| 4 | |
| 5 | ## 适用范围 |
| 6 | |
| 7 | - 适用链接类型:`https://*.feishu.cn/{wiki,docx,docs,sheets}/...`(含 `?sheet=xxx`)。 |
| 8 | - 适用任务类型:读取、导入、归档、分析、抽取飞书文档内容,并提供给后续实现或生成任务使用。 |
| 9 | - `wiki/docx/docs`:支持整篇读取与按标题/章节定向读取。 |
| 10 | - `sheets`:默认按整表读取,不做标题筛选。 |
| 11 | - 不适用于:非飞书链接、纯本地文件解析、需要直接写回飞书文档的场景。 |
| 12 | |
| 13 | ## 工作流程 |
| 14 | |
| 15 | ### 第一步:识别链接类型(必须先做) |
| 16 | |
| 17 | - 若 URL 含 `/sheets/`:判定为电子表格。 |
| 18 | - 若 URL 含 `/wiki/`、`/docx/`、`/docs/`:判定为文档。 |
| 19 | |
| 20 | ### 第二步:按类型分支处理 |
| 21 | |
| 22 | #### A. 电子表格(`/sheets/`) |
| 23 | |
| 24 | 电子表格不做标题识别,直接下载整表: |
| 25 | |
| 26 | ```bash |
| 27 | npx -y lark-docx2md@latest dl --agent local --url "<url>" |
| 28 | ``` |
| 29 | |
| 30 | #### B. 文档(`/wiki/`、`/docx/`、`/docs/`) |
| 31 | |
| 32 | 1. 先从用户请求中识别 `title`: |
| 33 | |
| 34 | 1. 显式关键词「标题/章节/小节/部分/节选/只要/其中的」+ 名词短语。 |
| 35 | 2. 成对引号 `""` `''` `“”` `‘’` `「」` `《》` 包裹的短文本。 |
| 36 | 3. 介词结构:`X 中的 Y`、`X 里的 Y`、`X 那一段`、`关于 X 的内容`。 |
| 37 | 4. 多级路径:`A 下/中/里的 B`、`A > B`、`A/B`、`A → B` → 取为有序路径 `[A, B, ...]`。 |
| 38 | |
| 39 | **抽到的标题文本:去首尾空白与包裹引号;保留原文大小写、标点、空格、中英文;不翻译/改写/补全。** |
| 40 | |
| 41 | 2. 如果成功识别到 `title`,则需要进一步获取 `<blockId>`: |
| 42 | |
| 43 | ```bash |
| 44 | npx -y lark-docx2md@latest get-titles --agent local --url "<url>" |
| 45 | ``` |
| 46 | |
| 47 | 根据 `get-titles` 输出的所有标题信息,匹配 `title` 获取对应的 `<blockId>`。若没有明确的匹配项或存在多个匹配项,则必须让用户参与决策。 |
| 48 | |
| 49 | 3. 根据识别结果查询: |
| 50 | |
| 51 | **有 `<blockId>`:** |
| 52 | |
| 53 | ```bash |
| 54 | npx -y lark-docx2md@latest dl --agent local --filter-title-block-id "<blockId>" --url "<url>" |
| 55 | ``` |
| 56 | |
| 57 | **无 `<blockId>`:** |
| 58 | |
| 59 | ```bash |
| 60 | npx -y lark-docx2md@latest dl --agent local --url "<url>" |
| 61 | ``` |
| 62 | |
| 63 | ### 读取结果 |
| 64 | |
| 65 | 从 `dl` 的 stdout 解析 Markdown 绝对路径并读取该文件;同时**必须**读取其中引用的所有图片(含画板内图片,路径形如 `static/xxx.png`)。 |
| 66 | |
| 67 | ## 重要事项 |
| 68 | |
| 69 | - `dl` 必须带 `--agent local`;`get-titles` 必须带 `--agent local`。 |