From ba20f354ed7131c8cec0911df4526ec25ff45beb Mon Sep 17 00:00:00 2001 From: zhanghuanxu Date: Tue, 7 Jul 2026 19:22:30 +0800 Subject: [PATCH] feat:simplify quick-ref --- skills/lark-slides/references/examples.md | 261 ------------------ skills/lark-slides/references/slides_demo.xml | 226 --------------- .../references/xml-schema-quick-ref.md | 2 - 3 files changed, 489 deletions(-) delete mode 100644 skills/lark-slides/references/examples.md delete mode 100644 skills/lark-slides/references/slides_demo.xml diff --git a/skills/lark-slides/references/examples.md b/skills/lark-slides/references/examples.md deleted file mode 100644 index b85394b09..000000000 --- a/skills/lark-slides/references/examples.md +++ /dev/null @@ -1,261 +0,0 @@ -# 完整操作示例 - -本文档提供与 CLI schema 一致的调用示例,XML 内容均遵循 [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml)。 - -> **重要**:创建 PPT 请优先使用 `slides +create`;实际页面内容请使用 `xml_presentation.slide.create` 逐页添加。 - -## 目录 - -- [示例 1: 使用 Shortcut 创建空白演示文稿](#示例-1-使用-shortcut-创建空白演示文稿) -- [示例 2: 创建后添加第一页](#示例-2-创建后添加第一页) -- [示例 3: 读取 XML 内容](#示例-3-读取-xml-内容) -- [示例 4: 在指定页面前插入新幻灯片](#示例-4-在指定页面前插入新幻灯片) -- [示例 5: 删除幻灯片](#示例-5-删除幻灯片) -- [示例 6: 从文件读取 XML 后添加页面](#示例-6-从文件读取-xml-后添加页面) -- [示例 7: +replace-slide + block_insert 给已有页加图](#示例-7-replace-slide--block_insert-给已有页加图) -- [示例 8: +replace-slide + block_replace 替换一个块](#示例-8-replace-slide--block_replace-替换一个块) - -## 示例 1: 使用 Shortcut 创建空白演示文稿 - -```bash -lark-cli slides +create --title "项目汇报" -``` - -预期返回结构: - -```json -{ - "data": { - "xml_presentation_id": "slides_example_presentation_id", - "title": "项目汇报", - "revision_id": 1 - } -} -``` - -## 示例 2: 创建后添加第一页 - -```bash -PRESENTATION_ID=$(lark-cli slides +create --title "季度复盘" | jq -r '.data.xml_presentation_id') - -lark-cli slides xml_presentation.slide create --as user --params "{\"xml_presentation_id\":\"$PRESENTATION_ID\"}" --data '{ - "slide": { - "content": "

2024 Q3 季度复盘

关键结论

  • 收入增长 30%

  • 重点项目全部上线

  • 用户满意度持续提升

讲述时先给结论,再补充数据。

" - } -}' -``` - -## 示例 3: 读取 XML 内容 - -```bash -lark-cli slides xml_presentations get --as user --params '{ - "xml_presentation_id": "slides_example_presentation_id" -}' -``` - -提取 XML 内容: - -```bash -lark-cli slides xml_presentations get --as user --params '{ - "xml_presentation_id": "slides_example_presentation_id" -}' | jq -r '.data.xml_presentation.content' -``` - -预期返回结构: - -```json -{ - "code": 0, - "data": { - "xml_presentation": { - "presentation_id": "slides_example_presentation_id", - "revision_id": 3, - "content": "..." - } - }, - "msg": "success" -} -``` - -## 示例 4: 在指定页面前插入新幻灯片 - -```bash -lark-cli slides xml_presentation.slide create --as user --params '{ - "xml_presentation_id": "slides_example_presentation_id" -}' --data '{ - "slide": { - "content": "

新增页面

这是新增页面的正文。

