lark-docx2md 0.1.1 → 0.2.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,38 +4,58 @@
4
4
 
5
5
  将飞书文档转换为 Markdown 文件的命令行工具。
6
6
 
7
- > 支持的飞书文档链接格式:https://*.feishu.cn/wiki/*
7
+ > 支持的飞书文档链接格式:`https://*.feishu.cn/wiki/*`、`https://*.feishu.cn/sheets/*`
8
8
 
9
9
  ## 使用
10
10
 
11
11
  > 命令所需权限见下 ‘飞书自创应用需要的权限’
12
12
 
13
13
  ```bash
14
- npx -y lark-docx2md download https://xxx.feishu.cn/wiki/xxx --app-id cli_xxx --app-secret xxxx
14
+ npx -y lark-docx2md@latest download https://xxx.feishu.cn/wiki/xxx --app-id cli_xxx --app-secret xxxx
15
15
  ```
16
16
 
17
+ > `download` 命令支持别名 `dl`,以下写法等效:
18
+ >
19
+ > ```bash
20
+ > npx -y lark-docx2md@latest dl https://xxx.feishu.cn/wiki/xxx --app-id cli_xxx --app-secret xxxx
21
+ > ```
22
+
17
23
  或先设置环境变量(命令行参数可省略):
18
24
 
19
25
  ```bash
20
26
  export LARK_DOCX2MD_APP_ID=<APP_ID>
21
27
  export LARK_DOCX2MD_APP_SECRET=<APP_SECRET>
22
- npx -y lark-docx2md download <url>
28
+ npx -y lark-docx2md@latest download <url>
23
29
  ```
24
30
 
25
- | 参数 | 说明 |
26
- |-----------------------|-----------------------------------------------------------|
27
- | `<url>` | 飞书文档链接 |
28
- | `--app-id` | 飞书应用 App ID(可选;默认读取 `LARK_DOCX2MD_APP_ID`) |
29
- | `--app-secret` | 飞书应用 App Secret(可选;默认读取 `LARK_DOCX2MD_APP_SECRET`) |
30
- | `-o, --output <dir>` | 输出目录(默认:`./larkDocx2mdOutput`) |
31
- | `--agent` | Agent 模式:日志等级为 ERROR,image-mod `online`,Markdown 输出到标准流 |
32
- | `--image-mode <mode>` | 图片处理模式:`local`(下载到本地,默认)或 `online`(使用 24h 临时在线链接) |
31
+ ## 参数
32
+
33
+ | 参数 | 说明 | 环境变量 | 默认值 |
34
+ |--------------------------|-------------------------------------------|------------------------------|-----------------------|
35
+ | `<url>` | 飞书文档链接(`https://*.feishu.cn/wiki/*` `/sheets/*`) | — | — |
36
+ | `--app-id <id>` | 飞书应用 App ID | `LARK_DOCX2MD_APP_ID` | — |
37
+ | `--app-secret <secret>` | 飞书应用 App Secret | `LARK_DOCX2MD_APP_SECRET` | |
38
+ | `-o, --output <dir>` | 输出目录 | `LARK_DOCX2MD_OUTPUT` | `./larkDocx2mdOutput` |
39
+ | `--agent [mode]` | Agent 模式:日志 ERROR。不传值(或 `=true`)为在线模式,Markdown 输出到 stdout;传 `local` 则落盘后输出引导 AI 读取的提示词 | `LARK_DOCX2MD_AGENT=true\|local` | `false` |
40
+ | `--image-mode <mode>` | 图片处理模式:`local`(下载到本地)或 `online`(24h 临时链接) | `LARK_DOCX2MD_IMAGE_MODE` | `local` |
41
+ | `--wb-format <format>` | 画板输出格式:`base64`、`inline-svg`、`svg`、`yaml` | `LARK_DOCX2MD_WB_FORMAT` | `svg`(agent 下默认 `yaml`) |
42
+ | `--wb-bg <style>` | 画板 SVG 背景:`none`、`dot` 或颜色值如 `#fff` | `LARK_DOCX2MD_WB_BG` | `none` |
43
+ | `--wb-image-mode <mode>` | 画板图片模式:`online`、`base64` 或 `local` | `LARK_DOCX2MD_WB_IMAGE_MODE` | `local` |
44
+
45
+ > **参数联动规则**
46
+ >
47
+ > - `--agent`(在线):强制 `--image-mode=online`、`--wb-image-mode=online`;`--wb-format` 默认 `yaml`,仅允许 `inline-svg` / `yaml`;转换完成后 Markdown 直接通过 stdout 输出。
48
+ > - `--agent local`:强制 `--image-mode=local`、`--wb-image-mode=local`(Markdown、图片、画板中的图片均落盘);`--wb-format` 默认 `yaml`,仅允许 `inline-svg` / `yaml`;stdout 输出引导 AI 读取文件的提示词(包含绝对路径)。
49
+ > - 非 agent 模式下 `--wb-format yaml` 时:`--wb-image-mode` 强制为 `online`。
33
50
 
