@amaster.ai/pi-lark 0.1.6 → 0.1.7

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.
Files changed (178) hide show
  1. package/README.md +5 -1
  2. package/dist/config.d.ts +1 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -2
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/package.json +3 -3
  10. package/skills/lark-apps/SKILL.md +24 -12
  11. package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
  12. package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
  13. package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
  14. package/skills/lark-apps/creative-design/assets/index.html +27 -0
  15. package/skills/lark-apps/creative-design/creative-design.md +239 -0
  16. package/skills/lark-apps/creative-design/references/aily.md +39 -0
  17. package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
  18. package/skills/lark-apps/creative-design/references/charts.md +165 -0
  19. package/skills/lark-apps/creative-design/references/claude.md +36 -0
  20. package/skills/lark-apps/creative-design/references/codex.md +32 -0
  21. package/skills/lark-apps/creative-design/references/data-report.md +108 -0
  22. package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
  23. package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
  24. package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
  25. package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
  26. package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
  27. package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
  28. package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
  29. package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
  30. package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
  31. package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
  32. package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
  33. package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
  34. package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
  35. package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
  36. package/skills/lark-apps/references/lark-apps-automation.md +80 -2
  37. package/skills/lark-apps/references/lark-apps-cache.md +61 -0
  38. package/skills/lark-apps/references/lark-apps-cloud-dev.md +0 -1
  39. package/skills/lark-apps/references/lark-apps-create.md +1 -2
  40. package/skills/lark-apps/references/lark-apps-db.md +1 -1
  41. package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
  42. package/skills/lark-apps/references/lark-apps-file.md +2 -2
  43. package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
  44. package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
  45. package/skills/lark-apps/references/lark-apps-init.md +1 -1
  46. package/skills/lark-apps/references/lark-apps-list.md +1 -1
  47. package/skills/lark-apps/references/lark-apps-local-dev.md +54 -11
  48. package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
  49. package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
  50. package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
  51. package/skills/lark-base/SKILL.md +20 -13
  52. package/skills/lark-base/references/lark-base-cell-value.md +3 -3
  53. package/skills/lark-base/references/lark-base-data-query.md +11 -4
  54. package/skills/lark-base/references/lark-base-field-create.md +4 -0
  55. package/skills/lark-base/references/lark-base-field-json.md +4 -4
  56. package/skills/lark-base/references/lark-base-field-update.md +17 -1
  57. package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
  58. package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
  59. package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
  60. package/skills/lark-base/references/lark-base-form-submit.md +16 -7
  61. package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
  62. package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
  63. package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
  64. package/skills/lark-base/references/lark-base-role-guide.md +11 -0
  65. package/skills/lark-base/references/lark-base-view-set-filter.md +11 -137
  66. package/skills/lark-base/references/role-config.md +31 -5
  67. package/skills/lark-calendar/SKILL.md +14 -8
  68. package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
  69. package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
  70. package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
  71. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
  72. package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
  73. package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
  74. package/skills/lark-contact/SKILL.md +19 -3
  75. package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
  76. package/skills/lark-doc/references/lark-doc-fetch.md +10 -2
  77. package/skills/lark-doc/references/lark-doc-whiteboard.md +9 -8
  78. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +41 -0
  79. package/skills/lark-doc/references/lark-doc-xml.md +4 -3
  80. package/skills/lark-drive/SKILL.md +25 -45
  81. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
  82. package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
  83. package/skills/lark-drive/references/lark-drive-apply-permission.md +2 -2
  84. package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
  85. package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
  86. package/skills/lark-drive/references/lark-drive-comment-location.md +9 -15
  87. package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
  88. package/skills/lark-drive/references/lark-drive-download.md +5 -1
  89. package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
  90. package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
  91. package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
  92. package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
  93. package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
  94. package/skills/lark-drive/references/lark-drive-preview.md +11 -1
  95. package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
  96. package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
  97. package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
  98. package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
  99. package/skills/lark-drive/references/lark-drive-search.md +7 -1
  100. package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
  101. package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
  102. package/skills/lark-drive/references/lark-drive-upload.md +1 -0
  103. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
  104. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
  105. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
  106. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
  107. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
  108. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
  109. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
  110. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
  111. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
  112. package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
  113. package/skills/lark-event/SKILL.md +1 -0
  114. package/skills/lark-event/references/lark-event-application.md +38 -0
  115. package/skills/lark-im/SKILL.md +1 -1
  116. package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
  117. package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
  118. package/skills/lark-im/references/card/resource/icons.md +14 -0
  119. package/skills/lark-im/references/lark-im-flag-list.md +8 -7
  120. package/skills/lark-okr/SKILL.md +71 -26
  121. package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
  122. package/skills/lark-okr/references/lark-okr-create.md +173 -0
  123. package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
  124. package/skills/lark-okr/references/lark-okr-entities.md +1 -0
  125. package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
  126. package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
  127. package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
  128. package/skills/lark-slides/SKILL.md +115 -68
  129. package/skills/lark-slides/references/asset-planning.md +6 -4
  130. package/skills/lark-slides/references/iconpark.md +2 -2
  131. package/skills/lark-slides/references/lark-slides-create.md +16 -8
  132. package/skills/lark-slides/references/lark-slides-history.md +132 -0
  133. package/skills/lark-slides/references/lark-slides-media-upload.md +2 -3
  134. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
  135. package/skills/lark-slides/references/lark-slides-replace-slide.md +0 -3
  136. package/skills/lark-slides/references/lark-slides-screenshot.md +4 -4
  137. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +219 -0
  138. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +6 -5
  139. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
  140. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
  141. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +65 -30
  142. package/skills/lark-slides/references/planning-layer.md +11 -10
  143. package/skills/lark-slides/references/slides_chart_demo.xml +1416 -1
  144. package/skills/lark-slides/references/slides_xml_schema_definition.xml +492 -76
  145. package/skills/lark-slides/references/troubleshooting.md +25 -7
  146. package/skills/lark-slides/references/validation-checklist.md +53 -16
  147. package/skills/lark-slides/references/visual-planning.md +25 -22
  148. package/skills/lark-slides/references/xml-schema-quick-ref.md +281 -45
  149. package/skills/lark-slides/scripts/sxsd_validator.py +908 -0
  150. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1650 -165
  151. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +3139 -513
  152. package/skills/lark-task/SKILL.md +7 -0
  153. package/skills/lark-task/references/lark-task-complete.md +6 -2
  154. package/skills/lark-task/references/lark-task-create.md +9 -0
  155. package/skills/lark-task/references/lark-task-update.md +6 -2
  156. package/skills/lark-whiteboard/SKILL.md +13 -12
  157. package/skills/lark-whiteboard/elements/layout.md +1 -1
  158. package/skills/lark-whiteboard/elements/schema.md +2 -2
  159. package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +15 -15
  160. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +3 -3
  161. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +7 -17
  162. package/skills/lark-whiteboard/routes/dsl.md +3 -3
  163. package/skills/lark-whiteboard/routes/mermaid.md +2 -2
  164. package/skills/lark-whiteboard/routes/svg-edit.md +4 -4
  165. package/skills/lark-whiteboard/routes/svg.md +11 -6
  166. package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
  167. package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
  168. package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
  169. package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
  170. package/skills/lark-whiteboard/scenes/treemap.md +1 -1
  171. package/skills/lark-wiki/SKILL.md +1 -0
  172. package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -80
  173. package/skills/lark-slides/references/examples.md +0 -91
  174. package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
  175. package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
  176. package/skills/lark-slides/references/slide-templates.md +0 -201
  177. package/skills/lark-slides/references/slides_demo.xml +0 -226
  178. package/skills/lark-slides/references/xml-format-guide.md +0 -433
