@amaster.ai/pi-lark 0.1.7 → 0.1.9
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 +41 -6
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -4
- package/skills/lark-apps/references/lark-apps-create.md +6 -3
- package/skills/lark-apps/references/lark-apps-db.md +130 -2
- package/skills/lark-apps/references/lark-apps-get.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +1 -1
- package/skills/lark-apps/references/lark-apps-local-dev.md +27 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +1 -1
- package/skills/lark-apps/references/lark-apps-user-id-convert.md +63 -0
- package/skills/lark-base/SKILL.md +155 -159
- package/skills/lark-base/references/{lark-base-role-guide.md → lark-base-advanced-permission-and-role.md} +5 -5
- package/skills/lark-base/references/lark-base-app-block-data-config.md +122 -0
- package/skills/lark-base/references/lark-base-app.md +225 -0
- package/skills/lark-base/references/lark-base-cell-value.md +26 -19
- package/skills/lark-base/references/{dashboard-block-data-config.md → lark-base-dashboard-block-config.md} +37 -5
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +18 -2
- package/skills/lark-base/references/lark-base-dashboard.md +25 -12
- package/skills/lark-base/references/lark-base-data-analysis-pandas.md +93 -0
- package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +120 -0
- package/skills/lark-base/references/lark-base-data-query.md +8 -11
- package/skills/lark-base/references/lark-base-field-create.md +13 -45
- package/skills/lark-base/references/{formula-field-guide.md → lark-base-field-formula.md} +1 -1
- package/skills/lark-base/references/{lookup-field-guide.md → lark-base-field-lookup.md} +1 -1
- package/skills/lark-base/references/{lark-base-field-json.md → lark-base-field-schema.md} +18 -100
- package/skills/lark-base/references/lark-base-field-update.md +13 -51
- package/skills/lark-base/references/lark-base-filter-condition.md +19 -31
- package/skills/lark-base/references/lark-base-record-batch-create.md +5 -1
- package/skills/lark-base/references/lark-base-record-batch-update.md +5 -2
- package/skills/lark-base/references/lark-base-record-query-and-analysis-cloud-sop.md +145 -0
- package/skills/lark-base/references/lark-base-record-query-and-analysis-sop.md +233 -0
- package/skills/lark-base/references/{role-config.md → lark-base-role-config.md} +2 -2
- package/skills/lark-base/references/lark-base-view-set-filter.md +1 -1
- package/skills/lark-base/references/lark-base-workflow-schema.md +2 -2
- package/skills/lark-base/references/{lark-base-workflow-guide.md → lark-base-workflow.md} +1 -1
- package/skills/lark-calendar/SKILL.md +3 -1
- package/skills/lark-calendar/references/lark-calendar-create.md +4 -3
- package/skills/lark-doc/SKILL.md +26 -61
- package/skills/lark-doc/references/genres/business-analysis.md +30 -0
- package/skills/lark-doc/references/genres/data-report.md +32 -0
- package/skills/lark-doc/references/genres/email.md +38 -0
- package/skills/lark-doc/references/genres/execution-plan.md +27 -0
- package/skills/lark-doc/references/genres/formal-doc.md +37 -0
- package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
- package/skills/lark-doc/references/genres/memo-brief.md +25 -0
- package/skills/lark-doc/references/genres/official-redhead.md +73 -0
- package/skills/lark-doc/references/genres/prd.md +26 -0
- package/skills/lark-doc/references/genres/proposal.md +24 -0
- package/skills/lark-doc/references/genres/research-report.md +32 -0
- package/skills/lark-doc/references/genres/retrospective.md +25 -0
- package/skills/lark-doc/references/genres/route-consumer.md +37 -0
- package/skills/lark-doc/references/genres/route-creative.md +36 -0
- package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
- package/skills/lark-doc/references/genres/route-marketing.md +40 -0
- package/skills/lark-doc/references/genres/route-media.md +36 -0
- package/skills/lark-doc/references/genres/route-opinion.md +38 -0
- package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
- package/skills/lark-doc/references/genres/route-platform.md +9 -0
- package/skills/lark-doc/references/genres/route-report.md +10 -0
- package/skills/lark-doc/references/genres/route-workplace.md +17 -0
- package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
- package/skills/lark-doc/references/genres/technical-doc.md +39 -0
- package/skills/lark-doc/references/genres/wechat.md +39 -0
- package/skills/lark-doc/references/genres/weekly-report.md +24 -0
- package/skills/lark-doc/references/genres/white-paper.md +32 -0
- package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
- package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
- package/skills/lark-doc/references/lark-doc-create.md +22 -48
- package/skills/lark-doc/references/lark-doc-fetch.md +80 -92
- package/skills/lark-doc/references/lark-doc-history.md +16 -15
- package/skills/lark-doc/references/lark-doc-md.md +5 -1
- package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
- package/skills/lark-doc/references/lark-doc-script.md +76 -0
- package/skills/lark-doc/references/lark-doc-update.md +73 -221
- package/skills/lark-doc/references/lark-doc-whiteboard.md +5 -9
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +17 -12
- package/skills/lark-doc/references/lark-doc-xml.md +38 -167
- package/skills/lark-drive/SKILL.md +11 -7
- package/skills/lark-drive/references/lark-drive-apply-permission.md +1 -1
- package/skills/lark-drive/references/lark-drive-copy.md +87 -0
- package/skills/lark-drive/references/lark-drive-download.md +29 -2
- package/skills/lark-drive/references/lark-drive-export.md +4 -0
- package/skills/lark-drive/references/lark-drive-member-remove.md +59 -0
- package/skills/lark-drive/references/lark-drive-preview.md +21 -2
- package/skills/lark-drive/references/lark-drive-push.md +5 -1
- package/skills/lark-drive/references/lark-drive-search.md +2 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +3 -0
- package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
- package/skills/lark-event/SKILL.md +7 -4
- package/skills/lark-event/references/lark-event-vc.md +8 -2
- package/skills/lark-im/SKILL.md +14 -9
- package/skills/lark-im/references/lark-im-chat-list.md +9 -2
- package/skills/lark-im/references/lark-im-chat-members-list.md +7 -4
- package/skills/lark-im/references/lark-im-chat-messages-list.md +10 -3
- package/skills/lark-im/references/lark-im-chat-search.md +9 -2
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +2 -2
- package/skills/lark-im/references/lark-im-feed-group-list.md +2 -2
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
- package/skills/lark-im/references/lark-im-flag-list.md +2 -2
- package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
- package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
- package/skills/lark-im/references/lark-im-messages-search.md +4 -5
- package/skills/lark-im/references/lark-im-threads-messages-list.md +8 -4
- package/skills/lark-mail/references/lark-mail-triage.md +19 -4
- package/skills/lark-minutes/SKILL.md +12 -6
- package/skills/lark-minutes/references/lark-minutes-apply-permission.md +95 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +7 -6
- package/skills/lark-minutes/references/lark-minutes-download.md +4 -2
- package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
- package/skills/lark-note/SKILL.md +13 -9
- package/skills/lark-note/references/lark-note-detail.md +5 -2
- package/skills/lark-note/references/lark-note-transcript.md +2 -0
- package/skills/lark-shared/SKILL.md +39 -3
- package/skills/lark-sheets/SKILL.md +83 -82
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +13 -58
- package/skills/lark-sheets/references/lark-sheets-chart.md +2 -1
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +5 -5
- package/skills/lark-sheets/references/lark-sheets-read-data.md +80 -6
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +21 -10
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-workbook.md +4 -3
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -12
- package/skills/lark-sheets/scripts/lark_detect_subtables.py +593 -0
- package/skills/lark-sheets/scripts/lark_inspect_workbook.py +188 -0
- package/skills/lark-sheets/scripts/lark_profile_table.py +614 -0
- package/skills/lark-sheets/scripts/lark_sheet_range.py +176 -0
- package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +184 -0
- package/skills/lark-sheets/scripts/sheets_df.py +21 -3
- package/skills/lark-slides/SKILL.md +64 -81
- package/skills/lark-slides/references/cli/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/cli/lark-slides-create.md +176 -0
- package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/cli/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/cli/lark-slides-media-upload.md +103 -0
- package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +259 -0
- package/skills/lark-slides/references/cli/lark-slides-screenshot.md +115 -0
- package/skills/lark-slides/references/cli/lark-slides-update-slide.md +163 -0
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +110 -0
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +188 -0
- package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +157 -0
- package/skills/lark-slides/references/iconpark-index.json +5 -41901
- package/skills/lark-slides/references/iconpark.md +3 -44
- package/skills/lark-slides/references/lark-slides-add-slide.md +5 -0
- package/skills/lark-slides/references/lark-slides-create.md +3 -162
- package/skills/lark-slides/references/lark-slides-delete-slide.md +5 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +3 -142
- package/skills/lark-slides/references/lark-slides-history.md +3 -130
- package/skills/lark-slides/references/lark-slides-media-upload.md +3 -124
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +3 -83
- package/skills/lark-slides/references/lark-slides-replace-slide.md +3 -235
- package/skills/lark-slides/references/lark-slides-screenshot.md +3 -95
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -108
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +3 -186
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +3 -132
- package/skills/lark-slides/references/planning-layer.md +1 -1
- package/skills/lark-slides/references/slides_chart_demo.xml +5 -1416
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3 -3468
- package/skills/lark-slides/references/troubleshooting.md +3 -61
- package/skills/lark-slides/references/validation-checklist.md +3 -154
- package/skills/lark-slides/references/workflow/error-handling.md +62 -0
- package/skills/lark-slides/references/workflow/slides-editing.md +143 -0
- package/skills/lark-slides/references/workflow/template-editing.md +85 -0
- package/skills/lark-slides/references/workflow/validation-xml.md +156 -0
- package/skills/lark-slides/references/xml/iconpark-index.json +37458 -0
- package/skills/lark-slides/references/xml/iconpark.md +46 -0
- package/skills/lark-slides/references/xml/slides_chart_demo.xml +1415 -0
- package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +3514 -0
- package/skills/lark-slides/references/xml/xml-schema-quick-ref.md +497 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +3 -483
- package/skills/lark-slides/scripts/iconpark_tool.py +1 -1
- package/skills/lark-slides/scripts/sxsd_validator.py +154 -10
- package/skills/lark-slides/scripts/xml_lint.py +2989 -0
- package/skills/lark-slides/scripts/xml_lint_test.py +4720 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +3 -2691
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +5 -3788
- package/skills/lark-task/SKILL.md +12 -0
- package/skills/lark-task/references/lark-task-create.md +3 -1
- package/skills/lark-vc/SKILL.md +15 -5
- package/skills/lark-vc/references/lark-vc-detail.md +11 -6
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-events.md → lark-vc/references/lark-vc-meeting-events.md} +121 -20
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-list-active.md → lark-vc/references/lark-vc-meeting-list-active.md} +2 -2
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-message-send.md → lark-vc/references/lark-vc-meeting-message-send.md} +3 -3
- package/skills/lark-vc/references/lark-vc-recording.md +8 -6
- package/skills/lark-vc/references/vc-domain-boundaries.md +8 -1
- package/skills/lark-vc-agent/SKILL.md +24 -9
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +2 -2
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +2 -2
- package/skills/lark-whiteboard/SKILL.md +15 -8
- package/skills/lark-whiteboard/references/lark-whiteboard-export.md +4 -3
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +4 -4
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +19 -17
- package/skills/lark-whiteboard/routes/dsl.md +8 -2
- package/skills/lark-whiteboard/routes/mermaid.md +1 -1
- package/skills/lark-whiteboard/routes/svg-edit.md +5 -2
- package/skills/lark-whiteboard/routes/svg.md +3 -1
- package/skills/lark-whiteboard/scenes/mention.md +71 -0
- package/skills/lark-wiki/SKILL.md +8 -4
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +5 -19
- package/skills/lark-wiki/references/lark-wiki-node-create.md +19 -2
- package/skills/lark-wiki/references/lark-wiki-node-get.md +15 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +1 -1
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +0 -210
- package/skills/lark-base/references/lark-base-data-query-guide.md +0 -61
- package/skills/lark-base/references/lark-base-record-upsert.md +0 -63
- package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
- package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
- package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
- package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +0 -219
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -126
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# `docs +script`
|
|
2
|
+
|
|
3
|
+
## 脚本列表
|
|
4
|
+
|
|
5
|
+
| `--command` | 用途 |
|
|
6
|
+
|-|-|
|
|
7
|
+
| `init-draft` | 创建带 Presentation Decision 基线的独占工作区,并预留尚不存在的 XML 路径。 |
|
|
8
|
+
| `parse` | 解析本地或在线文档,返回画像并检查决策与资源。 |
|
|
9
|
+
|
|
10
|
+
每个脚本只使用其小节列出的专用参数;所有脚本均可使用文末的通用参数。
|
|
11
|
+
|
|
12
|
+
## `init-draft`
|
|
13
|
+
|
|
14
|
+
### 参数
|
|
15
|
+
|
|
16
|
+
| 参数 | 必填 | 用法 |
|
|
17
|
+
|-|-|-|
|
|
18
|
+
| `--command init-draft` | 是 | 选择本脚本。 |
|
|
19
|
+
| `--presentation-decision` | 是 | 完整决策 JSON;接受内联 JSON、`@./decision.json` 形式的 CWD 下相对路径或 `-`(stdin)。 |
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
lark-cli docs +script --command init-draft \
|
|
23
|
+
--presentation-decision '<完整 Presentation Decision JSON>' \
|
|
24
|
+
--format json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`data` 的结构如下;实际随机段为 8 位十六进制字符:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"workspace": "draft_a1b2c3d4_folder",
|
|
32
|
+
"draft_path": "draft_a1b2c3d4_folder/draft.xml",
|
|
33
|
+
"tip": "The workspace directory has been created successfully. draft_path points to a new XML file that does not exist yet. Create and write the file directly without reading it first."
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- 在生成正文前执行;不要自行创建工作目录或决策文件。CLI 固定生成 `draft_<8位十六进制字符>_folder/draft.xml`,以返回的实际路径为准。
|
|
38
|
+
- 决策必须是单个 JSON 对象,包含 `audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode` 和 `visual_plan`。`presentation_mode` 取 `formal|normal|rich`;`genre_contract`、`adapter` 使用固定短名、`"none"` 或 `null`。
|
|
39
|
+
- `visual_plan` 包含非空 `reason` 和 `blocks` 数组;每项为 `{type,min_count,purpose}`,`type` 不重复,`min_count` 为正整数。按本 Skill 创建文档时,`blocks` 只对 `whiteboard`、`img`、`html5-block` 设置最低数量,其他表达按内容需要使用但不设数量约束;三类均无需约束时写 `[]`。CLI 为外部决策兼容 `type: "list"`,检查时将 `<ul>` 与 `<ol>` 的数量相加。仅有字数要求时添加 `word_count: {min,max}`;未指定的一侧写 `null`,至少一侧为正整数,且 `min <= max`。
|
|
40
|
+
- 返回 `data.workspace`(已创建的随机工作区)、`data.draft_path`(可直接写入的 XML 路径)和英文操作提示 `data.tip`。工作区及其中的 `.presentation-decision.json` 已存在,但 XML 尚不存在;遵循提示直接使用文件创建/写入能力在 `draft_path` 写入完整 XML,首次写入前不要读取该路径。
|
|
41
|
+
- 后续始终使用 `draft_path`,不得另建 XML、复用其他任务的路径或修改工作区中的 `.presentation-decision.json`;使用完后精确删除 `workspace`。
|
|
42
|
+
|
|
43
|
+
## `parse`
|
|
44
|
+
|
|
45
|
+
### 参数
|
|
46
|
+
|
|
47
|
+
| 参数 | 必填 | 用法 |
|
|
48
|
+
|-|-|-|
|
|
49
|
+
| `--command parse` | 是 | 选择本脚本。 |
|
|
50
|
+
| `--content` | 二选一 | 本地 XML 的字面内容、`@./document.xml` 形式的 CWD 下相对路径或 `-`(stdin)。 |
|
|
51
|
+
| `--doc` | 二选一 | 在线 Docx/Wiki URL 或 token;与 `--content` 互斥。 |
|
|
52
|
+
| `--presentation-decision` | 否 | 用于检查当前输入的完整决策 JSON;支持内联、`@./decision.json` 形式的 CWD 下相对路径或 `-`。 |
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
lark-cli docs +script --command parse --content "@./document.xml" --format json
|
|
56
|
+
lark-cli docs +script --command parse --doc "<Docx/Wiki URL 或 token>" --format json
|
|
57
|
+
lark-cli docs +script --command parse --content "@./document.xml" --presentation-decision '<JSON>' --format json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- `--content` 与 `--presentation-decision` 同时使用时,最多一个参数读取 stdin。
|
|
61
|
+
- 决策必须包含 `audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode` 和 `visual_plan`;`presentation_mode` 取 `formal|normal|rich`。`visual_plan` 包含非空 `reason` 和不重复的 `{type,min_count,purpose}` 数组;兼容的 `list` 约束按 `<ul>` 与 `<ol>` 的合计数量检查。仅有字数要求时添加合法的 `word_count: {min,max}`。
|
|
62
|
+
- 使用 `--content "@./<init-draft 返回的 data.draft_path>"` 时自动加载保存的决策;显式 `--presentation-decision` 优先。
|
|
63
|
+
- `--doc` 需要 `docx:document:readonly`;`--content` 不调用 OpenAPI。
|
|
64
|
+
- 返回 `data.assessment.status`、`data.profile` 和按需出现的 `data.diagnostics[]`;profile 包含 `word_count`、`char_count`、`block_count` 和 `blocks[]`。顶层 `ok` 只表示命令是否成功执行。画像、决策或资源预检未通过时,命令仍以 `ok:true` 和退出码 0 返回,但 `assessment.status` 为 `failed`;每条 diagnostic 提供 `severity`、稳定 `code`、`msg`、可选 `expected` / `actual` 和 `suggested`。同一原因失败的远程图片合并为一条 diagnostic,并在 `image_indices[]` 中列出图片序号,避免重复提示。修复后重新解析,直到 `assessment.status` 为 `passed`。
|
|
65
|
+
- `parse` 不是 XML/SDK schema validator。成功且无 warning 也不保证服务端接受;写入前仍须按 XML 规则复查。
|
|
66
|
+
|
|
67
|
+
## 所有脚本通用参数
|
|
68
|
+
|
|
69
|
+
| 参数 | 用法 |
|
|
70
|
+
|-|-|
|
|
71
|
+
| `--as user|bot` | 选择身份。 |
|
|
72
|
+
| `--dry-run` | 只返回执行计划,不联网、解析或写文件。 |
|
|
73
|
+
| `--format` | 输出格式:`json|pretty|table|ndjson|csv`;模型使用默认的 `json`。 |
|
|
74
|
+
| `--json` | `--format json` 的别名。 |
|
|
75
|
+
| `--jq` / `-q` | 裁剪 JSON;不得与非 JSON 格式同时使用。 |
|
|
76
|
+
| `-h` / `--help` | 查看帮助。 |
|
|
@@ -1,174 +1,82 @@
|
|
|
1
|
-
|
|
2
1
|
# docs +update(更新飞书云文档)
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
> 1. [`lark-doc-xml.md`](lark-doc-xml.md) — XML 语法规则(使用 Markdown 格式时改读 [`lark-doc-md.md`](lark-doc-md.md))
|
|
6
|
-
> 2. [`lark-doc-style.md`](style/lark-doc-style.md) — 写作原则(默认段落、按体裁、组件克制)
|
|
7
|
-
> 3. [`lark-doc-update-workflow.md`](style/lark-doc-update-workflow.md) — 改写增强工作流(Code-Act Loop、单 Agent 串行改写)
|
|
8
|
-
>
|
|
9
|
-
> **未读完以上文件就生成内容会导致格式错误。**
|
|
10
|
-
|
|
11
|
-
通过八种指令精确更新飞书云文档。支持字符串级别和 block 级别的操作。
|
|
12
|
-
|
|
13
|
-
> **⚠️ 格式选择规则:**
|
|
14
|
-
> - **局部精修**(`str_replace` / `block_insert_after` / `block_replace` / `block_delete` / `block_move_after`):优先使用 XML(默认)。XML 能稳定表达 block 结构和样式,精准编辑更可控;不要因为 Markdown 写起来更简单就自行切换。
|
|
15
|
-
> - **整段写入**(`append` / `overwrite`):XML 和 Markdown 都可以。用户提供 `.md` 本地文件或明确要求 Markdown 时直接用 Markdown;否则默认 XML。
|
|
16
|
-
>
|
|
17
|
-
> **Markdown 局限 & block ID 前提:** Markdown 不携带 block ID,也无样式(颜色、对齐、callout 等)。需要按 block ID 定位(`block_*` 指令的 `--block-id`)时,先 `docs +fetch --detail with-ids` **配合 `--scope`(`outline` / `range` / `keyword` / `section`)局部获取**目标段落,不要全量 fetch。拿到 block ID 后 `--content` 仍可用 Markdown,只是写入内容不带样式。
|
|
18
|
-
|
|
19
|
-
## 参数
|
|
20
|
-
|
|
21
|
-
| 参数 | 必填 | 说明 |
|
|
22
|
-
|------|------|------|
|
|
23
|
-
| `--doc` | 是 | 文档 URL 或 token |
|
|
24
|
-
| `--command` | 是 | 操作指令(见下方指令速查表) |
|
|
25
|
-
| `--doc-format` | 否 | 内容格式:`xml`(默认,始终优先使用)\| `markdown`(仅用户明确要求时) |
|
|
26
|
-
| `--content` | 视指令 | 写入内容(`str_replace` 传空字符串可实现删除) |
|
|
27
|
-
| `--reference-map` | 否 | 结构化 `reference_map` JSON object;必须与 `--content` 一起使用。普通写入优先把结构写在正文里;该参数主要用于保留或回放已有 `document.reference_map`。支持直接 JSON、`@reference-map.json`(相对路径)或 `-` 从 stdin 读取。 |
|
|
28
|
-
| `--pattern` | 视指令 | 匹配文本(str_replace) |
|
|
29
|
-
| `--block-id` | 视指令 | 目标 block ID(block_* 操作),逗号分隔可批量删除,-1 表示末尾 |
|
|
30
|
-
| `--src-block-ids` | 视指令 | 源 block ID(逗号分隔),用于 block_copy_insert_after / block_move_after |
|
|
31
|
-
| `--revision-id` | 否 | 基准版本号,-1 = 最新(默认 `-1`) |
|
|
32
|
-
|
|
33
|
-
## 指令速查表
|
|
34
|
-
|
|
35
|
-
| 指令 | 说明 | 必需参数 |
|
|
36
|
-
|------|------|----------|
|
|
37
|
-
| `str_replace` | 全文文本查找替换(replacement 支持富文本标签;`--content` 传空字符串即为删除) | `--pattern` `--content` |
|
|
38
|
-
| `block_insert_after` | 在指定 block 之后插入新内容 | `--block-id` `--content` |
|
|
39
|
-
| `block_copy_insert_after` | 复制源 block 并插入到锚点之后(源块不变) | `--block-id` `--src-block-ids` |
|
|
40
|
-
| `block_replace` | 替换指定 block(同一 block 仅限一次) | `--block-id` `--content` |
|
|
41
|
-
| `block_delete` | 删除指定 block(逗号分隔可批量) | `--block-id` |
|
|
42
|
-
| `overwrite` | ⚠️ 清空文档后全文重写(可能丢失图片、评论) | `--content` |
|
|
43
|
-
| `append` | ⚠️ 在文档**末尾**追加内容(等价于 `block_insert_after --block-id -1`)。**不适用于逐章填充**——逐章写入请用 `block_insert_after` 并指定对应标题的 `--block-id` | `--content` |
|
|
44
|
-
| `block_move_after` | 移动已有 block 到指定位置 | `--block-id` `--src-block-ids` |
|
|
3
|
+
使用文本或 block 指令精确更新飞书云文档。默认使用 XML;仅在用户明确要求或必须保真 Markdown 时使用 Markdown。
|
|
45
4
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
写操作后不要默认复用之前 fetch 到的 block ID:
|
|
49
|
-
|
|
50
|
-
- `overwrite` / `block_replace` / `block_delete`:受影响旧 ID 失效,继续 block 级操作前重新 fetch
|
|
51
|
-
- `block_insert_after` / `append` / `block_copy_insert_after`:锚点 / 源 ID 通常保留,新内容是新 ID;要操作新内容先重新 fetch
|
|
52
|
-
- `block_move_after`:被移动 ID 通常保留,但位置、章节、range 语义变化;后续依赖位置时重新 fetch
|
|
53
|
-
- `str_replace`:简单行内替换通常不改变 ID;跨行 / 大段替换后如继续 block 级操作,先重新 fetch
|
|
54
|
-
|
|
55
|
-
## 指令示例
|
|
56
|
-
|
|
57
|
-
### str_replace — 全文文本替换
|
|
58
|
-
|
|
59
|
-
> **匹配范围:**
|
|
60
|
-
> - **XML 模式(默认)**:`--pattern` 只支持**行内匹配**,不能跨 block / 跨段落匹配。涉及整段或多 block 的改动,请改用 `block_replace`。
|
|
61
|
-
> - **Markdown 模式**(`--doc-format markdown`):`--pattern` 同时支持**行内和跨行匹配**,可以用多行字符串匹配并替换一整段内容。
|
|
62
|
-
> - 还支持**`前缀...后缀` 省略号语法**:用 `...`(三个英文句点)串联起始与结束片段,匹配从前缀到后缀之间的全部内容(含中间被省略部分)。适合一段很长、但首尾特征明显的文本,避免把整段都塞进 `--pattern`。
|
|
63
|
-
> - 前缀、后缀本身仍遵循 Markdown 转义规则;省略号中间的内容**会被替换**为 `--content` 的完整文本,不会被保留。
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
# 简单文本替换
|
|
67
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
68
|
-
--pattern "张三" --content "李四"
|
|
69
|
-
|
|
70
|
-
# 替换为富文本(加粗 + 链接)
|
|
71
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
72
|
-
--pattern "旧链接" --content '<b>新链接</b> <a href="https://example.com">点击查看</a>'
|
|
73
|
-
|
|
74
|
-
# 仅当用户明确要求时才使用 Markdown
|
|
75
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
76
|
-
--doc-format markdown --pattern "旧内容" --content "新内容"
|
|
77
|
-
|
|
78
|
-
# Markdown 模式下支持跨行匹配(--pattern 与 --content 都需要真实换行;"..."/'...' 里的 \n 是字面量)
|
|
79
|
-
# 多行内容推荐 heredoc 或 --content @file.md,避免 shell 转义踩坑
|
|
80
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
81
|
-
--doc-format markdown \
|
|
82
|
-
--pattern "$(printf '## 旧标题\n\n第一段原文\n\n第二段原文')" \
|
|
83
|
-
--content - <<'EOF'
|
|
84
|
-
## 新标题
|
|
85
|
-
|
|
86
|
-
改写后的第一段
|
|
87
|
-
|
|
88
|
-
改写后的第二段
|
|
89
|
-
EOF
|
|
90
|
-
|
|
91
|
-
# Markdown 模式下使用 `前缀...后缀` 省略号匹配首尾特征明显的大段内容
|
|
92
|
-
# 下例会把「## 旧标题」到「结束语。」之间的所有内容整体替换
|
|
93
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
94
|
-
--doc-format markdown \
|
|
95
|
-
--pattern "## 旧标题...结束语。" \
|
|
96
|
-
--content - <<'EOF'
|
|
97
|
-
## 新标题
|
|
98
|
-
|
|
99
|
-
重写后的正文...
|
|
100
|
-
|
|
101
|
-
新的结束语。
|
|
102
|
-
EOF
|
|
103
|
-
|
|
104
|
-
# 删除文本:--content 传空字符串即可
|
|
105
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
106
|
-
--pattern "废弃的内容" --content ""
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### block_insert_after — 在指定 block 之后插入
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
lark-cli docs +update --doc "<doc_id>" --command block_insert_after \
|
|
113
|
-
--block-id "目标 block_id" \
|
|
114
|
-
--content '<h2>新章节</h2><ul><li>要点 1</li><li>要点 2</li></ul>'
|
|
115
|
-
```
|
|
5
|
+
写入前必须按 `--doc-format` 读取对应格式参考:`xml` 读取 [`lark-doc-xml.md`](lark-doc-xml.md),`markdown` 读取 [`lark-doc-md.md`](lark-doc-md.md);
|
|
116
6
|
|
|
117
|
-
|
|
7
|
+
## 常用示例
|
|
118
8
|
|
|
119
9
|
```bash
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
--content '<p>替换后的段落内容</p>'
|
|
123
|
-
```
|
|
10
|
+
# 先定位内容并获取最新 block ID
|
|
11
|
+
lark-cli docs +fetch --doc "文档URL或token" --scope keyword --keyword "key1|key2" --detail with-ids
|
|
124
12
|
|
|
125
|
-
|
|
13
|
+
# 替换文本;--content "" 可删除文本
|
|
14
|
+
lark-cli docs +update --doc "xx" --command str_replace --pattern "旧内容" --content "新内容"
|
|
126
15
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
lark-cli docs +update --doc "
|
|
130
|
-
--block-id "block_id_1,block_id_2,block_id_3"
|
|
131
|
-
```
|
|
16
|
+
# 替换单个 block,或同父连续范围内的 block
|
|
17
|
+
lark-cli docs +update --doc "xx" --command block_replace --block-id blkTarget --content '<p>新段落</p>'
|
|
18
|
+
lark-cli docs +update --doc "xx" --command block_replace --start-block-id blkFirst --end-block-id blkLast --content '<p></p>'
|
|
132
19
|
|
|
133
|
-
|
|
20
|
+
lark-cli docs +update --doc "xx" --command block_insert_after --block-id blkAnchor --content '<h2>新章节</h2><p>章节内容</p>'
|
|
134
21
|
|
|
135
|
-
|
|
136
|
-
lark-cli docs +update --doc "
|
|
137
|
-
|
|
22
|
+
# 删除单个 block 或范围内的 block
|
|
23
|
+
lark-cli docs +update --doc "xx" --command block_delete --block-id blkA
|
|
24
|
+
lark-cli docs +update --doc "xx" --command block_delete --start-block-id blkFirst --end-block-id blkLast
|
|
138
25
|
```
|
|
139
26
|
|
|
140
|
-
|
|
27
|
+
## 推荐流程
|
|
141
28
|
|
|
142
|
-
|
|
29
|
+
1. **Observe(读取现状)**:先 `docs +fetch` 读取当前文档状态,并按意图选择最小范围。
|
|
30
|
+
- 改某一节或大文档:先 `--scope outline --max-depth 2` 找章节,再 `--scope section --start-block-id <标题id> --detail with-ids`
|
|
31
|
+
- 精确跨节区间:用 `--scope range --start-block-id xxx --end-block-id yyy`
|
|
32
|
+
- 只有模糊关键词:用 `--scope keyword --keyword "key1|key2" --context-before 1 --context-after 1 --detail with-ids`
|
|
33
|
+
- 明确整篇重构才读 `--detail with-ids` 全文;只读摘要或确认事实时用更轻的 fetch
|
|
34
|
+
2. **Diagnose(诊断问题)**:判断用户目标、当前结构、语气、重复、断流、事实口径和需要保留的资源;识别哪些 block 必须原样保留。
|
|
35
|
+
3. **Patch Plan(制定局部计划)**:把修改拆成最小安全操作:简单行内文本替换用 `str_replace`,但它不支持资源替换;单个 block 用一个 `--block-id`,同一直接父节点下的连续 block 用 `--start-block-id`/`--end-block-id`。连续范围适用于 `block_replace` 和 `block_delete`。整段/整块重写用 `block_replace`;增补章节用 `block_insert_after`;删冗余用 `block_delete`;调整顺序用 `block_move_after`。
|
|
36
|
+
4. **Patch(精确修改)**:按 block / section 执行局部命令。替换内容必须符合目标父容器的结构;例如替换列表项范围时使用 `<li>...</li>`。保护 `<cite>`、`<img>`、`<source>`、`<whiteboard>`、`<sheet>`、`<bitable>`、`<synced_reference>` 等 token 化内容,不要改成纯文本或占位符。同一 block 的多处修改合并成一次 `block_replace`。
|
|
37
|
+
5. **Verify(fetch 验证)**:每轮写操作后按影响范围重新 fetch,检查用户要求、结构、语气、事实、资源块和 block ID 是否符合预期;不满足就基于最新 fetch 结果继续 Diagnose / Patch,不要沿用上一轮 block ID。
|
|
143
38
|
|
|
144
|
-
|
|
145
|
-
lark-cli docs +update --doc "<doc_id>" --command append \
|
|
146
|
-
--content '<h2>新增章节</h2><p>追加的内容</p>'
|
|
147
|
-
```
|
|
39
|
+
除非用户明确要求完全重建,或原文已无保留价值,否则不要使用 `overwrite`;它可能丢失评论和暂不支持的资源。
|
|
148
40
|
|
|
149
|
-
|
|
41
|
+
## 生成 block 直达链接
|
|
150
42
|
|
|
151
|
-
|
|
43
|
+
用户需要某个 block 的直达链接时,只定位 block,不执行文档写操作:
|
|
152
44
|
|
|
153
|
-
|
|
45
|
+
1. 使用局部 `docs +fetch --detail with-ids` 获取目标 `block_id`。
|
|
46
|
+
2. 返回 `文档基础 URL#block_id`;没有 `block_id` 时不得猜测。
|
|
154
47
|
|
|
155
|
-
|
|
156
|
-
# 复制多个块(按顺序插入:anchor → a → b → c)
|
|
157
|
-
lark-cli docs +update --doc "<doc_id>" --command block_copy_insert_after \
|
|
158
|
-
--block-id "锚点 block_id" \
|
|
159
|
-
--src-block-ids "block_a,block_b,block_c"
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### block_move_after — 移动已有 block
|
|
48
|
+
## 参数
|
|
163
49
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
50
|
+
|参数|必填|说明|
|
|
51
|
+
|-|-|-|
|
|
52
|
+
|`--doc`|是|文档 URL 或 token|
|
|
53
|
+
|`--command`|是|更新指令,见下表|
|
|
54
|
+
|`--doc-format`|否|`xml`(默认)或 `markdown`|
|
|
55
|
+
|`--content`|视指令|写入内容;`str_replace` 传空字符串可删除文本|
|
|
56
|
+
|`--pattern`|视指令|`str_replace` 的简单行内匹配文本;不要用于多行、整段或多个 block|
|
|
57
|
+
|`--block-id`|视指令|目标 block ID;`-1` 表示文档末尾,`0` 表示文档开头(仅适用于支持这些锚点的指令)|
|
|
58
|
+
|`--start-block-id` / `--end-block-id`|视指令|`block_replace` / `block_delete` 的同父连续闭区间,必须成对使用,且不能与 `--block-id` 混用;`--start-block-id` 用 `0` 表示从文档开头开始,`--end-block-id` 用 `-1` 表示到文档末尾结束|
|
|
59
|
+
|`--src-block-ids`|视指令|要复制或移动的源 block ID,多个 ID 用逗号分隔|
|
|
60
|
+
|`--reference-map`|否|保留或回放既有 `reference_map`,需与 `--content` 配合;支持 JSON、任务目录内的相对 `@file` 或 stdin `-`|
|
|
61
|
+
|`--revision-id`|否|基准版本号,默认 `-1`(最新版本)|
|
|
62
|
+
|
|
63
|
+
## 指令速查
|
|
64
|
+
|
|
65
|
+
|指令|用途与限制|必需参数|
|
|
66
|
+
|-|-|-|
|
|
67
|
+
|`str_replace`|全文查找替换;支持富文本内的文本替换,但不支持资源替换;涉及多个 block 时建议用 `block_replace`;空 `--content` 表示删除|`--pattern`、`--content`|
|
|
68
|
+
|`block_insert_after`|在指定 block 后插入内容;逐章填充时指定对应标题的 block ID|`--block-id`、`--content`|
|
|
69
|
+
|`block_copy_insert_after`|按 ID 顺序复制源 block,源 block 不变;基础标签均支持,资源块仅支持 `img`、`source`、`whiteboard`、`sheet`、`chat_card`、`sub-page-list`,不支持 `task`、`bitable`、`base_ref`、`synced_reference`、`synced_source`、`okr`|`--block-id`、`--src-block-ids`|
|
|
70
|
+
|`block_replace`|替换单个 block(`--block-id`)或同父连续闭区间(`--start-block-id`/`--end-block-id`);不支持跨容器或反向区间|`--content`,以及 `--block-id` 或 `--start-block-id`+`--end-block-id`|
|
|
71
|
+
|`block_delete`|删除单个 block(`--block-id`)或同父连续闭区间(`--start-block-id`/`--end-block-id`);不支持跨容器或反向区间|`--block-id` 或 `--start-block-id`+`--end-block-id`|
|
|
72
|
+
|`block_move_after`|移动已有 block,支持所有块类型;|`--block-id`、`--src-block-ids`|
|
|
73
|
+
|`append`|仅在文末追加,等价于 `block_insert_after --block-id -1`|`--content`|
|
|
74
|
+
|`overwrite`|清空后重写全文,丢失图片、评论等内容,非必要不使用|`--content`|
|
|
75
|
+
|
|
76
|
+
## 通用安全规则
|
|
77
|
+
|
|
78
|
+
- 每次写操作后都按 block ID 已变化处理。新插入或复制的内容一定使用新 ID;替换、删除和覆盖会使旧 ID 失效;移动会改变章节与 range 语义。
|
|
79
|
+
- 同一 block 有多处修改时,应合并为一次 `block_replace`,避免连续使用旧 ID。
|
|
172
80
|
|
|
173
81
|
## 返回值
|
|
174
82
|
|
|
@@ -178,83 +86,27 @@ lark-cli docs +update --doc "<doc_id>" --command block_move_after \
|
|
|
178
86
|
"identity": "user",
|
|
179
87
|
"data": {
|
|
180
88
|
"document": {
|
|
181
|
-
"revision_id":
|
|
89
|
+
"revision_id": 2,
|
|
182
90
|
"new_blocks": [
|
|
183
91
|
{ "block_id": "blkcnXXXX", "block_type": "whiteboard", "block_token": "boardXXXX" }
|
|
184
92
|
]
|
|
185
93
|
},
|
|
186
94
|
"result": "success",
|
|
187
|
-
"updated_blocks_count":
|
|
188
|
-
"warnings": []
|
|
95
|
+
"updated_blocks_count": 1,
|
|
96
|
+
"warnings": [],
|
|
97
|
+
"tips": ""
|
|
189
98
|
}
|
|
190
99
|
}
|
|
191
100
|
```
|
|
192
101
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
## 典型工作流
|
|
201
|
-
|
|
202
|
-
### 精确 block 级更新
|
|
203
|
-
|
|
204
|
-
1. **获取文档内容和 block ID**:
|
|
205
|
-
```bash
|
|
206
|
-
lark-cli docs +fetch --doc "<doc_id>" --detail with-ids
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
2. **定位目标 block**:从返回的 XML 中找到要修改的 block 及其 `id` 属性
|
|
210
|
-
|
|
211
|
-
3. **执行更新**:
|
|
212
|
-
```bash
|
|
213
|
-
# 替换特定 block
|
|
214
|
-
lark-cli docs +update --doc "<doc_id>" --command block_replace \
|
|
215
|
-
--block-id "blkcnXXXX" --content "<p>新内容</p>"
|
|
216
|
-
|
|
217
|
-
# 在某 block 后插入
|
|
218
|
-
lark-cli docs +update --doc "<doc_id>" --command block_insert_after \
|
|
219
|
-
--block-id "blkcnXXXX" --content "<h2>追加的章节</h2>"
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### 简单文本替换
|
|
223
|
-
|
|
224
|
-
不需要 block ID,直接匹配替换:
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
lark-cli docs +update --doc "<doc_id>" --command str_replace \
|
|
228
|
-
--pattern "v1.0" --content "v2.0"
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
## 画板处理
|
|
232
|
-
|
|
233
|
-
> **`docs +update` 不能直接编辑已有画板的内容。** 本命令只能**新增**画板块;要修改已有画板,先用 `docs +fetch` 取到 `<whiteboard token="...">`,再按 [`lark-doc-whiteboard.md`](lark-doc-whiteboard.md) 启动 SubAgent 读取 [`lark-whiteboard`](../../lark-whiteboard/SKILL.md) 并写入。
|
|
234
|
-
|
|
235
|
-
画板的语法选型与插入示例见 [`lark-doc-xml.md`](lark-doc-xml.md) 与 [`lark-doc-whiteboard.md`](lark-doc-whiteboard.md)。
|
|
236
|
-
|
|
237
|
-
## 最佳实践
|
|
238
|
-
|
|
239
|
-
- **精确操作优于全文覆盖**:使用 `block_replace`/`block_insert_after` 精确修改,避免 `overwrite` 全文覆盖
|
|
240
|
-
- **str_replace 的匹配范围取决于格式**:
|
|
241
|
-
- **XML 模式(默认)**:`--pattern` 只支持**行内**匹配,不支持跨行 / 跨 block。段落、整块或容器级(列表、表格、分栏、引用块等)改动请改用 `block_replace` 指定 block_id 重建。
|
|
242
|
-
- **Markdown 模式**(`--doc-format markdown`):`--pattern` 同时支持**行内和跨行**匹配,还支持 `前缀...后缀` 省略号语法(用 `...` 串联首尾片段匹配一大段内容),可以一次替换多行文本;但仍建议优先按最小片段匹配,跨 block 容器级重写仍优先用 `block_replace`,避免副作用。
|
|
243
|
-
- **保护不可重建的内容**:图片、画板、电子表格等以 token 形式存储,替换时避开这些 block
|
|
244
|
-
- **str_replace 的 replacement 支持富文本**:可以用行内标签 `<b>`、`<a>`、`<cite>`、`<latex>` 等替换普通文本为富文本
|
|
245
|
-
- **同一 block 只能被 replace 一次**:多次修改同一 block 请合并为一次 block_replace
|
|
246
|
-
- **block_delete 支持批量**:用逗号分隔多个 block_id 一次删除
|
|
247
|
-
- **复杂结构重组**:将多个段落转换为 grid / table 等复杂布局时,分步操作比 overwrite 更安全:
|
|
248
|
-
1. 用 `block_insert_after` 在目标位置插入新的富文本结构
|
|
249
|
-
2. 用 `block_delete` 批量删除旧的 block
|
|
250
|
-
3. 这样可以保留文档中其他不相关的内容(图片、评论等)
|
|
251
|
-
- **表达形式**:插入或替换内容时,优先沿用用户要求和已有文档风格;需要结构化表达时可参考 [`lark-doc-style.md`](style/lark-doc-style.md),但不要为了固定丰富度主动添加组件
|
|
102
|
+
|字段|说明|
|
|
103
|
+
|-|-|
|
|
104
|
+
|`result`|`success` \| `partial_success` \| `failed`|
|
|
105
|
+
|`updated_blocks_count`|实际更新的 block 数量|
|
|
106
|
+
|`warnings`|服务端返回的警告列表;即使 `result=success` 也要检查是否存在降级或未完全处理的内容|
|
|
107
|
+
|`tips`|服务端返回的后续处理建议;为空表示没有额外建议,非空本身不表示更新失败|
|
|
108
|
+
|`document.new_blocks`|新增 block;`block_id` 用于后续编辑,资源块的 `block_token` 可交给对应 skill 继续处理|
|
|
252
109
|
|
|
253
|
-
##
|
|
110
|
+
## 需要查文档
|
|
254
111
|
|
|
255
|
-
|
|
256
|
-
- [`lark-doc-style.md`](style/lark-doc-style.md) — 文档写作原则(默认段落、按体裁、组件克制)
|
|
257
|
-
- [`lark-doc-xml.md`](lark-doc-xml.md) — XML 语法规范
|
|
258
|
-
- [`lark-doc-fetch.md`](lark-doc-fetch.md) — 获取文档
|
|
259
|
-
- [`lark-doc-create.md`](lark-doc-create.md) — 创建文档
|
|
260
|
-
- [`lark-doc-media-insert.md`](lark-doc-media-insert.md) — 插入图片/文件到文档
|
|
112
|
+
可查看 [`+fetch`](lark-doc-fetch.md)。
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# lark-doc 画板处理指南
|
|
2
2
|
|
|
3
|
-
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
-
|
|
5
3
|
## 两个 Skill 的职责边界
|
|
6
4
|
|
|
7
5
|
| Skill | 核心职责 | 约束 |
|
|
8
6
|
|-------------------|-----------------------------------------------------------|---------------------------------|
|
|
9
|
-
| `lark-doc` | 识别画板机会、使用 Mermaid/SVG 创建图表、调度 SubAgent
|
|
7
|
+
| `lark-doc` | 识别画板机会、使用 Mermaid/SVG 创建图表、调度 SubAgent、插入简单图表或复杂空白画板 | 简单图可由主 Agent 直接写入;复杂图再隔离到 SubAgent |
|
|
10
8
|
| `lark-whiteboard` | 查询/导出已有画板;复杂图表生成(Mermaid/DSL/SVG 路由、场景选型、渲染验证);写入已有/空白画板 | 仅特别复杂的图表或已有画板更新时由独立 SubAgent 读取 |
|
|
11
9
|
|
|
12
10
|
## 画板适用规则
|
|
@@ -29,11 +27,9 @@
|
|
|
29
27
|
> [!IMPORTANT]
|
|
30
28
|
> ⚠️ **分别对每个图表进行决策**
|
|
31
29
|
|
|
32
|
-
如果有多个位置需要插入图表,你需要根据每个图表的内容**分别决定**采用步骤 2A 还是 2B
|
|
33
|
-
中的方式插入这个图表。在需要插入思维导图、时序图、类图、饼图、甘特图的时候可以插入 mermaid 块,在需要插入其他类型图表时启动
|
|
34
|
-
SubAgent 插入 SVG。
|
|
30
|
+
如果有多个位置需要插入图表,你需要根据每个图表的内容**分别决定**采用步骤 2A 还是 2B。思维导图、时序图、类图、饼图、甘特图可插入 mermaid 块;其他类型图表使用 SVG,简单图由主 Agent 直接写入,复杂图再启动 SubAgent。
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
简单 Mermaid / SVG 图可由主 Agent 直接写入本地 XML;需要专门视觉设计、信息密度较高或容易布局翻车的 SVG,再启动 SubAgent 产出完整片段。
|
|
37
33
|
|
|
38
34
|
### 步骤 2A: 使用 mermaid 插入图表
|
|
39
35
|
|
|
@@ -44,7 +40,7 @@ SubAgent 插入 SVG。
|
|
|
44
40
|
</whiteboard>
|
|
45
41
|
```
|
|
46
42
|
|
|
47
|
-
如果 Mermaid 已在本地文件中,可写成 `<whiteboard type="mermaid" path="
|
|
43
|
+
如果 Mermaid 已在本地文件中,可写成 `<whiteboard type="mermaid" path="@./diagram.mmd"></whiteboard>`;CLI 会在写入前读取文件并展开为内联内容。
|
|
48
44
|
|
|
49
45
|
### 步骤 2B: SubAgent 使用 SVG 插入图表
|
|
50
46
|
|
|
@@ -58,7 +54,7 @@ SubAgent 插入 SVG。
|
|
|
58
54
|
</whiteboard>
|
|
59
55
|
```
|
|
60
56
|
|
|
61
|
-
如果 SVG 已在本地文件中,可写成 `<whiteboard type="svg" path="
|
|
57
|
+
如果 SVG 已在本地文件中,可写成 `<whiteboard type="svg" path="@./diagram.svg"></whiteboard>`;PlantUML 文件同理使用 `<whiteboard type="plantuml" path="@./sequence.puml"></whiteboard>`。
|
|
62
58
|
|
|
63
59
|
Sub Agent 需要携带以下的最小上下文,以及后续的 [SVG 设计 Workflow] 章节指南:
|
|
64
60
|
|
|
@@ -2,9 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
本文件用于补充说明 block XML 扩展能力。常用标签和通用规则见 [`lark-doc-xml.md`](lark-doc-xml.md);后续新增其他 block 说明时可继续追加到本文件。
|
|
4
4
|
|
|
5
|
+
## 拓展标签
|
|
6
|
+
- `<bookmark name="示例站点" href="https://example.com"></bookmark>`
|
|
7
|
+
- `<button action="OpenLink" src="https://example.com">操作按钮</button>`:`action` 可为 `OpenLink`、`DuplicatePage` 或 `FollowPage`;可选 `background-color`、`src`。
|
|
8
|
+
- `<time expire-time="1775916000000" notify-time="1775912400000" should-notify="false">提醒</time>`:使用毫秒时间戳。
|
|
9
|
+
- `<sheet type="blank"/>`:创建空白表格;`<sheet sheet-id="SHEET_ID" token="SPREADSHEET_TOKEN"/>`:复制已有表格。
|
|
10
|
+
- `<task task-id="TASK_GUID"/>`:挂载任务,`task-id` 为任务 GUID。
|
|
11
|
+
- `<chat_card chat-id="CHAT_ID"/>`:挂载聊天卡片。
|
|
12
|
+
- `<sub-page-list/>`:子页面列表块,仅 wiki 文档可插入。
|
|
13
|
+
|
|
14
|
+
|
|
5
15
|
## HTML5 block
|
|
6
16
|
|
|
7
|
-
1. 写入 HTML 内容块时,把完整单文件 HTML 存为本地 `.html` 文件,XML 写 `<html5-block path="
|
|
17
|
+
1. 写入 HTML 内容块时,把完整单文件 HTML 存为本地 `.html` 文件,XML 写 `<html5-block path="@./widget.html"/>`;已有 `data-ref` 时配合 `--reference-map @./reference-map.json`。读取时 `<html5-block data-ref="html5_1"></html5-block>` 只是占位,必须从 `document.reference_map["html5-block"]["html5_1"].data` 读取 HTML;若 entry 是 `path`,读取对应 `@./doc-fetch-resources/...html` 文件。
|
|
8
18
|
2. 格式如下:
|
|
9
19
|
|
|
10
20
|
```html
|
|
@@ -26,24 +36,19 @@
|
|
|
26
36
|
|
|
27
37
|
### 布局与高度
|
|
28
38
|
|
|
29
|
-
|
|
30
|
-
- 生成时只使用 `auto` 或 `viewport`,不要臆造 `fixed`、`initial` 或像素值等其他 mode。
|
|
31
|
-
- 文档常见可用宽度约 `820px`;根容器使用 `width: 100%`、`max-width: 100%`、`box-sizing: border-box`。
|
|
32
|
-
|
|
33
|
-
四种策略:
|
|
34
|
-
|
|
35
|
-
1. 内容自然撑开:`auto` + 普通文档流;根容器不设固定高度或 `overflow: hidden`。
|
|
36
|
-
2. 仅按初始内容定高:`auto` + 首次渲染后不再追加或展开内容。
|
|
37
|
-
3. 固定像素操作区:`auto` + 业务容器按场景设置固定的 CSS `height` 和 `overflow: auto`;高度数值不写进 meta。
|
|
38
|
-
4. 单屏应用:`viewport` + `100vh` + 内部滚动、切页或缩放;适用于游戏、幻灯片、Dashboard、canvas 编辑器。
|
|
39
|
+
只使用 `auto` 或 `viewport`:正文需要在文档中完整展开时使用 `auto`;内容需要在 HTML Block 内滚动或单屏呈现时使用 `viewport`。`lark-cli` 会将 HTML 原样写入 `reference_map`,不会校验该字段,因此创建或更新前必须在 `<head>` 中显式声明。
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
- `auto`:使用普通文档流,不给根容器设置固定高度或 `overflow: hidden`。需要固定操作区时,在业务容器上设置 CSS `height` 和 `overflow: auto`,不要把像素值写入 meta。
|
|
42
|
+
- `viewport`:使用 `100vh` 和内部滚动、切页或缩放,适用于游戏、幻灯片、Dashboard、canvas 编辑器。
|
|
43
|
+
- 页面加载后的内容追加或展开不会由 `lark-cli` 刷新高度,不要臆造相关 CLI flag。
|
|
44
|
+
- 文档常见可用宽度约 `820px`;根容器使用 `width: 100%`、`max-width: 100%`、`box-sizing: border-box`。
|
|
41
45
|
|
|
42
46
|
### 内容限制
|
|
43
47
|
|
|
44
48
|
- HTML 总长度上限为 500KB。不要内联大图片、Base64、字体、长 JSON/CSV 或大量 mock 数据。
|
|
45
49
|
|
|
46
50
|
## OKR block
|
|
51
|
+
`<okr cycle-id="CYCLE_ID"></okr>`:创建时仅支持 root-only。
|
|
47
52
|
|
|
48
53
|
OKR block 可用 XML 格式完整表达。创建前先参考 [`lark-okr`](../../lark-okr/SKILL.md) 确认可用周期;创建时只写 root-only `<okr cycle-id="..."/>` 挂载已有 OKR,不构造 Objective/KR/Progress 子树。
|
|
49
54
|
|