@amaster.ai/pi-lark 0.1.2-beta.41 → 0.1.2-beta.43
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 +3 -3
- package/skills/lark-apps/SKILL.md +18 -10
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
- package/skills/lark-apps/references/lark-apps-automation.md +164 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +185 -1
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +7 -2
- package/skills/lark-apps/references/lark-apps-init.md +1 -2
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +3 -1
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-base/SKILL.md +2 -2
- package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
- package/skills/lark-base/references/lark-base-cell-value.md +9 -4
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
- package/skills/lark-base/references/lark-base-dashboard.md +11 -2
- package/skills/lark-base/references/lark-base-data-query.md +9 -7
- package/skills/lark-base/references/lark-base-field-create.md +4 -2
- package/skills/lark-base/references/lark-base-field-json.md +52 -15
- package/skills/lark-base/references/lark-base-field-update.md +4 -2
- package/skills/lark-calendar/references/lark-calendar-create.md +1 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +2 -1
- package/skills/lark-drive/SKILL.md +14 -6
- package/skills/lark-drive/references/lark-drive-comment-location.md +16 -4
- package/skills/lark-drive/references/lark-drive-comments-guide.md +16 -8
- package/skills/lark-drive/references/lark-drive-delete.md +23 -11
- package/skills/lark-drive/references/lark-drive-export.md +39 -10
- package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +1 -1
- package/skills/lark-drive/references/lark-drive-move.md +5 -3
- package/skills/lark-drive/references/lark-drive-pull.md +3 -3
- package/skills/lark-drive/references/lark-drive-push.md +1 -1
- package/skills/lark-drive/references/lark-drive-status.md +12 -14
- package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
- package/skills/lark-im/SKILL.md +5 -4
- package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
- package/skills/lark-im/references/lark-im-messages-send.md +1 -1
- package/skills/lark-minutes/SKILL.md +19 -4
- package/skills/lark-minutes/references/lark-minutes-todo.md +2 -2
- package/skills/lark-shared/SKILL.md +9 -9
- package/skills/lark-sheets/SKILL.md +98 -29
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
- package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
- package/skills/lark-slides/SKILL.md +29 -18
- package/skills/lark-slides/references/asset-planning.md +0 -1
- package/skills/lark-slides/references/examples.md +57 -227
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-create.md +21 -2
- package/skills/lark-slides/references/lark-slides-media-upload.md +0 -1
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
- package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -1
- package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
- package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +9 -7
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +4 -4
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +12 -10
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +14 -13
- package/skills/lark-slides/references/planning-layer.md +1 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +7 -2
- package/skills/lark-slides/references/troubleshooting.md +7 -25
- package/skills/lark-slides/references/validation-checklist.md +18 -9
- package/skills/lark-slides/references/visual-planning.md +4 -3
- package/skills/lark-slides/references/xml-format-guide.md +20 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +6 -2
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +647 -52
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +529 -0
- package/skills/lark-task/SKILL.md +1 -0
- package/skills/lark-vc-agent/SKILL.md +11 -4
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +1 -1
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +2 -2
- package/skills/lark-wiki/SKILL.md +4 -2
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +0 -220
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
获取幻灯片页面截图并保存为本地图片文件。默认用于已存在 PPT 页面截图;传入 `--content` 时用于直接渲染单个 `<slide>` XML 片段预览。本 shortcut 会在 CLI 进程内解码并写入文件,stdout 只返回文件路径、大小、页面 ID 等元信息,避免把图片 Base64 输出给模型。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
注意:该截图能力受应用白名单限制,绝大多数应用不可用。若截图失败,记录错误即可;不要引导用户申请 `slides:presentation:screenshot` 权限。后续按 `validation-checklist.md` 走非截图验证,不要声称已完成截图验收。
|
|
8
8
|
|
|
9
9
|
## 命令
|
|
10
10
|
|
|
@@ -26,8 +26,8 @@ lark-cli slides +screenshot --as user \
|
|
|
26
26
|
| 参数 | 必需 | 说明 |
|
|
27
27
|
|------|------|------|
|
|
28
28
|
| `--presentation` | list 模式必需 | `xml_presentation_id`、`/slides/` URL,或解析后为 slides 的 `/wiki/` URL。传 `--content` 时不能使用 |
|
|
29
|
-
| `--slide-id` | list 模式至少提供 `--slide-id` / `--slide-number` 之一 | 页面 short ID
|
|
30
|
-
| `--slide-number` | list 模式至少提供 `--slide-id` / `--slide-number` 之一 |
|
|
29
|
+
| `--slide-id` | list 模式至少提供 `--slide-id` / `--slide-number` 之一 | 页面 short ID;多页截图时重复传入;一次最多 10 页(`--slide-id` + `--slide-number` 合计小于等于 10) |
|
|
30
|
+
| `--slide-number` | list 模式至少提供 `--slide-id` / `--slide-number` 之一 | 页面页号;多页截图时重复传入;一次最多 10 页(`--slide-id` + `--slide-number` 合计小于等于 10) |
|
|
31
31
|
| `--content` | render 模式必需 | 要直接渲染的 `<slide>` XML 片段;支持直接传值、`@file`、`-` stdin。传入后不能同时传 `--slide-id` / `--slide-number` |
|
|
32
32
|
| `--output-dir` | 否 | 输出目录,默认 `.lark-slides/screenshots`;必须是当前目录内的相对路径 |
|
|
33
33
|
| `--output-name` | 否 | render 模式的输出文件名 stem;未指定时优先用返回的 `slide_id`,否则用 `rendered-slide`。若目标文件已存在,会自动追加递增后缀避免覆盖 |
|
|
@@ -44,6 +44,8 @@ lark-cli slides +screenshot --as user \
|
|
|
44
44
|
|
|
45
45
|
### 多页截图
|
|
46
46
|
|
|
47
|
+
一次不要超过 10 页;如需更多页面,分批调用。
|
|
48
|
+
|
|
47
49
|
```bash
|
|
48
50
|
lark-cli slides +screenshot --as user \
|
|
49
51
|
--presentation slides_example_presentation_id \
|
|
@@ -66,7 +68,8 @@ lark-cli slides +screenshot --as user \
|
|
|
66
68
|
|
|
67
69
|
```json
|
|
68
70
|
{
|
|
69
|
-
"
|
|
71
|
+
"ok": true,
|
|
72
|
+
"identity": "user",
|
|
70
73
|
"data": {
|
|
71
74
|
"xml_presentation_id": "slides_example_presentation_id",
|
|
72
75
|
"output_dir": ".lark-slides/screenshots",
|
|
@@ -79,8 +82,7 @@ lark-cli slides +screenshot --as user \
|
|
|
79
82
|
"size": 12345
|
|
80
83
|
}
|
|
81
84
|
]
|
|
82
|
-
}
|
|
83
|
-
"msg": "success"
|
|
85
|
+
}
|
|
84
86
|
}
|
|
85
87
|
```
|
|
86
88
|
|
|
@@ -90,5 +92,6 @@ lark-cli slides +screenshot --as user \
|
|
|
90
92
|
2. 已存在 PPT 页面截图时,不传 `--content`,用 `--presentation` + `--slide-id` 或 `--slide-number`。
|
|
91
93
|
3. 本地 XML 预览时,传 `--content @file` 或 `--content -`,内容应为单个 `<slide>` XML 片段;此时不要传 `--presentation` / `--slide-id` / `--slide-number`。
|
|
92
94
|
4. `slide_id` 是页面 short ID,页码请用 `--slide-number`。
|
|
93
|
-
5. list
|
|
94
|
-
6.
|
|
95
|
+
5. list 模式一次最多传 10 页(`--slide-id` + `--slide-number` 合计小于等于 10);更多页面请分批截图。
|
|
96
|
+
6. list 模式默认文件名包含 presentation ID、页码和/或 slide ID;文件已存在时自动追加 `_2`、`_3` 等后缀,避免覆盖旧截图。
|
|
97
|
+
7. 截图来自服务端渲染结果,适合创建/替换后验证页面是否为空白、破图或布局明显异常。
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# slides +xml-get(读取 XML)
|
|
2
|
+
|
|
3
|
+
读取已有演示文稿的完整 XML,或按 `slide_id` / 页码读取单页 XML。适合创建后验收、编辑前备份、获取 `slide_id` / `revision_id`,以及排查空白页、破图、文本溢出等问题。相比直接调用底层 `xml_presentations.get` / `xml_presentation.slide.get`,本 shortcut 会自动解析 Slides URL / Wiki URL,并可把 XML 保存到本地文件,避免终端输出被截断。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
lark-cli slides +xml-get \
|
|
10
|
+
--as user \
|
|
11
|
+
--presentation <slides_url_or_xml_presentation_id> \
|
|
12
|
+
--output .lark-slides/plan/<deck-id>/readback.xml
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 参数
|
|
16
|
+
|
|
17
|
+
| 参数 | 必需 | 说明 |
|
|
18
|
+
|------|------|------|
|
|
19
|
+
| `--presentation` | 是 | `xml_presentation_id`、`/slides/` URL 或 `/wiki/` URL |
|
|
20
|
+
| `--output` | 否 | 本地 XML 保存路径,必须是当前工作目录内的相对路径,不能传绝对路径。传入时 XML 内容保存到文件,stdout 只返回保存后的绝对路径、大小等简短元信息;省略时默认返回 JSON envelope |
|
|
21
|
+
| `--slide-id` | 否 | 页面 short ID;传入后只读取该页 XML。不能和 `--slide-number` 同时使用 |
|
|
22
|
+
| `--slide-number` | 否 | 1-based 页码;传入后只读取该页 XML。不能和 `--slide-id` 同时使用 |
|
|
23
|
+
| `--revision-id` | 否 | 读取指定版本;默认 `-1`,表示最新版本 |
|
|
24
|
+
| `--remove-attr-id` | 否 | 仅全文读取可用。移除返回 XML 中的 `id` 属性;适合只读检查,不适合精确块级编辑 |
|
|
25
|
+
| `--raw` | 否 | 省略 `--output` 时直接把 XML 原文写到 stdout,不包 JSON envelope。不能和 `--output` / `--jq` / 非 json `--format` 同时使用 |
|
|
26
|
+
| `--dry-run` | 否 | 预览将调用的 API 和输出方式,不读取真实 XML |
|
|
27
|
+
|
|
28
|
+
## 输出到文件
|
|
29
|
+
|
|
30
|
+
推荐普通工作流都传 `--output`,尤其是中大型 PPT。`--output` 必须是当前工作目录内的相对路径,例如 `.lark-slides/plan/$PID/readback.xml`,不要传 `/tmp/readback.xml` 这类绝对路径。XML 会写入本地文件,stdout 只保留元信息,便于后续脚本读取。
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
lark-cli slides +xml-get --as user \
|
|
34
|
+
--presentation "$PID" \
|
|
35
|
+
--output .lark-slides/plan/$PID/readback.xml
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
成功输出中的 `data` 类似:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"xml_presentation_id": "slides_example_presentation_id",
|
|
43
|
+
"path": "/abs/path/.lark-slides/plan/slides_example_presentation_id/readback.xml",
|
|
44
|
+
"size": 123456,
|
|
45
|
+
"content_saved": true,
|
|
46
|
+
"revision_id": 12
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
其中 `path` 是 CLI 解析后的绝对路径。
|
|
51
|
+
|
|
52
|
+
如果传入 `--remove-attr-id`,返回元信息中会包含 `"remove_attr_id": true`。
|
|
53
|
+
|
|
54
|
+
## 读取单页
|
|
55
|
+
|
|
56
|
+
已知页面 short ID 时,用 `--slide-id`:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
lark-cli slides +xml-get --as user \
|
|
60
|
+
--presentation "$PID" \
|
|
61
|
+
--slide-id "$SID" \
|
|
62
|
+
--output .lark-slides/plan/$PID/slide-$SID.xml
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
已知页码时,用 `--slide-number`(页码从 1 开始):
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
lark-cli slides +xml-get --as user \
|
|
69
|
+
--presentation "$PID" \
|
|
70
|
+
--slide-number 2 \
|
|
71
|
+
--output .lark-slides/plan/$PID/slide-2.xml
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
单页模式底层调用 `xml_presentation.slide.get`,返回或保存的是单个 `<slide>` XML 片段。`--slide-id` 和 `--slide-number` 不能同时传;`--remove-attr-id` 只支持全文读取。
|
|
75
|
+
|
|
76
|
+
## 输出到终端
|
|
77
|
+
|
|
78
|
+
省略 `--output` 时,CLI 默认输出 JSON envelope,XML 位于 `data.xml_presentation.content`(全文)或 `data.slide.content`(单页)。这个模式适合配合 `--jq` 临时提取:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
lark-cli slides +xml-get --as user \
|
|
82
|
+
--presentation "$PID" \
|
|
83
|
+
--jq '.data.xml_presentation.content'
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
需要把 XML 原文直接写到 stdout 时,加 `--raw`:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
lark-cli slides +xml-get --as user \
|
|
90
|
+
--presentation "$PID" \
|
|
91
|
+
--slide-number 2 \
|
|
92
|
+
--raw
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 相关命令
|
|
96
|
+
|
|
97
|
+
- [slides +screenshot](lark-slides-screenshot.md) - 获取页面截图做视觉验证
|
|
98
|
+
- [slides +replace-slide](lark-slides-replace-slide.md) - 局部替换或插入页面元素
|
|
99
|
+
- [slides +replace-pages](lark-slides-replace-pages.md) - 多页整页重建
|
|
100
|
+
- [xml_presentations get](lark-slides-xml-presentations-get.md) - 底层原生 API 参考
|
|
@@ -49,7 +49,10 @@ lark-cli slides xml_presentation.slide delete --as user --params '{
|
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
# 先读取 XML 内容,确认待删除页面
|
|
52
|
-
lark-cli slides
|
|
52
|
+
lark-cli slides +xml-get --as user \
|
|
53
|
+
--presentation "slides_example_presentation_id" \
|
|
54
|
+
--output .lark-slides/plan/slides_example_presentation_id/readback.xml \
|
|
55
|
+
--json
|
|
53
56
|
|
|
54
57
|
# 然后按已知 slide_id 删除
|
|
55
58
|
lark-cli slides xml_presentation.slide delete --as user --params '{"xml_presentation_id":"slides_example_presentation_id","slide_id":"slide_example_id"}'
|
|
@@ -61,11 +64,11 @@ lark-cli slides xml_presentation.slide delete --as user --params '{"xml_presenta
|
|
|
61
64
|
|
|
62
65
|
```json
|
|
63
66
|
{
|
|
64
|
-
"
|
|
67
|
+
"ok": true,
|
|
68
|
+
"identity": "user",
|
|
65
69
|
"data": {
|
|
66
70
|
"revision_id": 100
|
|
67
|
-
}
|
|
68
|
-
"msg": "success"
|
|
71
|
+
}
|
|
69
72
|
}
|
|
70
73
|
```
|
|
71
74
|
|
|
@@ -118,6 +121,5 @@ done
|
|
|
118
121
|
|
|
119
122
|
## 相关命令
|
|
120
123
|
|
|
121
|
-
- [slides +create](lark-slides-create.md) -
|
|
122
|
-
- [
|
|
123
|
-
- [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
|
|
124
|
+
- [slides +create](lark-slides-create.md) - 创建 PPT / 添加幻灯片页面
|
|
125
|
+
- [slides +xml-get](lark-slides-xml-get.md) - 读取 PPT 内容并保存到本地文件
|
|
@@ -65,15 +65,15 @@ lark-cli slides xml_presentation.slide get --as user --params '{
|
|
|
65
65
|
|
|
66
66
|
```json
|
|
67
67
|
{
|
|
68
|
-
"
|
|
68
|
+
"ok": true,
|
|
69
|
+
"identity": "user",
|
|
69
70
|
"data": {
|
|
70
71
|
"slide": {
|
|
71
72
|
"slide_id": "slide_example_id",
|
|
72
73
|
"content": "<slide id=\"slide_example_id\"><style/><data>...</data></slide>"
|
|
73
74
|
},
|
|
74
75
|
"revision_id": 100
|
|
75
|
-
}
|
|
76
|
-
"msg": "success"
|
|
76
|
+
}
|
|
77
77
|
}
|
|
78
78
|
```
|
|
79
79
|
|
|
@@ -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
|
-
- [
|
|
109
|
+
- [slides +xml-get](lark-slides-xml-get.md) — 读整个 PPT 并保存到本地文件
|
|
110
110
|
- [lark-slides-edit-workflows.md](lark-slides-edit-workflows.md) — 读-改-写闭环
|
|
@@ -130,24 +130,28 @@ lark-cli slides xml_presentation.slide replace --as user --params '{
|
|
|
130
130
|
|
|
131
131
|
```json
|
|
132
132
|
{
|
|
133
|
-
"
|
|
133
|
+
"ok": true,
|
|
134
|
+
"identity": "user",
|
|
134
135
|
"data": {
|
|
135
136
|
"revision_id": 105
|
|
136
|
-
}
|
|
137
|
-
"msg": "success"
|
|
137
|
+
}
|
|
138
138
|
}
|
|
139
139
|
```
|
|
140
140
|
|
|
141
141
|
### 失败(任一 part 失败,整批不生效)
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
失败时命令以非零退出码结束,stderr 返回类型化错误信封(`error.code`(如 3350001)/ `error.message` / `error.hint`),stdout 不会打印后端原始响应:
|
|
144
144
|
|
|
145
145
|
```json
|
|
146
146
|
{
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
"
|
|
147
|
+
"ok": false,
|
|
148
|
+
"identity": "user",
|
|
149
|
+
"error": {
|
|
150
|
+
"type": "api",
|
|
151
|
+
"subtype": "...",
|
|
152
|
+
"code": 3350001,
|
|
153
|
+
"message": "...",
|
|
154
|
+
"hint": "..."
|
|
151
155
|
}
|
|
152
156
|
}
|
|
153
157
|
```
|
|
@@ -155,8 +159,6 @@ lark-cli slides xml_presentation.slide replace --as user --params '{
|
|
|
155
159
|
| 字段 | 类型 | 说明 |
|
|
156
160
|
|------|------|------|
|
|
157
161
|
| `data.revision_id` | integer | 成功时返回更新后最新版本号 |
|
|
158
|
-
| `data.failed_part_index` | integer | 失败的 part 在 `parts` 数组中的索引(从 0 起) |
|
|
159
|
-
| `data.failed_reason` | string | 失败原因 |
|
|
160
162
|
|
|
161
163
|
## 常见错误
|
|
162
164
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
读取飞书幻灯片(PPT)演示文稿的完整 XML 内容信息。
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 底层原生命令形态
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
lark-cli slides xml_presentations get --as user --params '<json_params>'
|
|
@@ -35,19 +35,22 @@ lark-cli slides xml_presentations get --as user --params '<json_params>'
|
|
|
35
35
|
### 基础示例
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
lark-cli slides xml_presentations get --as user
|
|
38
|
+
lark-cli slides xml_presentations get --as user \
|
|
39
|
+
--params '{"xml_presentation_id":"slides_example_presentation_id","revision_id":-1}'
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
###
|
|
42
|
+
### 指定版本读取
|
|
42
43
|
|
|
43
44
|
```bash
|
|
44
|
-
lark-cli slides xml_presentations get --as user
|
|
45
|
+
lark-cli slides xml_presentations get --as user \
|
|
46
|
+
--params '{"xml_presentation_id":"slides_example_presentation_id","revision_id":10}'
|
|
45
47
|
```
|
|
46
48
|
|
|
47
|
-
###
|
|
49
|
+
### 移除 XML id 属性后读取
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
lark-cli slides xml_presentations get --as user
|
|
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}'
|
|
51
54
|
```
|
|
52
55
|
|
|
53
56
|
## 返回值
|
|
@@ -56,15 +59,15 @@ lark-cli slides xml_presentations get --as user --params '{"xml_presentation_id"
|
|
|
56
59
|
|
|
57
60
|
```json
|
|
58
61
|
{
|
|
59
|
-
"
|
|
62
|
+
"ok": true,
|
|
63
|
+
"identity": "user",
|
|
60
64
|
"data": {
|
|
61
65
|
"xml_presentation": {
|
|
62
66
|
"presentation_id": "slides_example_presentation_id",
|
|
63
67
|
"revision_id": 1,
|
|
64
68
|
"content": "<presentation xmlns=\"http://www.larkoffice.com/sml/2.0\" height=\"540\" width=\"960\">...</presentation>"
|
|
65
69
|
}
|
|
66
|
-
}
|
|
67
|
-
"msg": "success"
|
|
70
|
+
}
|
|
68
71
|
}
|
|
69
72
|
```
|
|
70
73
|
|
|
@@ -86,13 +89,11 @@ lark-cli slides xml_presentations get --as user --params '{"xml_presentation_id"
|
|
|
86
89
|
|
|
87
90
|
## 注意事项
|
|
88
91
|
|
|
89
|
-
1.
|
|
92
|
+
1. 直接调用底层 API 前,使用 `lark-cli schema slides.xml_presentations.get` 查看最新的参数结构
|
|
90
93
|
2. 返回的 XML 在 `data.xml_presentation.content` 字段中
|
|
91
94
|
3. 如果只需要部分信息,可以使用 `jq` 等工具过滤返回结果
|
|
92
|
-
4. 建议将获取的 XML 保存为文件,便于后续编辑或备份
|
|
93
95
|
|
|
94
96
|
## 相关命令
|
|
95
97
|
|
|
96
|
-
- [slides +create](lark-slides-create.md) -
|
|
97
|
-
- [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
|
|
98
|
+
- [slides +create](lark-slides-create.md) - 创建 PPT / 添加幻灯片页面
|
|
98
99
|
- [xml_presentation.slide delete](lark-slides-xml-presentation-slide-delete.md) - 删除幻灯片页面
|
|
@@ -12,7 +12,7 @@
|
|
|
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 后用 `
|
|
15
|
+
7. 创建 PPT 后用 `slides +xml-get` 回读,核对页面数量、关键元素和 plan 到 XML 的对应关系。
|
|
16
16
|
|
|
17
17
|
## Plan Path
|
|
18
18
|
|
|
@@ -1464,6 +1464,7 @@
|
|
|
1464
1464
|
<xs:annotation>
|
|
1465
1465
|
<xs:documentation>
|
|
1466
1466
|
表格元素, 用于展示结构化数据
|
|
1467
|
+
宽高分配规则参考 HTML table 的整体值 / 子项值处理逻辑, 但在 SXSD 中做确定化约束, 以保证跨端实现一致。
|
|
1467
1468
|
边框规则:
|
|
1468
1469
|
- 后设置优先:相邻单元格线条只有一个颜色, 如果均设置, 则右下单元格的设置覆盖左上单元格
|
|
1469
1470
|
- 不设置边框属性时使用默认样式
|
|
@@ -1476,6 +1477,8 @@
|
|
|
1476
1477
|
- id: 表格唯一标识符(可选)
|
|
1477
1478
|
- topLeftX/topLeftY: 左上角坐标
|
|
1478
1479
|
- flipX/flipY: 水平/垂直翻转
|
|
1480
|
+
- width: 表格目标总宽度(可选)。若设置, 优先用于为未填写列宽的列分配剩余宽度; 当所有列宽均为空时, 所有列均分该值; 当所有列均已填写且该值大于已填写列宽总和时, 多出空间继续分配给现有列, 默认按各列当前宽度作为权重分配; 当已填写列宽之和超过或无法容纳该值时, 保留已填写列宽, 并以最终列宽总和回写 table.width
|
|
1481
|
+
- height: 表格目标总高度(可选)。若设置, 优先用于为未填写行高的行分配剩余高度; 当所有行高均为空时, 所有行均分该值; 当所有行均已填写且该值大于已填写行高总和时, 多出空间继续分配给现有行, 默认按各行当前高度作为权重分配; 当已填写行高之和超过或无法容纳该值时, 保留已填写行高, 并以最终行高总和回写 table.height
|
|
1479
1482
|
table 子元素:
|
|
1480
1483
|
- colgroup: 列组元素, 用于定义列的宽度
|
|
1481
1484
|
- tr: 行元素, 包含多个单元格
|
|
@@ -1484,10 +1487,10 @@
|
|
|
1484
1487
|
- col: 列元素
|
|
1485
1488
|
col 属性:
|
|
1486
1489
|
- span: 列跨数, 默认为1, 可选
|
|
1487
|
-
- width:
|
|
1490
|
+
- width: 列宽度输入值, 默认值为110, 可选。无 table.width 时, 已填写列保持原值, 空列使用默认值; 有 table.width 时, 已填写列保持原值, 空列优先均分剩余宽度; 若不存在空列且 table.width 大于已填写列宽总和, 则多出空间按各列当前宽度作为权重分配到所有列; 若剩余宽度不足则空列回退为默认值, 并以最终列宽总和作为 table.width
|
|
1488
1491
|
|
|
1489
1492
|
tr 属性:
|
|
1490
|
-
- height:
|
|
1493
|
+
- height: 行高输入值, 默认值为37, 可选。无 table.height 时, 已填写行保持原值, 空行使用默认值; 有 table.height 时, 已填写行保持原值, 空行优先均分剩余高度; 若不存在空行且 table.height 大于已填写行高总和, 则多出空间按各行当前高度作为权重分配到所有行; 若剩余高度不足则空行回退为默认值, 并以最终行高总和作为 table.height。若行高低于内容高度, 需要手动修改行高
|
|
1491
1494
|
tr 子元素:
|
|
1492
1495
|
- td: 单元格元素, 用于显示数据
|
|
1493
1496
|
|
|
@@ -1543,6 +1546,8 @@
|
|
|
1543
1546
|
<xs:attribute name="topLeftY" type="sml:YType" use="required"/>
|
|
1544
1547
|
<xs:attribute name="flipX" type="xs:boolean" use="optional" default="false"/>
|
|
1545
1548
|
<xs:attribute name="flipY" type="xs:boolean" use="optional" default="false"/>
|
|
1549
|
+
<xs:attribute name="width" type="sml:PositiveSize" use="optional"/>
|
|
1550
|
+
<xs:attribute name="height" type="sml:PositiveSize" use="optional"/>
|
|
1546
1551
|
</xs:complexType>
|
|
1547
1552
|
</xs:element>
|
|
1548
1553
|
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
# Troubleshooting
|
|
2
2
|
|
|
3
|
-
本文件覆盖 lark-slides
|
|
4
|
-
|
|
5
|
-
## XML Preflight
|
|
6
|
-
|
|
7
|
-
在真正创建或替换前,至少检查:
|
|
8
|
-
|
|
9
|
-
- 特殊字符已转义:正文和标题里的 `&`、`<`、`>` 不能裸写;属性值里的裸 `&` 也必须写成 `&`。
|
|
10
|
-
- 属性引号安全:XML 属性、shell 引号、JSON 字符串包装之间没有互相打断。
|
|
11
|
-
- 结构合法:`<slide>` 下只放 `<style>`、`<data>`、`<note>`,文本都在 `<content>` 内。
|
|
12
|
-
- 图片路径正确:`<img src="@...">` 只在 `+create --slides` 的支持链路中使用;直接调用 `xml_presentation.slide.create` 必须先拿到 `file_token`。
|
|
3
|
+
本文件覆盖 lark-slides 的 XML 排障和常见失败处理。
|
|
13
4
|
|
|
14
5
|
## Failure Order
|
|
15
6
|
|
|
16
7
|
遇到 `invalid param`、某一页创建失败、页面空白或布局错乱时,按顺序处理:
|
|
17
8
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
9
|
+
1. 先判断是否已有可用的 `xml_presentation_id`:从成功 stdout、错误 hint、用户给定链接或已保存上下文中获取;没有 ID 时不要回读,直接按当前错误处理。
|
|
10
|
+
2. 如果有 `xml_presentation_id`,再用 `slides +xml-get` 尝试回读,确认是否存在演示文稿、是否已有部分页面写入、或是否只是空 presentation。
|
|
20
11
|
3. 检查失败页是否含未转义字符:`Q&A -> Q&A`,文本 `<` / `>` 写成 `<` / `>`,属性 URL `a=1&b=2 -> a=1&b=2`。
|
|
21
12
|
4. 检查标签闭合、属性引号、`<content>` 结构,以及 `<slide>` 直接子元素。
|
|
22
|
-
5.
|
|
23
|
-
6. 如果使用 `--slides '[...]'`,怀疑 shell 截断时直接切到两步创建:先 `slides +create`,再用 `xml_presentation.slide.create` 逐页添加。
|
|
24
|
-
7. 局部问题用 `+replace-slide` 块级修正;整页结构要改时再用 `slide.delete` 旧页 + `slide.create` 新页。
|
|
13
|
+
5. 如果使用 `--slides '[...]'`,怀疑 shell 截断时直接切到两步创建:先 `slides +create`,再用 `xml_presentation.slide create` 逐页添加。
|
|
25
14
|
|
|
26
15
|
## Symptom Fixes
|
|
27
16
|
|
|
@@ -34,10 +23,9 @@
|
|
|
34
23
|
| 表格列宽不合理 | 调整 `colgroup` 中 `col` 的 `width` 值 |
|
|
35
24
|
| 图表没有显示 | 检查 `chartPlotArea` 和 `chartData` 是否都包含,`dim1` / `dim2` 数据数量是否匹配 |
|
|
36
25
|
| 图片被裁掉一部分 | `<img>` 的 `width` / `height` 是裁剪后尺寸;要整图显示就让 `width:height` 对齐原图比例 |
|
|
37
|
-
| 图片不显示 / `<img src>` 仍是 `@path` | `@` 占位符只在 `+create --slides` 中替换;直接调 `xml_presentation.slide
|
|
26
|
+
| 图片不显示 / `<img src>` 仍是 `@path` | `@` 占位符只在 `+create --slides` 中替换;直接调 `xml_presentation.slide create` 必须先用 `+media-upload` 拿 `file_token` |
|
|
38
27
|
| 新插入的 `<img>` 挡住原有元素 | `slide.get` 读原页,对照已有块坐标挑空白位置;空间不够就在同一批 `--parts` 里先移动/缩小现有块再插图 |
|
|
39
28
|
| 渐变背景变成白色 | 渐变必须用 `rgba()` 格式 + 百分比停靠点,如 `linear-gradient(135deg,rgba(30,60,114,1) 0%,rgba(59,130,246,1) 100%)` |
|
|
40
|
-
| 整体风格不统一 | 封面页和结尾页用同一背景,内容页保持一致的配色和字号体系 |
|
|
41
29
|
|
|
42
30
|
## Common Errors
|
|
43
31
|
|
|
@@ -46,18 +34,12 @@
|
|
|
46
34
|
| 400 XML 格式错误 | XML 语法错误 | 检查标签闭合、属性引号、特殊字符转义 |
|
|
47
35
|
| 400 请求包装错误 | `--data` 未按 schema 包装 | 检查是否传入 `xml_presentation.content` 或 `slide.content` |
|
|
48
36
|
| 创建成功但页面空白 / 内容缺失 / 布局错乱 | 常见于 `--slides '[...]'` 的 shell 转义或长参数传递问题 | 改用两步创建,并在创建后立即读取 XML 验证 |
|
|
49
|
-
| 403 权限不足 | 身份或 scope 不匹配 | 先检查是否误用了 bot 身份,再确认 scope
|
|
37
|
+
| 403 权限不足 | 身份或 scope 不匹配 | 先检查是否误用了 bot 身份,再确认 scope 和文档权限;无权限时根据错误响应引导用户解决 |
|
|
50
38
|
| 404 演示文稿不存在 | `xml_presentation_id` 不正确或无权限 | 检查 token;wiki URL 需先解析真实 `obj_token` |
|
|
51
39
|
| 404 幻灯片不存在 | `slide_id` 不正确 | 重新读取 presentation 或 slide,确认最新 ID |
|
|
52
40
|
| 400 无法删除唯一幻灯片 | 演示文稿至少保留一页 | 先创建新页,再删除旧页 |
|
|
53
41
|
| 1061002 媒体上传 params error | slides 媒体上传参数不符合约定 | 用 `slides +media-upload`,不要手拼原生 `medias/upload_all`;slides 唯一可用 `parent_type` 是 `slide_file` |
|
|
54
42
|
| 1061004 forbidden | 当前身份对演示文稿无编辑权限 | 确认 user/bot 对目标 PPT 有编辑权限;bot 常见于 PPT 非该 bot 创建 |
|
|
55
43
|
| 3350001 | XML 非 well-formed、XML 结构不符合服务端要求,或 replace 片段问题 | 优先检查未转义字符;replace 场景再看 `block_id` 和 `<content/>` |
|
|
56
|
-
| 3350002 | `revision_id` 大于当前版本 | 用 `-1`
|
|
44
|
+
| 3350002 | `revision_id` 大于当前版本 | 用 `-1` 取当前版本,或重新用 `slides +xml-get` 取最新 `revision_id` |
|
|
57
45
|
| validation: unsafe file path | `--file` 给了绝对路径或上层路径 | `--file` 必须是 CWD 内相对路径;先 `cd` 到素材目录再执行 |
|
|
58
|
-
|
|
59
|
-
## Command-Specific References
|
|
60
|
-
|
|
61
|
-
- 图片上传、`@path` 占位符、`file_token`:见 [lark-slides-media-upload.md](lark-slides-media-upload.md) 和 [lark-slides-create.md](lark-slides-create.md)。
|
|
62
|
-
- 块级替换、`block_id`、3350001 replace 细节:见 [lark-slides-replace-slide.md](lark-slides-replace-slide.md)。
|
|
63
|
-
- 原生 `slide.create` 包装、`before_slide_id` 和 jq 模板:见 [lark-slides-xml-presentation-slide-create.md](lark-slides-xml-presentation-slide-create.md)。
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## Required Flow
|
|
8
8
|
|
|
9
9
|
1. 记录创建或编辑返回的 `xml_presentation_id`,以及已知的 `slide_id` / `revision_id`。
|
|
10
|
-
2. 用 `
|
|
10
|
+
2. 用 `slides +xml-get` 回读全文 XML 到本地文件。
|
|
11
11
|
3. 检查实际页数是否符合计划或用户要求。
|
|
12
12
|
4. 检查每页 `<data>` 内是否有预期主要元素。
|
|
13
13
|
5. 检查没有明显空白页、破损页、缺失标题或缺失主视觉。
|
|
@@ -19,22 +19,24 @@
|
|
|
19
19
|
回读命令:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
lark-cli slides
|
|
23
|
-
--
|
|
22
|
+
lark-cli slides +xml-get --as user \
|
|
23
|
+
--presentation "YOUR_ID" \
|
|
24
|
+
--output .lark-slides/plan/<deck-or-task-id>/readback.xml \
|
|
25
|
+
--json
|
|
24
26
|
```
|
|
25
27
|
|
|
26
28
|
## Automated XML Text Overlap Lint
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
提交前本地 XML 必须运行 XML 语法和文本重叠静态检查:
|
|
29
31
|
|
|
30
32
|
```bash
|
|
31
|
-
python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentation.xml>
|
|
33
|
+
python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentation-or-slide.xml>
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
通过标准:
|
|
35
37
|
|
|
36
|
-
- `summary.error_count == 0`。任何 error
|
|
37
|
-
-
|
|
38
|
+
- `summary.error_count == 0`。任何 error 都必须先修复再提交接口。
|
|
39
|
+
- 当前工具检查 XML well-formed、SXSD tag/attr 支持情况、IconPark icon 类型和 icon 填充可见性、文本元素之间的明显重叠,以及 whiteboard 容器与外部 sibling 元素的可疑边界重叠;它不检查越界、文本高度不足、图文压盖、表格/图表压盖或底部拥挤。
|
|
38
40
|
- 该工具不能替代页数核对、关键内容核对或真实视觉验收。
|
|
39
41
|
|
|
40
42
|
常见 code 的处理方向:
|
|
@@ -42,7 +44,14 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
42
44
|
| code | 含义 | 处理方式 |
|
|
43
45
|
|------|------|----------|
|
|
44
46
|
| `xml_not_well_formed` | XML 语法错误或文本未转义 | 修复标签闭合、属性引号、`&` / `<` / `>` 转义 |
|
|
47
|
+
| `sml_prefixed_tag` | SML 元素使用了命名空间前缀,如 `<ns0:slide>` 或 `<sml:shape>` | 使用 `<slide xmlns="http://www.larkoffice.com/sml/2.0">` 的默认命名空间,或使用无前缀标签 |
|
|
48
|
+
| `sxsd_unsupported_tag` | 使用了 SXSD 不支持的标签 | 按 lint `hint` 替换为受支持标签;常见如 `textbox -> <shape type="text">`、`image -> <img>` |
|
|
49
|
+
| `sxsd_unsupported_attr` | 支持的标签上使用了不支持的属性 | 按 lint `hint` 改为支持的属性;常见如 `x -> topLeftX`、`fontColor -> color` |
|
|
50
|
+
| `iconpark_unsupported_icon_type` | `<icon>` 使用了 `iconpark-index.json` 中不存在的 `iconType` | 按 lint `hint` 改为名单内的 `iconType`,或先用 `scripts/iconpark_tool.py` 搜索 |
|
|
51
|
+
| `icon_missing_fill_color` | 视觉规范要求 `<icon>` 设置 `<fill><fillColor color="..."/></fill>`,避免图标不可见 | 给 `<icon>` 添加显式非透明填充色,例如 `rgba(37, 99, 235, 1)` |
|
|
52
|
+
| `icon_transparent_fill_color` | `<icon>` 的 `fillColor` 是透明色,不满足视觉可见性要求 | 改成与背景有足够对比的非透明颜色 |
|
|
45
53
|
| `bbox_overlap` | 文本元素的估算绘制区域明显重叠 | 拉开文本坐标、缩小文本框/字号,或改成明确的分栏/分组结构 |
|
|
54
|
+
| `whiteboard_external_overlap` | whiteboard 容器 bbox 与外部 sibling 元素跨边界重叠 | 按 lint `hint` 缩小或移动 whiteboard / 外部元素;若接受该风险,最终必须以截图 QA 或等价渲染视觉检查为准 |
|
|
46
55
|
|
|
47
56
|
## Page Count And Structure
|
|
48
57
|
|
|
@@ -80,7 +89,7 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
80
89
|
|
|
81
90
|
`slide.get` 回读 XML 时,`<whiteboard>` 块只返回位置属性(`topLeftX`、`topLeftY`、`width`、`height`),SVG / Mermaid 内容**不随 XML 返回**。
|
|
82
91
|
|
|
83
|
-
- whiteboard
|
|
92
|
+
- whiteboard 验证可以核对坐标是否越界:`topLeftX + width ≤ 960`,`topLeftY + height ≤ 540`;lint 还会报告 whiteboard 容器与外部 sibling 元素的可疑边界重叠。
|
|
84
93
|
- SVG 和 Mermaid 内容的正确性无法通过回读 XML 验证,需要人工视觉验收。
|
|
85
94
|
- 不要在验证记录中声称 whiteboard 内容已验证,除非用户确认了视觉效果。
|
|
86
95
|
|
|
@@ -101,7 +110,7 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
101
110
|
|
|
102
111
|
```text
|
|
103
112
|
验证记录:
|
|
104
|
-
- 回读:已执行
|
|
113
|
+
- 回读:已执行 slides +xml-get,实际页数 N / 预期 N。
|
|
105
114
|
- 关键页:架构解释 / Self-Attention / 对比或演进 / 总结页均存在。
|
|
106
115
|
- 结构:检查了主要 shape/img/table/chart 元素,无明显空白页或破损页。
|
|
107
116
|
- 布局:检查了标题层级、主视觉、重叠/越界/文本溢出风险。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
新建演示文稿或大幅改写页面时,在 `slide_plan.json` 完成后、生成 XML 前读取本文件。目标是让 `layout_type`、`visual_focus`、`text_density` 变成实际页面几何,而不是只写在 plan 里。
|
|
4
4
|
|
|
5
|
-
默认画布按 `960 x 540`
|
|
5
|
+
默认画布按 `960 x 540` 规划。模板 XML 可以覆盖具体坐标,但不能覆盖这些原则:页面要有主视觉区域、文本要受密度约束、不同 `layout_type` 必须产生明显不同的坐标结构。
|
|
6
6
|
|
|
7
7
|
## Core Rules
|
|
8
8
|
|
|
@@ -131,6 +131,7 @@ Purpose: make one metric or fact memorable.
|
|
|
131
131
|
|
|
132
132
|
Geometry:
|
|
133
133
|
- Reserve the largest object for the metric: font size often `64-110`, region at least `300 x 120`.
|
|
134
|
+
- Set `autoFit="normal-auto-fit"` on the metric's `<content>` so an oversized number shrinks to fit its box instead of overflowing.
|
|
134
135
|
- Pair the number with one explanation and optional 2-3 small supporting labels.
|
|
135
136
|
- Do not bury the number in a bullet list or small card.
|
|
136
137
|
|
|
@@ -168,7 +169,7 @@ Text:
|
|
|
168
169
|
|
|
169
170
|
Purpose: explain components, dependencies, or system flow.
|
|
170
171
|
|
|
171
|
-
Implementation: prefer `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>`
|
|
172
|
+
Implementation: prefer Mermaid `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>` as fallback.
|
|
172
173
|
|
|
173
174
|
Geometry:
|
|
174
175
|
- Main visual area should be a diagram, not prose.
|
|
@@ -184,7 +185,7 @@ Text:
|
|
|
184
185
|
|
|
185
186
|
Purpose: show operational steps, workflow, or cause-effect path.
|
|
186
187
|
|
|
187
|
-
Implementation: prefer `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>`
|
|
188
|
+
Implementation: prefer Mermaid `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>` as fallback.
|
|
188
189
|
|
|
189
190
|
Geometry:
|
|
190
191
|
- Use numbered steps connected by arrows or lines.
|
|
@@ -248,6 +248,26 @@
|
|
|
248
248
|
- `<tr>` 内为 `<td>`
|
|
249
249
|
- `<td>` 内可放 `<content>`
|
|
250
250
|
|
|
251
|
+
`<table>` 可选设置 `width` 和 `height`,分别表示表格的目标总宽度和总高度:
|
|
252
|
+
|
|
253
|
+
```xml
|
|
254
|
+
<table topLeftX="80" topLeftY="120" width="800" height="300">
|
|
255
|
+
<colgroup>
|
|
256
|
+
<col width="240"/>
|
|
257
|
+
<col/>
|
|
258
|
+
</colgroup>
|
|
259
|
+
<tr height="80">
|
|
260
|
+
<td><content textType="body"><p>表头 1</p></content></td>
|
|
261
|
+
<td><content textType="body"><p>表头 2</p></content></td>
|
|
262
|
+
</tr>
|
|
263
|
+
</table>
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
- 已设置的列宽和行高优先保留;未设置的列宽、行高优先使用目标总宽度或总高度分配剩余空间。
|
|
267
|
+
- 如果所有列宽或行高都未设置,则目标总宽度或总高度会在各列或各行之间分配。
|
|
268
|
+
- 如果目标尺寸不足以容纳已设置的尺寸,则保留已设置值,并以最终列宽或行高总和为准。
|
|
269
|
+
- 行高低于单元格内容高度时,需要手动增大行高。
|
|
270
|
+
|
|
251
271
|
### `<chart>`
|
|
252
272
|
|
|
253
273
|
图表元素必须至少包含:
|
|
@@ -139,10 +139,14 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
|
|
|
139
139
|
### icon
|
|
140
140
|
|
|
141
141
|
```xml
|
|
142
|
-
<icon iconType="iconpark/Base/setting.svg" topLeftX="80" topLeftY="120" width="32" height="32"
|
|
142
|
+
<icon iconType="iconpark/Base/setting.svg" topLeftX="80" topLeftY="120" width="32" height="32">
|
|
143
|
+
<fill>
|
|
144
|
+
<fillColor color="rgba(37, 99, 235, 1)"/>
|
|
145
|
+
</fill>
|
|
146
|
+
</icon>
|
|
143
147
|
```
|
|
144
148
|
|
|
145
|
-
`iconType` 必须来自已验证的 IconPark
|
|
149
|
+
`iconType` 必须来自已验证的 IconPark 路径;视觉 lint 规范要求 `fillColor` 显式设置为非透明颜色,避免图标不可见。需要语义图标时,先运行 `scripts/iconpark_tool.py search --query "<语义>"`,不要凭记忆拼路径。更多规则见 [iconpark.md](iconpark.md)。
|
|
146
150
|
|
|
147
151
|
### whiteboard
|
|
148
152
|
|