@@ -1,6 +1,6 @@
1
1
  # XML Schema 快速参考
2
2
 
3
- 本文档是 [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml) 的精简版摘要;如果两者不一致,以 XSD 原文为准。
3
+ 本文档是 [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml) 的精简版摘要,并合并了常用 XML 格式写法;如果两者不一致,以 XSD 原文为准。
4
4
 
5
5
  ## 最重要的规则
6
6
 
@@ -17,7 +17,7 @@
17
17
  <slide>
18
18
  <data>
19
19
  <shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
20
- <content textType="title">
20
+ <content autoFit="normal-auto-fit" wrap="true" textType="title">
21
21
  <p>标题</p>
22
22
  </content>
23
23
  </shape>
@@ -30,24 +30,30 @@
30
30
 
31
31
  | 属性 | 必需 | 说明 |
32
32
  |------|------|------|
33
- | `width` | 是 | 演示文稿宽度,正整数 |
34
- | `height` | 是 | 演示文稿高度,正整数 |
33
+ | `width` | 是 | 演示文稿宽度,正整数,标准 16:9 页面建议使用 `960` |
34
+ | `height` | 是 | 演示文稿高度,正整数,标准 16:9 页面建议使用 `540` |
35
35
  | `id` | 否 | 演示文稿标识 |