34
51
  ## 功能
35
52
 
36
53
  - 支持飞书 Wiki 文档下载
37
54
  - 转换 20+ 种块类型
38
55
  - 输出标准 Markdown 文件
56
+ - 支持飞书画板,输出格式:`base64`(data URI 内嵌)、`inline-svg`(SVG 标签内嵌)、`svg`(独立文件)、`yaml`(AI
57
+ 友好结构化数据)。详见 [画板支持说明](./WHITEBOARD.md)
58
+ - 支持飞书电子表格(独立 sheet URL 或 docx 内嵌 sheet 块),输出 GFM 表格,自动展开合并单元格。详见 [电子表格支持说明](./SHEET.md)
39
59
 
40
60
  ### 支持的内容块类型
41
61
 
@@ -56,6 +76,7 @@ npx -y lark-docx2md download <url>
56
76
  | Table / TableCell | 表格 | `<table>` HTML(支持合并单元格) |
57
77
  | QuoteContainer | 引用容器 | `> 子块内容` |
58
78
  | Grid / GridColumn | 分栏布局 | 展平为子块内容 |
79
+ | Sheet | 电子表格 | GFM 表格(合并单元格自动展开) |
59
80
 
60
81
  ### 支持的行内样式
61
82
 
@@ -71,16 +92,16 @@ npx -y lark-docx2md download <url>
71
92
  | @用户 | 用户 ID |
72
93
  | @文档 | `[标题](url)` |
73
94
 
74
- > 未支持的块类型(如文件附件、视频、内嵌表格、画板等)会被静默忽略。
95
+ > 未支持的块类型(如文件附件、视频等)会被静默忽略。
75
96
 
76
97
  ## 开发
77
98
 
78
99
  ```bash
79
- # 直接运行(无需构建)
100
+ # 直接运行(无需构建),download 可使用别名 dl
80
101
  pnpm dev download --app-id <APP_ID> --app-secret <APP_SECRET> <url>
81
102
 
82
103
  # 或使用环境变量
83
- LARK_DOCX2MD_APP_ID=<APP_ID> LARK_DOCX2MD_APP_SECRET=<APP_SECRET> pnpm dev download <url>
104
+ LARK_DOCX2MD_APP_ID=<APP_ID> LARK_DOCX2MD_APP_SECRET=<APP_SECRET> pnpm dev dl <url>
84
105
 
85
106
  # 构建为 JS
86
107
  pnpm build
@@ -94,14 +115,21 @@ pnpm build
94
115
  {
95
116
  "scopes": {
96
117
  "tenant": [
118
+ "base:app:read",
119
+ "bitable:app",
120
+ "bitable:app:readonly",
121
+ "board:whiteboard:node:read",
122
+ "contact:user.employee_id:readonly",
97
123
  "docs:document.media:download",
124
+ "docx:document",
98
125
  "docx:document:readonly",
99
- "wiki:node:read"
126
+ "wiki:node:read",
127
+ "wiki:wiki",
128
+ "wiki:wiki:readonly",
129
+ "sheets:spreadsheet.meta:read",
130
+ "sheets:spreadsheet:readonly"
100
131
  ],
101
- "user": [
102
- "docx:document:readonly",
103
- "wiki:node:read"
104
- ]
132
+ "user": []
105
133
  }
106
134
  }
107
135
  ```
@@ -113,3 +141,8 @@ ISC
113
141
  ## 🙏 致谢
114
142
 
115
143
  本项目开发过程中获得了 [LINUX DO](https://linux.do/latest) 社区佬友的帮助,本产品会在社区发布,感谢社区的支持。
144
+
145
+ ## TODO
146
+
147
+ - [ ] 富文本转换
148
+ - [x] 电子表格导出为 Markdown