" - }, - "before_slide_id": "sld_before_target" -}' -``` - -预期返回结构: - -```json -{ - "code": 0, - "data": { - "slide_id": "slide_example_id", - "revision_id": 100 - }, - "msg": "success" -} -``` - -## 示例 5: 删除幻灯片 - -```bash -lark-cli slides xml_presentation.slide delete --as user --params '{ - "xml_presentation_id": "slides_example_presentation_id", - "slide_id": "slide_example_id" -}' -``` - -预期返回结构: - -```json -{ - "code": 0, - "data": { - "revision_id": 101 - }, - "msg": "success" -} -``` - -## 示例 6: 从文件读取 XML 后添加页面 - -先准备 `slide.xml`: - -```xml - - - - -

从文件加载

-
-
-
-
-``` - -先创建演示文稿: - -```bash -PRESENTATION_ID=$(lark-cli slides +create --title "从文件添加页面" | jq -r '.data.xml_presentation_id') -``` - -再用 `jq` 组装请求体,从文件添加页面: - -```bash -lark-cli slides xml_presentation.slide create --as user \ - --params "{\"xml_presentation_id\":\"$PRESENTATION_ID\"}" \ - --data "$(jq -n --arg content "$(cat slide.xml)" '{slide:{content:$content}}')" -``` - -## 示例 7: +replace-slide + block_insert 给已有页加图 - -只想在已有页上加一张图、不动其他元素——走 shortcut `+replace-slide`,`block_insert` 追加到页末(或用 `insert_before_block_id` 指定位置)。 - -```bash -PID="slides_example_presentation_id" -SID="slide_example_id" - -# 1. 上传图片拿 file_token -TOKEN=$(lark-cli slides +media-upload --file ./pic.png --presentation "$PID" --as user \ - | jq -r '.data.file_token') - -# 2. block_insert 到页面末尾(省略 insert_before_block_id) -# 注: 是自闭合标签,CLI 不会展开(只有 会被补 ) -lark-cli slides +replace-slide --as user \ - --presentation "$PID" --slide-id "$SID" \ - --parts "$(jq -n --arg token "$TOKEN" \ - '[{action:"block_insert",insertion:("")}]')" -``` - -预期返回: - -```json -{ - "ok": true, - "data": { - "xml_presentation_id": "slides_example_presentation_id", - "slide_id": "slide_example_id", - "parts_count": 1, - "revision_id": 102 - } -} -``` - -## 示例 8: +replace-slide + block_replace 替换一个块 - -已知某块的 3 位 short element ID(从 `slide.get` 返回 XML 里读),整块换掉。`replacement` 根元素的 `id` 会由 CLI 自动注入为 `block_id`,无需手写;若写了 `` 自闭合形式,CLI 也会自动补 ``。 - -```bash -lark-cli slides +replace-slide --as user \ - --presentation slides_example_presentation_id \ - --slide-id slide_example_id \ - --parts '[ - { - "action": "block_replace", - "block_id": "bab", - "replacement": "

新标题

" - } - ]' -# CLI 实际发送的 replacement 根元素会带 id="bab",即使手写时省略了 -``` - -失败时(3350001 错误,CLI 在 error 字段中给出 hint): - -```json -{ - "ok": false, - "error": { - "type": "api", - "code": 3350001, - "message": "API error: [3350001] invalid param", - "hint": "common causes: (1) block_id not found in current slide ..." - } -} -``` - -整批作为原子事务,任一 part 失败则整批不生效;按 `failed_part_index` 定位修正后重发。 - -## 常见处理技巧 - -### 获取最新 revision_id - -```bash -lark-cli slides xml_presentations get --as user --params '{ - "xml_presentation_id": "slides_example_presentation_id" -}' | jq '.data.xml_presentation.revision_id' -``` - -### 批量插入多页 - -```bash -#!/bin/bash - -PRESENTATION_ID="slides_example_presentation_id" - -slides=( - '

页面 1

' - '

页面 2