36
36
 
37
37
  **子元素:** `<title>?`, `<theme>?`, `<slide>+`
38
38
 
39
- ## slide 元素
39
+ `<slide>` 至少 1 页,最多 100 页。
40
40
 
41
- | 属性 | 必需 | 说明 |
42
- |------|------|------|
43
- | `id` | 否 | 幻灯片标识 |
41
+ ## theme 与文本类型
44
42
 
45
- **子元素:**
46
- - `<style>?` - 页面样式,目前可放 `<fill>`
47
- - `<data>?` - 页面元素容器,可放 `shape`、`line`、`polyline`、`img`、`table`、`icon`、`chart`、`whiteboard`、`undefined`
48
- - `<note>?` - 演讲者备注,内部可放 `<content>`
43
+ `<theme>` 当前包含两部分:
49
44
 
50
- ## theme 与文本类型
45
+ - `<background>`:演示文稿级背景填充
46
+ - `<textStyles>`:主题文本样式集合
47
+
48
+ `<textStyles>` 下可选子元素包括 `<title>`、`<headline>`、`<sub-headline>`、`<body>`、`<caption>`。这些元素定义的是主题默认样式,不是页面结构。
49
+
50
+ 常用属性:
51
+
52
+ | 属性 | 说明 |
53
+ |------|------|
54
+ | `fontFamily` | 字体 |
55
+ | `fontSize` | 字号 |
56
+ | `fontColor` | 字体颜色 |
51
57
 
52
58
  XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出现在:
53
59
 
@@ -64,6 +70,22 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
64
70
  | `body` | 16 |
65
71
  | `caption` | 12 |
66
72
 
73
+ 默认字号是省略 `fontSize` 时的兜底字号,不是推荐值。字号必须显式设置 `<content>` 的 `fontSize` 属性,不要依赖 `textType` 的默认字号兜底,这些兜底值明显偏大。
74
+
75
+ ## slide 元素
76
+
77
+ | 属性 | 必需 | 说明 |
78
+ |------|------|------|
79
+ | `id` | 否 | 幻灯片标识 |
80
+
81
+ **子元素:**
82
+
83
+ - `<style>?` - 页面样式,目前可放 `<fill>`
84
+ - `<data>?` - 页面元素容器,可放 `shape`、`line`、`polyline`、`img`、`table`、`icon`、`chart`、`undefined`
85
+ - `<note>?` - 演讲者备注,内部可放 `<content>`
86
+
87
+ 这意味着 `<title>`、`<headline>`、`<body>`、`<caption>` 不能直接放在 `<slide>` 下。
88
+
67
89
  ## content 内容模型
68
90
 
69
91
  `<content>` 可出现在 `shape`、`table/td`、`note` 中,常用属性包括:
@@ -71,23 +93,56 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
71
93
  | 属性 | 说明 |
72
94
  |------|------|
73
95
  | `textType` | `title` / `headline` / `sub-headline` / `body` / `caption` |
96
+ | `verticalAlign` | 垂直对齐 |
74
97
  | `textAlign` | 文本对齐方式 |
75
98
  | `lineSpacing` | 行间距,schema 默认 `multiple:1.5` |
76
99
  | `fontSize` | 字号 |
