@amaster.ai/pi-lark 0.1.6 → 0.1.8
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/README.md +5 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/lark-apps/SKILL.md +59 -14
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-automation.md +80 -2
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -5
- package/skills/lark-apps/references/lark-apps-create.md +6 -4
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +1 -1
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
- package/skills/lark-apps/references/lark-apps-init.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +2 -2
- package/skills/lark-apps/references/lark-apps-local-dev.md +80 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-base/SKILL.md +34 -19
- package/skills/lark-base/references/lark-base-cell-value.md +3 -3
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +17 -1
- package/skills/lark-base/references/lark-base-dashboard.md +17 -4
- package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
- package/skills/lark-base/references/lark-base-data-query.md +11 -4
- package/skills/lark-base/references/lark-base-field-create.md +21 -6
- package/skills/lark-base/references/lark-base-field-json.md +9 -6
- package/skills/lark-base/references/lark-base-field-update.md +17 -1
- package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
- package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-base/references/lark-base-role-guide.md +11 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +11 -137
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +14 -8
- package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
- package/skills/lark-contact/SKILL.md +19 -3
- package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
- 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 +84 -93
- 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 +70 -222
- package/skills/lark-doc/references/lark-doc-whiteboard.md +14 -17
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +46 -0
- package/skills/lark-doc/references/lark-doc-xml.md +38 -166
- package/skills/lark-drive/SKILL.md +32 -50
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
- package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +3 -3
- package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
- package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +9 -15
- package/skills/lark-drive/references/lark-drive-copy.md +87 -0
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-download.md +6 -1
- package/skills/lark-drive/references/lark-drive-export.md +3 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
- package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
- package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
- package/skills/lark-drive/references/lark-drive-search.md +7 -1
- package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
- package/skills/lark-drive/references/lark-drive-task-result.md +3 -0
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
- package/skills/lark-event/SKILL.md +8 -4
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-vc.md +8 -2
- package/skills/lark-im/SKILL.md +9 -9
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-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 +9 -8
- 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 +1 -1
- package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-shared/SKILL.md +3 -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 +134 -104
- package/skills/lark-slides/references/asset-planning.md +6 -4
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/lark-slides-create.md +86 -66
- package/skills/lark-slides/references/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +6 -7
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +4 -27
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
- package/skills/lark-slides/references/lark-slides-replace-slide.md +22 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +33 -15
- package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +90 -32
- package/skills/lark-slides/references/planning-layer.md +11 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1415 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +539 -79
- package/skills/lark-slides/references/troubleshooting.md +26 -9
- package/skills/lark-slides/references/validation-checklist.md +55 -18
- package/skills/lark-slides/references/visual-planning.md +25 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +299 -51
- package/skills/lark-slides/scripts/sxsd_validator.py +1052 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1964 -195
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +4051 -501
- package/skills/lark-task/SKILL.md +7 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +9 -0
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-whiteboard/SKILL.md +21 -13
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +17 -16
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +7 -7
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +23 -31
- package/skills/lark-whiteboard/routes/dsl.md +11 -5
- package/skills/lark-whiteboard/routes/mermaid.md +3 -3
- package/skills/lark-whiteboard/routes/svg-edit.md +9 -6
- package/skills/lark-whiteboard/routes/svg.md +14 -7
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/mention.md +71 -0
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +6 -3
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
- 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-drive/references/lark-drive-comments-guide.md +0 -80
- package/skills/lark-slides/references/examples.md +0 -91
- package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
- package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -125
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -433
|
@@ -1,174 +1,78 @@
|
|
|
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
|
-
|
|
5
|
+
写入前必须按 `--doc-format` 读取对应格式参考:`xml` 读取 [`lark-doc-xml.md`](lark-doc-xml.md),`markdown` 读取 [`lark-doc-md.md`](lark-doc-md.md);
|
|
47
6
|
|
|
48
|
-
|
|
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` 的完整文本,不会被保留。
|
|
7
|
+
## 常用示例
|
|
64
8
|
|
|
65
9
|
```bash
|
|
66
|
-
#
|
|
67
|
-
lark-cli docs +
|
|
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
|
-
## 新标题
|
|
10
|
+
# 先定位内容并获取最新 block ID
|
|
11
|
+
lark-cli docs +fetch --doc "文档URL或token" --scope keyword --keyword "key1|key2" --detail with-ids
|
|
85
12
|
|
|
86
|
-
|
|
13
|
+
# 替换文本;--content "" 可删除文本
|
|
14
|
+
lark-cli docs +update --doc "xx" --command str_replace --pattern "旧内容" --content "新内容"
|
|
87
15
|
|
|
88
|
-
|
|
89
|
-
|
|
16
|
+
# 替换或插入 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_insert_after --block-id blkAnchor --content '<h2>新章节</h2><p>章节内容</p>'
|
|
90
19
|
|
|
91
|
-
#
|
|
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 ""
|
|
20
|
+
# 删除多个 block
|
|
21
|
+
lark-cli docs +update --doc "xx" --command block_delete --block-id "blkA,blkB"
|
|
107
22
|
```
|
|
108
23
|
|
|
109
|
-
|
|
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
|
-
```
|
|
24
|
+
## 推荐流程
|
|
116
25
|
|
|
117
|
-
|
|
26
|
+
1. **Observe(读取现状)**:先 `docs +fetch` 读取当前文档状态,并按意图选择最小范围。
|
|
27
|
+
- 改某一节或大文档:先 `--scope outline --max-depth 2` 找章节,再 `--scope section --start-block-id <标题id> --detail with-ids`
|
|
28
|
+
- 精确跨节区间:用 `--scope range --start-block-id xxx --end-block-id yyy`
|
|
29
|
+
- 只有模糊关键词:用 `--scope keyword --keyword "key1|key2" --context-before 1 --context-after 1 --detail with-ids`
|
|
30
|
+
- 明确整篇重构才读 `--detail with-ids` 全文;只读摘要或确认事实时用更轻的 fetch
|
|
31
|
+
2. **Diagnose(诊断问题)**:判断用户目标、当前结构、语气、重复、断流、事实口径和需要保留的资源;识别哪些 block 必须原样保留。
|
|
32
|
+
3. **Patch Plan(制定局部计划)**:把修改拆成最小安全操作:简单行内文本替换用 `str_replace`,但它不支持资源替换,涉及多个 block 时优先使用 `block_replace`;整段/整块重写用 `block_replace`;增补章节用 `block_insert_after`;删冗余用 `block_delete`;调整顺序用 `block_move_after`。
|
|
33
|
+
4. **Patch(精确修改)**:按 block / section 执行局部命令。保护 `<cite>`、`<img>`、`<source>`、`<whiteboard>`、`<sheet>`、`<bitable>`、`<synced_reference>` 等 token 化内容,不要改成纯文本或占位符。同一 block 的多处修改合并成一次 `block_replace`。
|
|
34
|
+
5. **Verify(fetch 验证)**:每轮写操作后按影响范围重新 fetch,检查用户要求、结构、语气、事实、资源块和 block ID 是否符合预期;不满足就基于最新 fetch 结果继续 Diagnose / Patch,不要沿用上一轮 block ID。
|
|
118
35
|
|
|
119
|
-
|
|
120
|
-
lark-cli docs +update --doc "<doc_id>" --command block_replace \
|
|
121
|
-
--block-id "目标 block_id" \
|
|
122
|
-
--content '<p>替换后的段落内容</p>'
|
|
123
|
-
```
|
|
36
|
+
除非用户明确要求完全重建,或原文已无保留价值,否则不要使用 `overwrite`;它可能丢失评论和暂不支持的资源。
|
|
124
37
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
# 删除多个块时用逗号 "," 分隔
|
|
129
|
-
lark-cli docs +update --doc "<doc_id>" --command block_delete \
|
|
130
|
-
--block-id "block_id_1,block_id_2,block_id_3"
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### overwrite — 全文覆盖
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
lark-cli docs +update --doc "<doc_id>" --command overwrite \
|
|
137
|
-
--content '<title>全新文档</title><h1>概述</h1><p>新的内容</p>'
|
|
138
|
-
```
|
|
38
|
+
## 生成 block 直达链接
|
|
139
39
|
|
|
140
|
-
|
|
40
|
+
用户需要某个 block 的直达链接时,只定位 block,不执行文档写操作:
|
|
141
41
|
|
|
142
|
-
|
|
42
|
+
1. 使用局部 `docs +fetch --detail with-ids` 获取目标 `block_id`。
|
|
43
|
+
2. 返回 `文档基础 URL#block_id`;没有 `block_id` 时不得猜测。
|
|
143
44
|
|
|
144
|
-
|
|
145
|
-
lark-cli docs +update --doc "<doc_id>" --command append \
|
|
146
|
-
--content '<h2>新增章节</h2><p>追加的内容</p>'
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
> 等价于 `block_insert_after --block-id -1`,无需先获取 block ID。
|
|
150
|
-
|
|
151
|
-
### block_copy_insert_after — 复制块并插入
|
|
152
|
-
|
|
153
|
-
将一个或多个源块复制到锚点块之后,源块保持不变。`--src-block-ids` 为逗号分隔的源块 ID,按顺序依次插入到锚点之后。
|
|
154
|
-
|
|
155
|
-
```bash
|
|
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
|
|
45
|
+
## 参数
|
|
163
46
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
47
|
+
|参数|必填|说明|
|
|
48
|
+
|-|-|-|
|
|
49
|
+
|`--doc`|是|文档 URL 或 token|
|
|
50
|
+
|`--command`|是|更新指令,见下表|
|
|
51
|
+
|`--doc-format`|否|`xml`(默认)或 `markdown`|
|
|
52
|
+
|`--content`|视指令|写入内容;`str_replace` 传空字符串可删除文本|
|
|
53
|
+
|`--pattern`|视指令|`str_replace` 的简单行内匹配文本;不要用于多行、整段或多个 block|
|
|
54
|
+
|`--block-id`|视指令|目标 block ID;批量删除时用逗号分隔;`-1` 表示文档末尾,`0` 表示文档开头(仅适用于支持这些锚点的指令)|
|
|
55
|
+
|`--src-block-ids`|视指令|要复制或移动的源 block ID,多个 ID 用逗号分隔|
|
|
56
|
+
|`--reference-map`|否|保留或回放既有 `reference_map`,需与 `--content` 配合;支持 JSON、任务目录内的相对 `@file` 或 stdin `-`|
|
|
57
|
+
|`--revision-id`|否|基准版本号,默认 `-1`(最新版本)|
|
|
58
|
+
|
|
59
|
+
## 指令速查
|
|
60
|
+
|
|
61
|
+
|指令|用途与限制|必需参数|
|
|
62
|
+
|-|-|-|
|
|
63
|
+
|`str_replace`|全文查找替换;支持富文本内的文本替换,但不支持资源替换;涉及多个 block 时建议用 `block_replace`;空 `--content` 表示删除|`--pattern`、`--content`|
|
|
64
|
+
|`block_insert_after`|在指定 block 后插入内容;逐章填充时指定对应标题的 block ID|`--block-id`、`--content`|
|
|
65
|
+
|`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`|
|
|
66
|
+
|`block_replace`|替换指定 block;同一 block 一次操作中只能替换一次|`--block-id`、`--content`|
|
|
67
|
+
|`block_delete`|删除一个或多个 block|`--block-id`|
|
|
68
|
+
|`block_move_after`|移动已有 block,支持所有块类型;|`--block-id`、`--src-block-ids`|
|
|
69
|
+
|`append`|仅在文末追加,等价于 `block_insert_after --block-id -1`|`--content`|
|
|
70
|
+
|`overwrite`|清空后重写全文,丢失图片、评论等内容,非必要不使用|`--content`|
|
|
71
|
+
|
|
72
|
+
## 通用安全规则
|
|
73
|
+
|
|
74
|
+
- 每次写操作后都按 block ID 已变化处理。新插入或复制的内容一定使用新 ID;替换、删除和覆盖会使旧 ID 失效;移动会改变章节与 range 语义。
|
|
75
|
+
- 同一 block 有多处修改时,应合并为一次 `block_replace`,避免连续使用旧 ID。
|
|
172
76
|
|
|
173
77
|
## 返回值
|
|
174
78
|
|
|
@@ -178,83 +82,27 @@ lark-cli docs +update --doc "<doc_id>" --command block_move_after \
|
|
|
178
82
|
"identity": "user",
|
|
179
83
|
"data": {
|
|
180
84
|
"document": {
|
|
181
|
-
"revision_id":
|
|
85
|
+
"revision_id": 2,
|
|
182
86
|
"new_blocks": [
|
|
183
87
|
{ "block_id": "blkcnXXXX", "block_type": "whiteboard", "block_token": "boardXXXX" }
|
|
184
88
|
]
|
|
185
89
|
},
|
|
186
90
|
"result": "success",
|
|
187
|
-
"updated_blocks_count":
|
|
188
|
-
"warnings": []
|
|
91
|
+
"updated_blocks_count": 1,
|
|
92
|
+
"warnings": [],
|
|
93
|
+
"tips": ""
|
|
189
94
|
}
|
|
190
95
|
}
|
|
191
96
|
```
|
|
192
97
|
|
|
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),但不要为了固定丰富度主动添加组件
|
|
98
|
+
|字段|说明|
|
|
99
|
+
|-|-|
|
|
100
|
+
|`result`|`success` \| `partial_success` \| `failed`|
|
|
101
|
+
|`updated_blocks_count`|实际更新的 block 数量|
|
|
102
|
+
|`warnings`|服务端返回的警告列表;即使 `result=success` 也要检查是否存在降级或未完全处理的内容|
|
|
103
|
+
|`tips`|服务端返回的后续处理建议;为空表示没有额外建议,非空本身不表示更新失败|
|
|
104
|
+
|`document.new_blocks`|新增 block;`block_id` 用于后续编辑,资源块的 `block_token` 可交给对应 skill 继续处理|
|
|
252
105
|
|
|
253
|
-
##
|
|
106
|
+
## 需要查文档
|
|
254
107
|
|
|
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) — 插入图片/文件到文档
|
|
108
|
+
可查看 [`+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
|
|
|
@@ -98,8 +94,8 @@ Sub Agent 需要携带以下的最小上下文,以及后续的 [SVG 设计 Wor
|
|
|
98
94
|
|
|
99
95
|
###### 画板怎么处理 SVG
|
|
100
96
|
|
|
101
|
-
画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示)
|
|
102
|
-
`<
|
|
97
|
+
画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示);但非阴影用途的
|
|
98
|
+
`<filter>` / `<pattern>` / `<clipPath>` / `<mask>` 等装饰特性画板不支持(见下方⚠️)
|
|
103
99
|
**不需要所有元素都可编辑, 但必须避免使用不支持的装饰特性, 且要兼顾可编辑和美观漂亮**
|
|
104
100
|
|
|
105
101
|
**可识别的元素**
|
|
@@ -109,12 +105,14 @@ Sub Agent 需要携带以下的最小上下文,以及后续的 [SVG 设计 Wor
|
|
|
109
105
|
- 文本:`<text>` / `<tspan>` 画板硬编码 Noto Sans SC **文字必须用 `<text>`**
|
|
110
106
|
- 分组:`<g>` / `<a>` / `<use>` 引用 `<symbol>`
|
|
111
107
|
- 变换:`translate` / `rotate` / `scale` 正常;`skewX` / `skewY` / `matrix(...)` 降级
|
|
108
|
+
- 阴影:`<filter>` 里放 `<feDropShadow>` 或标准 drop/inner primitive 链 (`<feGaussianBlur in="SourceAlpha">` + `<feOffset>` + `<feFlood>` + `<feComposite>` + `<feMerge>`), 会被识别成节点阴影, drop 至多 1 个, inner 至多 1 个; 其余 filter 效果不识别
|
|
109
|
+
- 渐变:`<linearGradient>` / `<radialGradient>` 在 `<defs>` 中定义, 通过 `fill="url(#id)"` 引用 (载体限 `<rect>` / `<circle>` / `<ellipse>` / `<polygon>` / `<path>`), 需要至少 2 个 `<stop>`, `gradientUnits` 只支持默认的 `objectBoundingBox` (不写即可)
|
|
112
110
|
|
|
113
111
|
> [!IMPORTANT]
|
|
114
|
-
> ⚠️
|
|
112
|
+
> ⚠️ **不支持的装饰特性**
|
|
115
113
|
|
|
116
|
-
- `<
|
|
117
|
-
|
|
114
|
+
- `<pattern>` / `<clipPath>` / `<mask>` / 非阴影用途的 `<filter>` (blur / hue-rotate / 复合合成 / `flood-color=url(...)` / 多个 `<feDropShadow>` 等) → 画板不支持,**请避免使用,否则会导致画板渲染问题**
|
|
115
|
+
- 渐变边界:`gradientUnits="userSpaceOnUse"` / `spreadMethod="reflect|repeat"` / stops 少于 2 个 / 复杂 `gradientTransform` 会变成不可编辑图片, 视觉正确但失去可编辑性, 若无必要请沿用默认 `objectBoundingBox`
|
|
118
116
|
|
|
119
117
|
###### 3.插入后审查
|
|
120
118
|
|
|
@@ -123,9 +121,9 @@ Sub Agent 需要携带以下的最小上下文,以及后续的 [SVG 设计 Wor
|
|
|
123
121
|
`../../lark-whiteboard/SKILL.md`](../../lark-whiteboard/SKILL.md) 编辑。
|
|
124
122
|
|
|
125
123
|
```bash
|
|
126
|
-
lark-cli whiteboard +
|
|
124
|
+
lark-cli whiteboard +export \
|
|
127
125
|
--whiteboard-token "wbcnxxxxxxxx" \
|
|
128
|
-
--
|
|
126
|
+
--output-type preview \
|
|
129
127
|
--output ./preview.png
|
|
130
128
|
```
|
|
131
129
|
|
|
@@ -150,7 +148,6 @@ lark-cli whiteboard +query \
|
|
|
150
148
|
|
|
151
149
|
---
|
|
152
150
|
|
|
153
|
-
|
|
154
151
|
---
|
|
155
152
|
|
|
156
153
|
## 关联参考
|
|
@@ -2,7 +2,53 @@
|
|
|
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
|
+
|
|
15
|
+
## HTML5 block
|
|
16
|
+
|
|
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` 文件。
|
|
18
|
+
2. 格式如下:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<!doctype html>
|
|
22
|
+
<html lang="zh-CN">
|
|
23
|
+
<head>
|
|
24
|
+
<meta charset="utf-8">
|
|
25
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
26
|
+
<meta name="use-iframe" content="true">
|
|
27
|
+
<meta name="html-box-height-mode" content="auto">
|
|
28
|
+
<meta name="description" content="内容摘要,会导出为 html5-block 的 alt 属性,帮助模型理解该 HTML 块的用途">
|
|
29
|
+
<title></title>
|
|
30
|
+
</head>
|
|
31
|
+
<body>
|
|
32
|
+
...
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 布局与高度
|
|
38
|
+
|
|
39
|
+
只使用 `auto` 或 `viewport`:正文需要在文档中完整展开时使用 `auto`;内容需要在 HTML Block 内滚动或单屏呈现时使用 `viewport`。`lark-cli` 会将 HTML 原样写入 `reference_map`,不会校验该字段,因此创建或更新前必须在 `<head>` 中显式声明。
|
|
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`。
|
|
45
|
+
|
|
46
|
+
### 内容限制
|
|
47
|
+
|
|
48
|
+
- HTML 总长度上限为 500KB。不要内联大图片、Base64、字体、长 JSON/CSV 或大量 mock 数据。
|
|
49
|
+
|
|
5
50
|
## OKR block
|
|
51
|
+
`<okr cycle-id="CYCLE_ID"></okr>`:创建时仅支持 root-only。
|
|
6
52
|
|
|
7
53
|
OKR block 可用 XML 格式完整表达。创建前先参考 [`lark-okr`](../../lark-okr/SKILL.md) 确认可用周期;创建时只写 root-only `<okr cycle-id="..."/>` 挂载已有 OKR,不构造 Objective/KR/Progress 子树。
|
|
8
54
|
|