feishu-doc-to-markdownlisted
Install: claude install-skill huangjun124114/skills
# 飞书云文档 → 本地 markdown
把飞书文档变成「拷走整个文件夹就能用」的 markdown。核心难点不是取正文,而是
**飞书专有结构 + 私有资源链接**:图片是 `feishu.cn/file/<token>` 私有链接,外发即失效。
## 快速使用
```bash
python ~/.workbuddy/skills/feishu-doc-to-markdown/scripts/feishu_md_export.py \
"<文档URL或token>" --outdir "<输出目录>" [--name "<文件名前缀>"]
```
产出结构:
```
<输出目录>/
├── <name>.md # 正文,图片/附件均为相对路径
├── images/ # 图片,按文档顺序编号 + 上下文命名
└── attachments/ # 视频 / zip / pdf 等文件附件(仅当文档里有)
```
调用前按项目约定确定 `--name`:**最终交付文件名带日期**(MMDD 或 MM-DD,如 `学员手册_0915`)。
多份文档「分开存放」= 每份一个独立子目录。
## 脚本已处理的飞书专有结构
| 原始形态 | 转换结果 |
|-|-|
| `<title>X</title>` | 移除(HTML 元数据,markdown 里无意义;标题由文件名体现) |
| `<figure><source name="a.mp4" token="T"/></figure>` | 下载到 `attachments/` → `[a.mp4](attachments/a.mp4)` |
| `` | 下载到 `images/` → `` |
| `<grid><column>...` | 退化为顺序内容,多栏内容各自成行(否则会粘连) |
| `<cite doc-id="T" file-type="wiki" title="X">` | `[X](https://my.feishu.cn/wiki/T)` |
| `<table><tr><td rowspan=...>` | 标准 markdown 表格,rowspan/colspan 展开为重复值 |
| `<p>` `</p>` `<blockquote>` | 去包裹标签,保留内容 |
## 必须绕开的坑
1. **bash PATH 在本机会失效**(`dirname: command not found` → ls/find/grep 全挂)。
每条命令前显式导出:
```bash
export PATH="/c/Users/Administrator/.workbuddy/binaries/node/cli-connector-packages:/c/Users/Administrator/.workbuddy/binaries/python/versions/3.13.12:/c/Users/Administrator/.workbuddy/binaries/PortableGit/versions/1.2.0/bin:/c/Users/Administrator/.workbuddy/binaries/PortableGit/versions/1.2.0/usr/bin:/c/Wi