77
100
  | `fontFamily` | 字体 |
78
101
  | `color` | 字体颜色 |
79
- | `bold` / `italic` / `underline` / `strikethrough` | 文本样式 |
102
+ | `bold` / `italic` / `underline` / `strikethrough` | 内容级样式 |
103
+ | `wrap` | 是否自动换行 |
104
+ | `autoFit` | 是否自动缩排 |
105
+
106
+ 注意事项:
80
107
 
81
- `<content>` 的子元素只能是:
108
+ - 字号必须显式设置 `<content>` 的 `fontSize` 属性,不要依赖 `textType` 的默认字号兜底,这些兜底值明显偏大。
109
+ - 大数字、字号大或字数多的 `<content>` 必须设置 `wrap="true" autoFit="normal-auto-fit"` 属性自动换行和缩排,避免文字溢出。
110
+ - 文字颜色必须用 `<content>` 的 `color` 属性而不是 `fontColor` 属性。
111
+ - 文字行间距必须设置 `<content>` 的 `lineSpacing="multiple:xx"` 或 `lineSpacing="fixed:xx"` 而不是 `lineSpacing="xx"`。
112
+
113
+ `<content>` 直接子元素只有:
82
114
 
83
115
  - `<p>`
84
116
  - `<ul>`
85
117
  - `<ol>`
86
118
 
87
- ### content 示例
119
+ ### p 段落与内联标签
120
+
121
+ `<p>` 是段落元素,可混排纯文本和内联标签:
122
+
123
+ - `<br/>`
124
+ - `<strong>`
125
+ - `<em>`
126
+ - `<u>`
127
+ - `<span>`
128
+ - `<del>`
129
+ - `<a>`
130
+ - `<shadow>`
131
+ - `<outline>`
132
+ - `<formula>`
133
+
134
+ 公式写法:
135
+
136
+ ```xml
137
+ <p>公式:<formula><latex><![CDATA[ E = mc^2 ]]></latex></formula></p>
138
+ ```
139
+
140
+ `<formula>` 是内联元素;当前只支持一个 `<latex>` 子元素。LaTeX 内容必须放在 `CDATA` 中,且 `CDATA` 内不要写 XML 转义;宏只使用服务端支持范围内的写法,优先用基础运算符、`\frac`、`\sqrt`、`matrix`。
141
+
142
+ 示例:
88
143
 
89
144
  ```xml
90
- <content textType="body" textAlign="left">
145
+ <content autoFit="normal-auto-fit" textType="body" textAlign="left">
91
146
  <p>正文内容 <strong>加粗</strong> <em>斜体</em> <a href="https://example.com">链接</a></p>
92
147
  <ul>
93
148
  <li><p>列表项 1</p></li>
@@ -98,8 +153,20 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
98
153
 
99
154
  ## data 常用元素
100
155
 
156
+ 所有页面元素都放在 `<data>` 中。
157
+
101
158
  ### shape
102
159
 
160
+ `shape` 可表示普通形状,也可表示文本框。文本框推荐使用 `type="text"`。
161
+
162
+ ```xml
163
+ <shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
164
+ <content textType="title">
165
+ <p>主标题</p>
166
+ </content>
167
+ </shape>
168
+ ```
169
+
103
170
  ```xml
104
171
  <shape type="rect" topLeftX="120" topLeftY="120" width="240" height="120">
105
172
  <fill>
@@ -108,6 +175,8 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
108
175
  <border color="rgb(0, 0, 0)" width="2"/>
109
176
  </shape>