' -) - -for slide_xml in "${slides[@]}"; do - payload=$(jq -n --arg content "$slide_xml" '{slide:{content:$content}}') - lark-cli slides xml_presentation.slide create --as user --params "{\"xml_presentation_id\":\"$PRESENTATION_ID\"}" --data "$payload" -done -``` - -### 本地校验 XML 基本语法 - -```bash -xmllint --noout presentation.xml -``` - -### 真实示例 - -- [slides_demo.xml](slides_demo.xml) 提供了更完整的页面示例,包含 `theme`、渐变填充、图片、图标和备注内容。 diff --git a/skills/lark-slides/references/slides_demo.xml b/skills/lark-slides/references/slides_demo.xml deleted file mode 100644 index 1c291c5c9..000000000 --- a/skills/lark-slides/references/slides_demo.xml +++ /dev/null @@ -1,226 +0,0 @@ - - - 制造端智能升级 - - - - - - - - - - - - -

- - 时代背景 - -

-
-
- - - - - - 十月革命场景 - - - 列宁演讲油画 - - - 十月革命战斗场面 - - - - - - - - - - - - - - - -

- - 1917 - -

-
-
- - -

- 十月革命 -

-
-
- - -

- 沙皇专制终结,苏维埃政权建立 -

-
-
- - - - - - - - -

- - 1920s - -

-
-
- - -

- 国内战争 -

-
-
- - -

- 革命与反革命的残酷斗争 -

-
-
- - - - - - - - -

- - 1930s - -

-
-
- - -

- 社会主义建设 -

-
-
- - -

- 新经济政策与工业化探索 -

-
-
- - - - - - - -

- 作者:奥斯特洛夫斯基 -

-
-
- - - - - - - -

- 工人家庭出身,投身革命浪潮 -

-
-
- - - - - - - -

- 战场负伤致残,生命陷入黑暗 -

-
-
- - - - - - - -

- 全身瘫痪、双目失明 -

-
-
- - - - - - - -

- 以文学为武器,口述完成创作 -

-
-
- 奥斯特洛夫斯基青年时期 - - - - - -

- 创作动机 -

-
-
- - - - - - - -

- 在双目失明、全身瘫痪的逆境中,奥斯特洛夫斯基以自身经历为蓝本,用顽强的意志口述完成了这部不朽巨著。他将文学创作视为生命的延续和战斗的武器,旨在通过保尔·柯察金的形象,向青年一代传递坚不可摧的革命信念和超越个人痛苦的崇高人生价值观。 -

-
-
-
- - -

各位好,这一页将我们带回《钢铁是怎样炼成的》这部巨著诞生的波澜壮阔的时代。

-

上半部分展示了从1917年十月革命到1930年代苏联社会主义建设的宏大历史画卷。这是一个充满剧烈社会变革和残酷斗争的年代,也是英雄主义和理想主义精神熊熊燃烧的年代。正是这样的背景,孕育了小说的灵魂。

-

下半部分,我们聚焦于作者奥斯特洛夫斯基的个人经历。他的一生,本身就是一部比小说更震撼人心的传奇。从投身革命的青年,到因伤致残的战士,再到与命运抗争的文学巨匠。他的创作动机源于自身不屈的战斗精神,他希望用保尔的故事激励后人,在任何困境中都不要放弃理想,要将有限的生命投入到无限的为人类解放而斗争的事业中去。

-

通过了解这段历史和作者的生平,我们能更深刻地理解《钢铁是怎样炼成的》这部作品的伟大之处。

-
-
-
-
diff --git a/skills/lark-slides/references/xml-schema-quick-ref.md b/skills/lark-slides/references/xml-schema-quick-ref.md index d2f48c36d..ff4473bea 100644 --- a/skills/lark-slides/references/xml-schema-quick-ref.md +++ b/skills/lark-slides/references/xml-schema-quick-ref.md @@ -435,8 +435,6 @@ Mermaid 模式:内容用 `` 包裹,避免 `[`、`>`、`-->` ## 详细参考 - [slides_xml_schema_definition.xml](slides_xml_schema_definition.xml) -- [examples.md](examples.md) -- [slides_demo.xml](slides_demo.xml) - [slides_chart_demo.xml](slides_chart_demo.xml) ## Schema 版本信息