@amaster.ai/pi-lark 0.1.2-beta.44 → 0.1.2-beta.46
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/package.json +2 -2
- package/skills/lark-apps/SKILL.md +23 -12
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-automation.md +80 -2
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +0 -1
- package/skills/lark-apps/references/lark-apps-create.md +1 -2
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
- package/skills/lark-apps/references/lark-apps-init.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +1 -1
- package/skills/lark-apps/references/lark-apps-local-dev.md +54 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-base/SKILL.md +4 -6
- package/skills/lark-base/references/lark-base-cell-value.md +3 -3
- package/skills/lark-base/references/lark-base-field-create.md +4 -0
- package/skills/lark-base/references/lark-base-field-json.md +4 -4
- package/skills/lark-base/references/lark-base-field-update.md +17 -1
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-create.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +3 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +10 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +9 -8
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +41 -0
- package/skills/lark-doc/references/lark-doc-xml.md +4 -3
- package/skills/lark-drive/SKILL.md +4 -1
- package/skills/lark-drive/references/lark-drive-comment-location.md +2 -2
- package/skills/lark-drive/references/lark-drive-search.md +1 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
- package/skills/lark-event/SKILL.md +1 -0
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-im/SKILL.md +1 -1
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-flag-list.md +8 -7
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-slides/SKILL.md +104 -47
- package/skills/lark-slides/references/asset-planning.md +6 -4
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-create.md +2 -3
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +1 -2
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
- package/skills/lark-slides/references/lark-slides-replace-slide.md +0 -3
- package/skills/lark-slides/references/lark-slides-screenshot.md +4 -4
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +219 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +6 -5
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +65 -30
- package/skills/lark-slides/references/planning-layer.md +11 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1416 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +1 -45
- package/skills/lark-slides/references/troubleshooting.md +25 -7
- package/skills/lark-slides/references/validation-checklist.md +53 -16
- package/skills/lark-slides/references/visual-planning.md +25 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +243 -46
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1054 -78
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +957 -150
- package/skills/lark-task/SKILL.md +7 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-whiteboard/SKILL.md +13 -12
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +15 -15
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +3 -3
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +7 -17
- package/skills/lark-whiteboard/routes/dsl.md +3 -3
- package/skills/lark-whiteboard/routes/mermaid.md +2 -2
- package/skills/lark-whiteboard/routes/svg-edit.md +4 -4
- package/skills/lark-whiteboard/routes/svg.md +11 -6
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +1 -0
- package/skills/lark-slides/references/examples.md +0 -91
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
- package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -433
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# lark-slides xml_presentation.slide create
|
|
2
|
+
|
|
3
|
+
## 用途
|
|
4
|
+
|
|
5
|
+
在指定的 XML 演示文稿中创建新的幻灯片页面,通常用于给 `slides +create` 创建出的空白 PPT 逐页补充内容。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
lark-cli slides xml_presentation.slide create --as user --params '<json_params>' --data '<json_data>'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 参数说明
|
|
14
|
+
|
|
15
|
+
| 参数 | 类型 | 必需 | 说明 |
|
|
16
|
+
|------|------|------|------|
|
|
17
|
+
| `--params` | JSON string | 是 | 路径参数与查询参数 |
|
|
18
|
+
| `--data` | JSON string | 是 | 请求体,包含新页面内容 |
|
|
19
|
+
|
|
20
|
+
### params JSON 结构
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"xml_presentation_id": "slides_example_presentation_id",
|
|
25
|
+
"revision_id": -1,
|
|
26
|
+
"tid": "idMock"
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| 字段 | 类型 | 必需 | 说明 |
|
|
31
|
+
|------|------|------|------|
|
|
32
|
+
| `xml_presentation_id` | string | 是 | 目标演示文稿的唯一标识符 |
|
|
33
|
+
| `revision_id` | integer | 否 | 演示文稿版本号,`-1` 表示最新版本 |
|
|
34
|
+
| `tid` | string | 否 | 锁的事务 ID |
|
|
35
|
+
|
|
36
|
+
### data JSON 结构
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"slide": {
|
|
41
|
+
"slide_id": "slide_example_id",
|
|
42
|
+
"content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\">...</slide>"
|
|
43
|
+
},
|
|
44
|
+
"before_slide_id": "slide_before_target"
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
| 字段 | 类型 | 必需 | 说明 |
|
|
49
|
+
|------|------|------|------|
|
|
50
|
+
| `slide.slide_id` | string | 否 | 幻灯片页面 short ID |
|
|
51
|
+
| `slide.content` | string | 否 | 新幻灯片的 XML 内容 |
|
|
52
|
+
| `before_slide_id` | string | 否 | 插入到指定页面之前 |
|
|
53
|
+
|
|
54
|
+
## slide XML 结构
|
|
55
|
+
|
|
56
|
+
`slide.content` 是一个完整的 `<slide>` 元素,遵循 SML 2.0 Schema:
|
|
57
|
+
|
|
58
|
+
```xml
|
|
59
|
+
<slide xmlns="http://www.larkoffice.com/sml/2.0">
|
|
60
|
+
<data>
|
|
61
|
+
<shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
|
|
62
|
+
<content textType="title">
|
|
63
|
+
<p>标题</p>
|
|
64
|
+
</content>
|
|
65
|
+
</shape>
|
|
66
|
+
</data>
|
|
67
|
+
</slide>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
详细格式请参考 [xml-schema-quick-ref.md](xml-schema-quick-ref.md)。
|
|
71
|
+
|
|
72
|
+
## 使用示例
|
|
73
|
+
|
|
74
|
+
### 在末尾添加幻灯片
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
lark-cli slides xml_presentation.slide create --as user --params '{
|
|
78
|
+
"xml_presentation_id": "slides_example_presentation_id"
|
|
79
|
+
}' --data '{
|
|
80
|
+
"slide": {
|
|
81
|
+
"content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新页面标题</p></content></shape><shape type=\"text\" topLeftX=\"80\" topLeftY=\"200\" width=\"800\" height=\"180\"><content textType=\"body\"><p>内容文本</p></content></shape></data></slide>"
|
|
82
|
+
}
|
|
83
|
+
}'
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 在指定页面前插入幻灯片
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
lark-cli slides xml_presentation.slide create --as user --params '{
|
|
90
|
+
"xml_presentation_id": "slides_example_presentation_id"
|
|
91
|
+
}' --data '{
|
|
92
|
+
"slide": {
|
|
93
|
+
"content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>插入的标题页</p></content></shape></data></slide>"
|
|
94
|
+
},
|
|
95
|
+
"before_slide_id": "slide_before_target"
|
|
96
|
+
}'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 带图形元素的幻灯片
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
lark-cli slides xml_presentation.slide create --as user --params '{
|
|
103
|
+
"xml_presentation_id": "slides_example_presentation_id"
|
|
104
|
+
}' --data '{
|
|
105
|
+
"slide": {
|
|
106
|
+
"content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"520\" height=\"120\"><content textType=\"title\"><p>数据展示</p></content></shape><shape type=\"rect\" topLeftX=\"700\" topLeftY=\"100\" width=\"200\" height=\"150\"><fill><fillColor color=\"rgb(100, 149, 237)\"/></fill></shape></data></slide>"
|
|
107
|
+
}
|
|
108
|
+
}'
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 从文件读取 XML
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# 先创建 slide.xml 文件
|
|
115
|
+
cat > slide.xml << 'EOF'
|
|
116
|
+
<slide xmlns="http://www.larkoffice.com/sml/2.0">
|
|
117
|
+
<data>
|
|
118
|
+
<shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
|
|
119
|
+
<content textType="title">
|
|
120
|
+
<p>从文件加载</p>
|
|
121
|
+
</content>
|
|
122
|
+
</shape>
|
|
123
|
+
<shape type="text" topLeftX="80" topLeftY="200" width="800" height="180">
|
|
124
|
+
<content textType="body">
|
|
125
|
+
<p>这是从文件读取的幻灯片内容</p>
|
|
126
|
+
</content>
|
|
127
|
+
</shape>
|
|
128
|
+
</data>
|
|
129
|
+
</slide>
|
|
130
|
+
EOF
|
|
131
|
+
|
|
132
|
+
# 然后创建幻灯片
|
|
133
|
+
lark-cli slides xml_presentation.slide create --as user \
|
|
134
|
+
--params '{"xml_presentation_id":"slides_example_presentation_id"}' \
|
|
135
|
+
--data "$(jq -n --arg content "$(cat slide.xml)" '{slide:{content:$content}}')"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 返回值
|
|
139
|
+
|
|
140
|
+
成功时返回创建的幻灯片信息:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"code": 0,
|
|
145
|
+
"data": {
|
|
146
|
+
"slide_id": "slide_example_id",
|
|
147
|
+
"revision_id": 100
|
|
148
|
+
},
|
|
149
|
+
"msg": "success"
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 返回字段说明
|
|
154
|
+
|
|
155
|
+
| 字段 | 类型 | 说明 |
|
|
156
|
+
|------|------|------|
|
|
157
|
+
| `data.slide_id` | string | 新幻灯片的唯一标识 |
|
|
158
|
+
| `data.revision_id` | integer | 演示文稿最新版本号 |
|
|
159
|
+
|
|
160
|
+
## slide 元素可用子元素
|
|
161
|
+
|
|
162
|
+
| 元素 | 说明 |
|
|
163
|
+
|------|------|
|
|
164
|
+
| `<style>` | 页面样式(背景填充) |
|
|
165
|
+
| `<data>` | 图形元素容器(shape、img、table、chart 等) |
|
|
166
|
+
| `<note>` | 演讲者备注 |
|
|
167
|
+
|
|
168
|
+
> [!IMPORTANT]
|
|
169
|
+
> **本地图片必须先上传**:`xml_presentation.slide.create` 不识别 `@./local.png` 占位符(那是 `+create --slides` 的语法糖)。直接调本接口添加带图新页时,必须先用 [`slides +media-upload`](lark-slides-media-upload.md) 拿到 `file_token`,再写进 `<img src="<file_token>">`。
|
|
170
|
+
>
|
|
171
|
+
> 如果是从零开始建带图 PPT,**强烈建议改用 [`slides +create --slides '[...]'`](lark-slides-create.md#本地图片path-占位符)** 一步搞定(自动上传 + 替换 token)。
|
|
172
|
+
|
|
173
|
+
## 常见错误
|
|
174
|
+
|
|
175
|
+
| 错误码 | 含义 | 解决方案 |
|
|
176
|
+
|--------|------|----------|
|
|
177
|
+
| 404 | 演示文稿不存在 | 检查 `xml_presentation_id` 是否正确 |
|
|
178
|
+
| 400 | XML 格式错误 | 检查 `slide.content` 是否是完整 `<slide>` 元素 |
|
|
179
|
+
| 400 | 请求体结构错误 | 检查是否按 `slide.content` 和 `before_slide_id` 包装 |
|
|
180
|
+
| 403 | 权限不足 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope |
|
|
181
|
+
| 3350001 | XML 非 well-formed 或服务端参数校验失败 | 优先检查未转义字符:文本 `Q&A -> Q&A`,文本 `<` / `>` 写成 `<` / `>`,属性 URL `a=1&b=2 -> a=1&b=2` |
|
|
182
|
+
|
|
183
|
+
## 注意事项
|
|
184
|
+
|
|
185
|
+
1. **执行前必做**: 使用 `lark-cli schema slides.xml_presentation.slide.create` 查看最新的参数结构
|
|
186
|
+
2. **slide.content 格式**: 必须是完整的 `<slide>` 元素,不是整个 presentation
|
|
187
|
+
3. **命名空间建议**: 协议标准写法应带 `xmlns`,例如 `<slide xmlns="http://www.larkoffice.com/sml/2.0">`;当前服务端实现可能兼容不带 `xmlns` 的输入,但不作为协议保证
|
|
188
|
+
4. **fill / border 写法**: 颜色填充使用 `<fill><fillColor color="..."/></fill>`,边框常用 `<border color="..." width="2"/>`
|
|
189
|
+
5. **插入位置**: 通过 `before_slide_id` 指定插入目标,而不是用 `position`
|
|
190
|
+
6. **JSON 转义**: 如果直接内联 XML,需要正确转义双引号
|
|
191
|
+
7. **建议**: 先使用 `slides +xml-get` 获取现有结构,再添加新页面
|
|
192
|
+
|
|
193
|
+
## 批量添加建议
|
|
194
|
+
|
|
195
|
+
如果需要添加多张幻灯片,建议先明确每一页的 `before_slide_id`,或直接按最终顺序逐页追加:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
#!/bin/bash
|
|
199
|
+
|
|
200
|
+
PRESENTATION_ID="slides_example_presentation_id"
|
|
201
|
+
|
|
202
|
+
declare -a slides=(
|
|
203
|
+
'<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 1</p></content></shape></data></slide>'
|
|
204
|
+
'<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 2</p></content></shape></data></slide>'
|
|
205
|
+
'<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 3</p></content></shape></data></slide>'
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
for slide_xml in "${slides[@]}"; do
|
|
209
|
+
payload=$(jq -n --arg content "$slide_xml" '{slide:{content:$content}}')
|
|
210
|
+
lark-cli slides xml_presentation.slide create --as user --params "{\"xml_presentation_id\":\"$PRESENTATION_ID\"}" --data "$payload"
|
|
211
|
+
done
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## 相关命令
|
|
215
|
+
|
|
216
|
+
- [slides +create](lark-slides-create.md) - 创建空白 PPT
|
|
217
|
+
- [slides +xml-get](lark-slides-xml-presentations-get.md) - 读取 PPT 内容并保存到本地文件
|
|
218
|
+
- [xml_presentation.slide delete](lark-slides-xml-presentation-slide-delete.md) - 删除幻灯片页面
|
|
219
|
+
- [xml-schema-quick-ref.md](xml-schema-quick-ref.md) - XML Schema 快速参考
|
|
@@ -64,11 +64,11 @@ lark-cli slides xml_presentation.slide delete --as user --params '{"xml_presenta
|
|
|
64
64
|
|
|
65
65
|
```json
|
|
66
66
|
{
|
|
67
|
-
"
|
|
68
|
-
"identity": "user",
|
|
67
|
+
"code": 0,
|
|
69
68
|
"data": {
|
|
70
69
|
"revision_id": 100
|
|
71
|
-
}
|
|
70
|
+
},
|
|
71
|
+
"msg": "success"
|
|
72
72
|
}
|
|
73
73
|
```
|
|
74
74
|
|
|
@@ -121,5 +121,6 @@ done
|
|
|
121
121
|
|
|
122
122
|
## 相关命令
|
|
123
123
|
|
|
124
|
-
- [slides +create](lark-slides-create.md) -
|
|
125
|
-
- [slides +xml-get](lark-slides-xml-get.md) - 读取 PPT 内容并保存到本地文件
|
|
124
|
+
- [slides +create](lark-slides-create.md) - 创建空白 PPT
|
|
125
|
+
- [slides +xml-get](lark-slides-xml-presentations-get.md) - 读取 PPT 内容并保存到本地文件
|
|
126
|
+
- [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
|
|
@@ -94,7 +94,7 @@ lark-cli slides xml_presentation.slide get --as user --params '{
|
|
|
94
94
|
## 注意事项
|
|
95
95
|
|
|
96
96
|
1. **执行前必做**:`lark-cli schema slides.xml_presentation.slide.get` 查看最新参数结构
|
|
97
|
-
2. **block_id 提取**:返回 XML 里每个顶层块(shape、img、table、chart
|
|
97
|
+
2. **block_id 提取**:返回 XML 里每个顶层块(shape、img、table、chart 等)的 `id` 属性即为 `block_id`,通常是 3 字符短码,例如 `<shape id="bUn" ...>`。用以下命令列出当前页所有 block_id:
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
lark-cli slides xml_presentation.slide get --as user \
|
|
@@ -106,5 +106,5 @@ lark-cli slides xml_presentation.slide get --as user --params '{
|
|
|
106
106
|
|
|
107
107
|
- [slides +replace-slide](lark-slides-replace-slide.md) — 块级替换 shortcut(推荐)
|
|
108
108
|
- [xml_presentation.slide replace](lark-slides-xml-presentation-slide-replace.md) — 底层 replace API 参考
|
|
109
|
-
- [slides +xml-get](lark-slides-xml-get.md) — 读整个 PPT 并保存到本地文件
|
|
109
|
+
- [slides +xml-get](lark-slides-xml-presentations-get.md) — 读整个 PPT 并保存到本地文件
|
|
110
110
|
- [lark-slides-edit-workflows.md](lark-slides-edit-workflows.md) — 读-改-写闭环
|
|
@@ -173,13 +173,12 @@ lark-cli slides xml_presentation.slide replace --as user --params '{
|
|
|
173
173
|
## 注意事项
|
|
174
174
|
|
|
175
175
|
1. **parts 原子事务**:任一条失败整批回滚,不会出现"前几条成功、后几条失败"的中间态。
|
|
176
|
-
2. **block_id 的获取**:`slide.get` 返回的 XML 里每个块(shape、img、table、chart
|
|
176
|
+
2. **block_id 的获取**:`slide.get` 返回的 XML 里每个块(shape、img、table、chart 等)会带 3 位 short element ID,用这个值填 `block_id` / `insert_before_block_id`。
|
|
177
177
|
3. **`<img>` 必须用 file_token**:不能用外链 URL——先 [`slides +media-upload`](lark-slides-media-upload.md) 拿 token。
|
|
178
178
|
4. **不能字段级 patch**:要改一个块的某个属性(比如只改 `topLeftX`),得写整块新 XML 走 `block_replace`;API 不支持"只改一个字段"。
|
|
179
179
|
5. **`block_replace` 要求 `replacement` 根元素带 `id="<block_id>"`**:底层 API 的硬约束,缺失会返回 3350001。推荐走 shortcut [`+replace-slide`](lark-slides-replace-slide.md)——它会自动把 `id` 注入到 `replacement` 根元素上,用户写 XML 时不用自己加。
|
|
180
180
|
6. **`<shape>` 必须有 `<content/>` 子元素**:SML 2.0 schema 要求,缺失同样触发 3350001。shortcut [`+replace-slide`](lark-slides-replace-slide.md) 会自动注入 `<content/>`,直接调底层 API 需要自己加。
|
|
181
|
-
7.
|
|
182
|
-
8. **执行前必做**:`lark-cli schema slides.xml_presentation.slide.replace` 查看最新参数结构。
|
|
181
|
+
7. **执行前必做**:`lark-cli schema slides.xml_presentation.slide.replace` 查看最新参数结构。
|
|
183
182
|
|
|
184
183
|
## 相关命令
|
|
185
184
|
|
|
@@ -4,13 +4,66 @@
|
|
|
4
4
|
|
|
5
5
|
读取飞书幻灯片(PPT)演示文稿的完整 XML 内容信息。
|
|
6
6
|
|
|
7
|
+
## Shortcut
|
|
8
|
+
|
|
9
|
+
使用 `slides +xml-get` shortcut,可以把 XML 保存到本地文件,避免终端输出被截断。
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
lark-cli slides +xml-get --as user \
|
|
14
|
+
--presentation "slides_example_presentation_id" \
|
|
15
|
+
--output .lark-slides/plan/slides_example_presentation_id/readback.xml \
|
|
16
|
+
--json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 参数说明
|
|
20
|
+
|
|
21
|
+
| 参数 | 类型 | 必需 | 说明 |
|
|
22
|
+
|------|------|------|------|
|
|
23
|
+
| `--presentation` | string | 是 | 演示文稿的唯一标识符 |
|
|
24
|
+
| `--revision-id` | integer | 否 | 版本号,`-1` 表示最新版本 |
|
|
25
|
+
| `--output` | string | 是 | 本地文件,必须使用相对路径 |
|
|
26
|
+
| `--remove-attr-id` | flag | 否 | 移除 XML id 属性后读取 |
|
|
27
|
+
| `--json` | flag | 是 | 必须按照 json 格式输出 |
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### 基础示例
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
lark-cli slides +xml-get --as user \
|
|
34
|
+
--presentation "slides_example_presentation_id" \
|
|
35
|
+
--output .lark-slides/plan/slides_example_presentation_id/readback.xml \
|
|
36
|
+
--json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 指定版本读取
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
lark-cli slides +xml-get --as user \
|
|
43
|
+
--presentation "slides_example_presentation_id" \
|
|
44
|
+
--revision-id 10 \
|
|
45
|
+
--output .lark-slides/plan/slides_example_presentation_id/readback-r10.xml \
|
|
46
|
+
--json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 移除 XML id 属性后读取
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
lark-cli slides +xml-get --as user \
|
|
53
|
+
--presentation "slides_example_presentation_id" \
|
|
54
|
+
--remove-attr-id \
|
|
55
|
+
--output .lark-slides/plan/slides_example_presentation_id/readback-no-id.xml \
|
|
56
|
+
--json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
7
60
|
## 底层原生命令形态
|
|
8
61
|
|
|
9
62
|
```bash
|
|
10
63
|
lark-cli slides xml_presentations get --as user --params '<json_params>'
|
|
11
64
|
```
|
|
12
65
|
|
|
13
|
-
|
|
66
|
+
### 参数说明
|
|
14
67
|
|
|
15
68
|
| 参数 | 类型 | 必需 | 说明 |
|
|
16
69
|
|------|------|------|------|
|
|
@@ -30,30 +83,8 @@ lark-cli slides xml_presentations get --as user --params '<json_params>'
|
|
|
30
83
|
| `xml_presentation_id` | string | 是 | 演示文稿的唯一标识符 |
|
|
31
84
|
| `revision_id` | integer | 否 | 版本号,`-1` 表示最新版本 |
|
|
32
85
|
|
|
33
|
-
## 使用示例
|
|
34
86
|
|
|
35
|
-
###
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
lark-cli slides xml_presentations get --as user \
|
|
39
|
-
--params '{"xml_presentation_id":"slides_example_presentation_id","revision_id":-1}'
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 指定版本读取
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
lark-cli slides xml_presentations get --as user \
|
|
46
|
-
--params '{"xml_presentation_id":"slides_example_presentation_id","revision_id":10}'
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 移除 XML id 属性后读取
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
lark-cli slides xml_presentations get --as user \
|
|
53
|
-
--params '{"xml_presentation_id":"slides_example_presentation_id","revision_id":-1,"remove_attr_id":true}'
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## 返回值
|
|
87
|
+
### 返回值
|
|
57
88
|
|
|
58
89
|
成功时返回演示文稿的完整信息:
|
|
59
90
|
|
|
@@ -79,7 +110,7 @@ lark-cli slides xml_presentations get --as user \
|
|
|
79
110
|
| `data.xml_presentation.revision_id` | integer | 版本号 |
|
|
80
111
|
| `data.xml_presentation.content` | string | XML 格式的完整内容 |
|
|
81
112
|
|
|
82
|
-
|
|
113
|
+
### 常见错误
|
|
83
114
|
|
|
84
115
|
| 错误码 | 含义 | 解决方案 |
|
|
85
116
|
|--------|------|----------|
|
|
@@ -87,13 +118,17 @@ lark-cli slides xml_presentations get --as user \
|
|
|
87
118
|
| 403 | 权限不足 | 检查是否拥有 `slides:presentation:read` scope,或是否有访问权限 |
|
|
88
119
|
| 400 | 参数格式错误 | 确保 `--params` 是合法的 JSON 字符串 |
|
|
89
120
|
|
|
90
|
-
## 注意事项
|
|
91
121
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
122
|
+
### 注意事项
|
|
123
|
+
|
|
124
|
+
1. lark-slides 工作流默认使用 `slides +xml-get`;只有必须直接调底层 API 时,才使用
|
|
125
|
+
2. 直接调用底层 API 前,使用 `lark-cli schema slides.xml_presentations.get` 查看最新的参数结构
|
|
126
|
+
3. 返回的 XML 在 `data.xml_presentation.content` 字段中
|
|
127
|
+
4. 如果只需要部分信息,可以使用 `jq` 等工具过滤返回结果
|
|
128
|
+
5. 不要在普通工作流中把完整 XML 打到终端;用 `slides +xml-get --output` 保存文件
|
|
95
129
|
|
|
96
130
|
## 相关命令
|
|
97
131
|
|
|
98
|
-
- [slides +create](lark-slides-create.md) -
|
|
132
|
+
- [slides +create](lark-slides-create.md) - 创建空白 PPT
|
|
133
|
+
- [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
|
|
99
134
|
- [xml_presentation.slide delete](lark-slides-xml-presentation-slide-delete.md) - 删除幻灯片页面
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
4. 写入 `.lark-slides/plan/<deck-or-task-id>/slide_plan.json`。
|
|
13
13
|
5. 读取 `xml-schema-quick-ref.md`、`visual-planning.md` 和 `asset-planning.md`。
|
|
14
14
|
6. 按 plan、visual planning 和 asset planning 规则逐页生成 XML,把 `layout_type`、`visual_focus`、`text_density` 转成具体页面几何和文本量约束,并把缺失素材转成可执行兜底视觉。
|
|
15
|
-
7. 创建 PPT 后用 `slides +xml-get` 回读,核对页面数量、关键元素和 plan 到 XML
|
|
15
|
+
7. 创建 PPT 后用 `slides +xml-get` 回读,核对页面数量、关键元素和 plan 到 XML 的对应关系,空白 PPT 中没有 slide 元素。
|
|
16
|
+
|
|
16
17
|
|
|
17
18
|
## Plan Path
|
|
18
19
|
|
|
@@ -57,7 +58,7 @@ Exception:
|
|
|
57
58
|
"theme_style": "Clean business style, light background, restrained blue accent, strong visual hierarchy.",
|
|
58
59
|
"visual_system": {
|
|
59
60
|
"background_strategy": "Content pages use one light base; cover and closing may use a related dark treatment with the same accent system.",
|
|
60
|
-
"motif": "
|
|
61
|
+
"motif": "Consistent card style and numbered anchors.",
|
|
61
62
|
"color_roles": {
|
|
62
63
|
"primary": "Used for the dominant structural motif and about 60-70% of visual weight.",
|
|
63
64
|
"secondary": "Used for grouped regions, comparison panels, or supporting categories.",
|
|
@@ -87,7 +88,7 @@ Exception:
|
|
|
87
88
|
"asset_type": "logo",
|
|
88
89
|
"purpose": "Signal product or team identity on the opening page.",
|
|
89
90
|
"suggested_query": "product logo",
|
|
90
|
-
"fallback_if_missing": "
|
|
91
|
+
"fallback_if_missing": "Create a close-enough image with the image generation tool instead of a real logo."
|
|
91
92
|
},
|
|
92
93
|
"text_density": "low",
|
|
93
94
|
"speaker_intent": "Frame the decision and establish the deck's point of view."
|
|
@@ -137,7 +138,7 @@ Optional slide fields:
|
|
|
137
138
|
}
|
|
138
139
|
```
|
|
139
140
|
|
|
140
|
-
When `chart_contract.required == true`, XML generation must produce a `<chart>` element on that slide. A shape, line,
|
|
141
|
+
When `chart_contract.required == true`, XML generation must produce a `<chart>` element on that slide. A shape, line, or polyline approximation does not satisfy the plan.
|
|
141
142
|
|
|
142
143
|
`data_source` must be one of:
|
|
143
144
|
|
|
@@ -181,7 +182,7 @@ Text density must be realistic for the planned geometry. If a page needs long ti
|
|
|
181
182
|
Before generating XML, define a visual system that can survive the whole deck:
|
|
182
183
|
|
|
183
184
|
- `background_strategy`: specify the default background for normal content pages, and which page roles may intentionally differ. Do not let pages drift through near-identical but inconsistent background colors.
|
|
184
|
-
- `motif`: choose one
|
|
185
|
+
- `motif`: choose one reusable structural device, such as numbered node, card treatment, half-bleed image zone, headline, or footer. The motif should appear consistently enough that pages feel related.
|
|
185
186
|
- `color_roles`: assign primary, secondary, and accent roles. The same color must not mean unrelated things across pages.
|
|
186
187
|
- `cover_content_relationship`: if the cover uses a different dark or image-led treatment, state how it connects to content pages through shared colors, motifs, or geometry.
|
|
187
188
|
- `closing_relationship`: if the closing page mirrors the cover, state that explicitly so it looks intentional rather than like a new theme.
|
|
@@ -203,22 +204,22 @@ Do not hard-code a page number just because a previous deck used that pattern. P
|
|
|
203
204
|
|
|
204
205
|
## Asset Planning
|
|
205
206
|
|
|
206
|
-
`asset_need` is metadata. It can describe a desired figure, diagram, chart, icon, logo, screenshot, or fallback
|
|
207
|
+
`asset_need` is metadata. It can describe a desired figure, diagram, chart, icon, logo, screenshot, or fallback visual.
|
|
207
208
|
|
|
208
209
|
Use an object for one planned asset, an array for multiple real needs, or `asset_type: "none"` when no asset is useful. Each planned asset must include:
|
|
209
210
|
|
|
210
211
|
- `asset_type`: one of `paper_figure`, `architecture_diagram`, `icon`, `logo`, `chart`, `infographic`, `screenshot`, `flow_diagram`, or `none`.
|
|
211
212
|
- `purpose`: why this asset helps the page's key message.
|
|
212
213
|
- `suggested_query`: short future lookup hint only; do not execute it unless separately requested.
|
|
213
|
-
- `fallback_if_missing`:
|
|
214
|
+
- `fallback_if_missing`: a plan to create a close-enough image with the image generation tool, or a native `<chart>` for data.
|
|
214
215
|
- `chart_contract`: when `asset_type` is `chart` and the visual is a supported standard data chart, set this optional slide-level field so generation is locked to native `<chart>`.
|
|
215
216
|
|
|
216
217
|
For detailed rules and examples, read `asset-planning.md`.
|
|
217
218
|
|
|
218
219
|
Good examples:
|
|
219
220
|
|
|
220
|
-
- `{"asset_type":"architecture_diagram","purpose":"Explain component relationships.","suggested_query":"service architecture diagram","fallback_if_missing":"
|
|
221
|
-
- `{"asset_type":"logo","purpose":"Identify the customer context.","suggested_query":"customer logo","fallback_if_missing":"
|
|
221
|
+
- `{"asset_type":"architecture_diagram","purpose":"Explain component relationships.","suggested_query":"service architecture diagram","fallback_if_missing":"Render the component diagram with <shape> + <line>."}`
|
|
222
|
+
- `{"asset_type":"logo","purpose":"Identify the customer context.","suggested_query":"customer logo","fallback_if_missing":"Create a close-enough image with the image generation tool instead of a real logo."}`
|
|
222
223
|
- `{"asset_type":"chart","purpose":"Show adoption trend.","suggested_query":"monthly adoption trend chart","fallback_if_missing":"Render a native `<chart>` using the provided series when available; otherwise render a native `<chart>` with mock placeholder values and label it as 模拟数据,仅占位,待替换真实数据."}`
|
|
223
224
|
|
|
224
225
|
## XML Generation Contract
|
|
@@ -229,7 +230,7 @@ Before writing each slide XML, map the plan fields to concrete decisions:
|
|
|
229
230
|
- `layout_type` determines the coordinate structure and element types. Use `visual-planning.md` for concrete layout rules.
|
|
230
231
|
- `visual_focus` determines the largest visual region or emphasized object.
|
|
231
232
|
- `text_density` caps visible text volume.
|
|
232
|
-
- `asset_need` informs placeholder diagrams, icons, charts, screenshots, or
|
|
233
|
+
- `asset_need` informs placeholder diagrams, icons, charts, screenshots, or fallback visuals only. Missing real assets must use `fallback_if_missing`, not blank regions.
|
|
233
234
|
- `chart_contract` locks supported standard data charts to native `<chart>` output. Manual approximations are allowed only when the planned chart type is unsupported by `<chart>` or when the visual is explicitly non-data/decorative.
|
|
234
235
|
|
|
235
236
|
After creating the PPT, fetch the presentation and verify:
|