110
177
  ```
178
+ `<shape type="rect">` 只是形状不是容器,`<icon>`、`<img>`、`<shape type="text">` 和其他 `<shape>` 必须与它平级靠坐标叠放。
179
+
111
180
 
112
181
  | 属性 | 必需 | 说明 |
113
182
  |------|------|------|
@@ -117,6 +186,23 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
117
186
  | `width` | 是 | 宽度 |
118
187
  | `height` | 是 | 高度 |
119
188
  | `rotation` | 否 | 旋转角度 |
189
+ | `flipX` / `flipY` | 否 | 翻转 |
190
+ | `alpha` | 否 | 透明度 |
191
+
192
+ 可选子元素:
193
+
194
+ - `<fill>`
195
+ - `<border>`
196
+ - `<reflection>`
197
+ - `<shadow>`
198
+ - `<content>`
199
+
200
+ `type` 常用取值:`text`(文本框)、`rect`、`round-rect`(圆角矩形)、`ellipse`(椭圆/圆)、`triangle`、`diamond`、`parallelogram`、`trapezoid`、`custom`(配合 `path` 属性写 SVG 路径串)。箭头、星形、标注气泡、`chevron`、`flow-chart-*` 等更多形状见 XSD `ShapeType` 枚举。
201
+
202
+ 其它可选属性:
203
+
204
+ - `presetHandlers`:控制点,用于圆角等。例如 `<shape type="rect" presetHandlers="60">` = 圆角半径 60px 的圆角矩形;多个控制点用逗号分隔。
205
+ - `path`:仅 `type="custom"` 时使用,SVG 路径串。
120
206
 
121
207
  ### line
122
208
 
@@ -126,55 +212,148 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
126
212
  </line>
127
213
  ```
128
214
 
215
+ `line` 使用的是 `startX` / `startY` / `endX` / `endY`,不是 `x1` / `y1` / `x2` / `y2`。
216
+
217
+ ### polyline
218
+
219
+ 折线 / 曲线连接线,用外接矩形定位(`topLeftX` / `topLeftY` / `width` / `height`),不是端点坐标;`<border>` 必填(无 border 不可见)。`type` 默认 `bent-connector2`(可选 `bent-connector2-5` 折线 / `curved-connector2-5` 曲线)。
220
+
221
+ ```xml
222
+ <polyline topLeftX="120" topLeftY="120" width="200" height="100">
223
+ <border color="rgb(43, 47, 54)" width="2"/>
224
+ </polyline>
225
+ ```
226
+
129
227
  ### img
130
228
 
131
229
  ```xml
132
230
  <img src="file_token_or_url" topLeftX="80" topLeftY="120" width="320" height="180"/>
133
231
  ```
134
232
 
233
+ `img` 使用 `topLeftX` / `topLeftY`,不是 `x` / `y`。
234
+
135
235
  `src` 只支持:`slides +media-upload` 返回的 `file_token`,或 `@<本地路径>` 占位符(仅 `+create --slides` 自动上传并替换)。**禁止使用 http(s) 外链 URL**——飞书 slides 渲染端不会代理外链图,外链 src 在 PPT 里通常不显示。本地图片详见 [lark-slides-create.md](lark-slides-create.md#本地图片path-占位符) / [lark-slides-media-upload.md](lark-slides-media-upload.md)。
136
236
 
237
+ 本地图片的两种姿势:
238
+
239
+ - 新建带图 PPT:`+create --slides` 里直接写 `src="@./pic.png"`,CLI 在创空白 PPT 后、加 slides 前自动上传并替换 token
240
+ - 给已有 PPT 加带图新页:先 `slides +media-upload --file ./pic.png --presentation $PID` 拿 token,再用 token 写进 `xml_presentation.slide create` 的 XML
241
+
137
242
  > **注意**:`width`/`height` 是**裁剪后**的显示尺寸。比例和原图不一致时会自动裁剪(无法靠属性关闭),想避免裁剪就让 `width:height` 对齐原图比例。
138
243
 
139
244
  ### icon
140
245
 
141
246
  ```xml
142
- <icon iconType="iconpark/Base/setting.svg" topLeftX="80" topLeftY="120" width="32" height="32">
247
+ <icon iconType="iconpark/Charts/chart-line.svg" topLeftX="80" topLeftY="120" width="32" height="32">
143
248
  <fill>
144
249
  <fillColor color="rgba(37, 99, 235, 1)"/>
145
250
  </fill>
146
251
  </icon>
147
252
  ```
148
253
 
149
- `iconType` 必须来自已验证的 IconPark 路径;视觉 lint 规范要求 `fillColor` 显式设置为非透明颜色,避免图标不可见。需要语义图标时,先运行 `scripts/iconpark_tool.py search --query "<语义>"`,不要凭记忆拼路径。更多规则见 [iconpark.md](iconpark.md)。
254
+ 图标必须填充颜色并和背景有足够对比。
255
+
256
+ 禁止盲猜 iconType,必须先检索 IconPark,再写 `<icon iconType="...">`。检索方式和更多规则见 [iconpark.md](iconpark.md)。
257
+
258
+
259
+ ### table
260
+
261
+ 表格结构为:
150
262
 
151
- ### whiteboard
263
+ - `<table>` 直接子元素只有 `<colgroup>` 和 `<tr>`,`width` 和 `height` 分别表示表格的目标总宽度和总高度。
264
+ - `<colgroup>` 直接子元素只有 `<col width="...">`,width 定义列宽,默认 110。
265
+ - `<tr height="...">` 直接子元素只有 `<td>`,height 定义行高,默认 37。
266
+ - `<td>` 直接子元素只有 `<fill>`(背景)、`<content>`(文字)和边框配置(一般不用),不能嵌套 `<shape>`、`<img>`、`<icon>`。
267
+ - 合并单元格:`<td>` 上用 `colspan`(跨列,默认 1)和 `rowspan`(跨行,默认 1);被合并覆盖的单元格不再写对应 `<td>`。
268
+
269
+ 表头默认的白底白字视觉效果极差,必须设置背景和文字颜色,需在首行每个 `<td>` 上加 `<fill>`(配合 `bold` 与对比文字色)与正文行区分。
270
+
271
+ 表格里的文字默认是居中对齐,可以设置 `textAlign` 调整对齐方式。
272
+
273
+ 表格宽高设置:
274
+
275
+ - 已设置的列宽和行高优先保留,未设置的列宽、行高会使用表格的目标总宽度、总高度分配剩余空间
276
+ - **必须设置 `<table>` 的 `width` 和 `height` 固定表格大小,同时设置需要保留列宽或行高的 `<col>` 的 `width` 和 `<tr>` 的 `height`,其余自动分配。**
277
+
278
+ 不同字号的行高参考:
279
+
280
+ | `fontSize` | 内容行数 | 紧凑 `height` | 适中 `height` | 宽松 `height` |
281
+ |------|------|------|------|------|
282
+ | 10 | 单行 | 16 | 20 | 24 |
283
+ | 12 | 单行 | 20 | 24 | 28 |
284
+ | 10 | 双行 | 32 | 36 | 42 |
285
+ | 12 | 双行 | 36 | 42 | 48 |
286
+
287
+ 示例:
152
288
 
153
289
  ```xml
154
- <!-- SVG 模式:<chart> 不支持的图表或自定义视觉、装饰元素 -->
155
- <whiteboard topLeftX="580" topLeftY="120" width="340" height="280">
156
- <svg xmlns="http://www.w3.org/2000/svg">
157
- <rect x="60" y="80" width="40" height="140" rx="3" fill="rgba(59,130,246,0.85)"/>
158
- <text x="80" y="238" text-anchor="middle" font-size="11" fill="rgba(100,116,139,1)">ABC</text>
159
- </svg>
160
- </whiteboard>
290
+ <table topLeftX="80" topLeftY="140" width="520" height="52">
291
+ <colgroup>
292
+ <col width="160"/>
293
+ <col width="120"/>
294
+ <col />
295
+ </colgroup>
296
+ <tr height="28">
297
+ <td>
298
+ <fill><fillColor color="rgba(30,60,114,1)"/></fill>
299
+ <content textType="body" fontSize="12" bold="true" color="rgba(255,255,255,1)" textAlign="center"><p>项目</p></content>
300
+ </td>
301
+ <td>
302
+ <fill><fillColor color="rgba(30,60,114,1)"/></fill>
303
+ <content textType="body" fontSize="12" bold="true" color="rgba(255,255,255,1)" textAlign="right"><p>营收</p></content>
304
+ </td>
305
+ <td>
306
+ <fill><fillColor color="rgba(30,60,114,1)"/></fill>
307
+ <content textType="body" fontSize="12" bold="true" color="rgba(255,255,255,1)" textAlign="left"><p>备注说明</p></content>
308
+ </td>
309
+ </tr>
310
+ <tr>
311
+ <td><content textType="body" fontSize="10" textAlign="center"><p>线上业务</p></content></td>
312
+ <td><content textType="body" fontSize="10" textAlign="right"><p>195</p></content></td>
313
+ <td><content textType="body" fontSize="10" textAlign="left"><p>同比增长 8%,主要来自新客</p></content></td>
314
+ </tr>
315
+ </table>
316
+ ```
317
+
318
+ ### chart
319
+
320
+ 图表语法十分复杂,必须阅读 [slides_chart_demo.xml](slides_chart_demo.xml),直接照抄其中的柱状、条形、折线、面积、饼(环)、雷达、组合图。
321
+
322
+ `<chart>` 直接子元素必须有 `<chartPlotArea>`(绘图区)和 `<chartData>`(数据);`<chartTitle>`、`<chartSubTitle>`、`<chartStyle>`、`<chartLegend>`、`<chartTooltip>` 可选,如果想不展示标题、副标题、图例或悬浮提示,省略相应元素标签即可。
323
+
324
+ `<chartStyle>` 常用子元素:
325
+
326
+ - `<chartBackground>`:`color` 省略时由渲染端决定默认背景;需要完全透明请显式写 `color="rgba(0, 0, 0, 0)"`
327
+ - `<chartBorder>`:无边框可写 `width="0"`,或直接不写 `<chartBorder>` 元素
161
328
 
162
- <!-- Mermaid 模式:流程图、时序图等结构化图表 -->
163
- <whiteboard topLeftX="72" topLeftY="100" width="816" height="340">
164
- <mermaid>
165
- <![CDATA[
166
- flowchart LR
167
- A[开始] --> B{判断}
168
- B -- 是 --> C[执行]
169
- B -- 否 --> D[结束]
170
- ]]>
171
- </mermaid>
172
- </whiteboard>
329
+ #### 图表渐变 `<fillGradient>` / `<strokeGradient>`
330
+
331
+ 图表支持渐变填充/描边,`<fillGradient>` 用于面积、柱子、数据点、扇区填充,`<strokeGradient>` 用于线条、数据点边框、柱子边框。渐变只能挂在系列级或单元素级,不要挂在 `<chartPlot>` 全局层。
332
+
333
+ 可挂载位置:
334
+
335
+ - 系列级:`<chartBars>` / `<chartPoints>` 支持 `<fillGradient>` 与 `<strokeGradient>`;`<chartLine>` 只支持 `<strokeGradient>`;`<chartArea>` / `<chartSectors>` 只支持 `<fillGradient>`
336
+ - 单元素级:`<chartBar index="...">` / `<chartPoint index="...">` / `<chartSector index="...">` 只支持 `<fillGradient>`
337
+ - 全局级:`<chartPlot>` 下的 `<chartLines>` / `<chartAreas>` / `<chartBars>` / `<chartPoints>` 不支持渐变
338
+
339
+ 结构要点:`type` 必填,可为 `linear` 或 `radial`;`linear` 用 `x0` / `y0` / `x1` / `y1`,`radial` 用 `r0` / `r1`;`<stops>` 至少包含 2 个 `<stop>`,`offset` 与 `opacity` 取值均为 `[0, 1]`。
340
+
341
+ ```xml
342
+ <chartSeries index="1">
343
+ <chartBars>
344
+ <fillGradient type="linear" x0="0" y0="0" x1="0" y1="1">
345
+ <stops>
346
+ <stop offset="0" color="rgb(28, 71, 120)"/>
347
+ <stop offset="1" color="rgb(28, 71, 120)" opacity="0.3"/>
348
+ </stops>
349
+ </fillGradient>
350
+ </chartBars>
351
+ </chartSeries>
173
352
  ```
174
353
 
175
- SVG 模式:`<svg>` 需声明 `xmlns="http://www.w3.org/2000/svg"`,内容大小由子元素包围盒决定;`width`/`height`/`viewBox` 不影响渲染,仅当元素使用百分比属性值时需声明 `viewBox`。\
176
- Mermaid 模式:内容用 `<![CDATA[...]]>` 包裹,避免 `[`、`>`、`-->` 等字符破坏 XML 解析。\
177
- 详细用法见 [lark-slides-whiteboard.md](lark-slides-whiteboard.md)。
354
+ 隐藏 `<chart>` 的图例只能通过不写或删除 `<chartLegend>` 实现,`<chartLegend>` 不支持 `position="none"`。
355
+
356
+ 详细用法见 [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml)。
178
357
 
179
358
  ## 颜色与样式
180
359
 
@@ -229,18 +408,75 @@ Mermaid 模式:内容用 `<![CDATA[...]]>` 包裹,避免 `[`、`>`、`-->`
229
408
 
230
409
  ```xml
231
410
  <note>
232
- <content textType="body">
411
+ <content autoFit="normal-auto-fit" textType="body">
233
412
  <p>这是演讲者备注。</p>
234
413
  </content>
235
414
  </note>
236
415
  ```
237
416
 
417
+ ## 完整示例
418
+
419
+ ```xml
420
+ <?xml version="1.0" encoding="UTF-8"?>
421
+ <presentation xmlns="http://www.larkoffice.com/sml/2.0" width="960" height="540">
422
+ <title>季度报告</title>
423
+ <theme>
424
+ <textStyles>
425
+ <title fontFamily="思源黑体" fontSize="54" fontColor="rgba(0, 0, 0, 1)"/>
426
+ <body fontFamily="思源黑体" fontSize="18" fontColor="rgba(43, 47, 54, 1)"/>
427
+ </textStyles>
428
+ </theme>
429
+ <slide>
430
+ <style>
431
+ <fill>
432
+ <fillColor color="rgb(245, 245, 245)"/>
433
+ </fill>
434
+ </style>
435
+ <data>
436
+ <shape type="text" topLeftX="80" topLeftY="72" width="760" height="100">
437
+ <content textType="title">
438
+ <p>2024 年第一季度报告</p>
439
+ </content>
440
+ </shape>
441
+ <shape type="text" topLeftX="80" topLeftY="200" width="520" height="180">
442
+ <content textType="body">
443
+ <p>核心指标</p>
444
+ <ul>
445
+ <li><p>用户增长:+25%</p></li>
446
+ <li><p>收入增长:+30%</p></li>
447
+ <li><p>市场份额:15%</p></li>
448
+ </ul>
449
+ </content>
450
+ </shape>
451
+ <shape type="rect" topLeftX="660" topLeftY="180" width="180" height="140">
452
+ <fill>
453
+ <fillColor color="rgba(100, 149, 237, 0.25)"/>
454
+ </fill>
455
+ <border color="rgb(100, 149, 237)" width="2"/>
456
+ </shape>
457
+ </data>
458
+ <note>
459
+ <content textType="body">
460
+ <p>讲到增长率时补充样本范围。</p>
461
+ </content>
462
+ </note>
463
+ </slide>
464
+ </presentation>
465
+ ```
466
+
467
+ ## 最佳实践
468
+
469
+ 1. 始终带上命名空间 `xmlns="http://www.larkoffice.com/sml/2.0"`
470
+ 2. 用 `shape type="text"` + `content` 表达页面文本
471
+ 3. 用 `topLeftX` / `topLeftY`、`startX` / `startY` 等 schema 中定义的属性名
472
+ 4. 优先使用 `rgb` / `rgba` 颜色格式;渐变必须使用 `rgba()` 且带百分比停靠点
473
+ 5. 特殊字符按 XML 规则转义
474
+ 6. 标准 16:9 页面建议使用 `width="960"` 和 `height="540"`
475
+
238
476
  ## 详细参考
239
477
 
240
478
  - [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml)
241
- - [xml-format-guide.md](xml-format-guide.md)
242
- - [examples.md](examples.md)
243
- - [slides_demo.xml](slides_demo.xml)
479
+ - [slides_chart_demo.xml](slides_chart_demo.xml)
244
480
 
245
481
  ## Schema 版本信息
246
482