前置条件: 先阅读
../lark-shared/SKILL.md了解认证、全局参数和安全规则。
更新飞书云文档内容,支持 7 种更新模式。优先使用局部更新(replace_range/append/insert_before/insert_after),慎用 overwrite(会清空文档重写,可能丢失图片、评论等)。
⚠️ 本文档中提到的 html 标签不需要在 Markdown 中转义!若转义,会导致相关的表格,多维表格,画板等 block 插入失败
# 追加内容
lark-cli docs +update --doc "<doc_id_or_url>" --mode append --markdown "## 新章节\n\n追加内容"
# 定位替换(内容定位)
lark-cli docs +update --doc "<doc_id>" --mode replace_range --selection-with-ellipsis "旧标题...旧结尾" --markdown "## 新内容"
# 定位替换(标题定位)
lark-cli docs +update --doc "<doc_id>" --mode replace_range --selection-by-title "## 功能说明" --markdown "## 功能说明\n\n新内容"
# 全文替换
lark-cli docs +update --doc "<doc_id>" --mode replace_all --selection-with-ellipsis "张三" --markdown "李四"
# 前插入
lark-cli docs +update --doc "<doc_id>" --mode insert_before --selection-with-ellipsis "## 危险操作" --markdown "> 警告:以下需谨慎!"
# 后插入
lark-cli docs +update --doc "<doc_id>" --mode insert_after --selection-with-ellipsis "代码示例" --markdown "**输出示例**:result = 42"
# 删除内容
lark-cli docs +update --doc "<doc_id>" --mode delete_range --selection-by-title "## 废弃章节"
# 覆盖(慎用)
lark-cli docs +update --doc "<doc_id>" --mode overwrite --markdown "# 全新内容"
# 同时更新标题
lark-cli docs +update --doc "<doc_id>" --mode append --markdown "## 更新日志" --new-title "文档 v2.0"
# 在指定内容后新增两个空白画板
lark-cli docs +update --doc "<doc_id>" --mode insert_after --selection-with-ellipsis "有序列表" --markdown $'<whiteboard type="blank"></whiteboard>\n<whiteboard type="blank"></whiteboard>'
| 参数 | 必填 | 说明 |
|---|---|---|
--doc |
是 | 文档 URL 或 token |
--mode |
是 | 更新模式(见下方 7 种模式说明) |
--markdown |
视模式 | 新内容(Lark-flavored Markdown)。delete_range 模式不需要,其他模式必填。若要新增空白画板,直接传 <whiteboard type="blank"></whiteboard>;需要多个画板时,在同一个 markdown 里重复多个标签 |
--selection-with-ellipsis |
视模式 | 内容定位(如 "开头...结尾")。与 --selection-by-title 互斥 |
--selection-by-title |
视模式 | 标题定位(如 "## 章节名")。与 --selection-with-ellipsis 互斥 |
--new-title |
否 | 同时更新文档标题 |
定位模式(replace_range/replace_all/insert_before/insert_after/delete_range)支持两种定位方式,二选一:
支持两种格式:
范围匹配:开头内容...结尾内容
精确匹配:完整内容(不含 ...)
转义说明:如果要匹配的内容本身包含 ...,使用 \.\.\. 表示字面量的三个点。
示例:
你好...世界 → 匹配从"你好"到"世界"之间的任意内容你好\.\.\.世界 → 匹配字面量 "你好...世界"建议:如果文档中有多个 ...,建议使用更长的上下文来精确定位,避免歧义。
格式:## 章节标题(可带或不带 # 前缀)
自动定位整个章节(从该标题到下一个同级或更高级标题之前)。
示例:
## 功能说明 → 定位二级标题"功能说明"及其下所有内容功能说明 → 定位任意级别的"功能说明"标题及其内容更新文档标题。如果提供此参数,将在更新文档内容后同步更新文档标题。
特性:
{
"success": true,
"doc_id": "文档ID",
"mode": "使用的模式",
"board_tokens": ["可选:新建画板 token 列表"],
"message": "文档更新成功(xxx模式)",
"warnings": ["可选警告列表"],
"log_id": "请求日志ID"
}
如果本次 docs +update 创建了画板,响应会额外返回 board_tokens。在 CLI 的成功 JSON 输出里,后续编辑画板应读取 data.board_tokens。
{
"task_id": "async_task_xxxx",
"message": "文档更新已提交异步处理,请使用 task_id 查询状态",
"log_id": "请求日志ID"
}
{
"error": "[错误码] 错误消息\n💡 Suggestion: 修复建议\n📍 Context: 上下文信息",
"log_id": "请求日志ID"
}
lark-cli docs +update --doc "文档ID或URL" --mode append --markdown "## 新章节\n\n追加的内容..."
使用 --selection-with-ellipsis:
lark-cli docs +update --doc "文档ID" --mode replace_range --selection-with-ellipsis "## 旧标题...旧结尾。" --markdown "## 新标题\n\n新的内容..."
使用 --selection-by-title(替换整个章节):
lark-cli docs +update --doc "文档ID" --mode replace_range --selection-by-title "## 功能说明" --markdown "## 功能说明\n\n更新后的内容..."
lark-cli docs +update --doc "文档ID" --mode replace_all --selection-with-ellipsis "张三" --markdown "李四"
返回值包含 replace_count 字段,表示替换的次数。
注意:
replace_range 不同,replace_all 允许多个匹配--markdown 可以为空字符串,表示删除所有匹配内容lark-cli docs +update --doc "文档ID" --mode delete_range --selection-by-title "## 废弃章节"
注意:delete_range 模式不需要 --markdown 参数。
⚠️ 会清空文档后重写,可能丢失图片、评论等,仅在需要完全重建文档时使用。
lark-cli docs +update --doc "文档ID" --mode overwrite --markdown "# 新文档\n\n全新的内容..."
当用户要“新增空白画板”时,不要用 Mermaid 占位图;直接按 whiteboard 标签传 --markdown。
自然语言请求示例:
“给我在这个文档末尾新增一个空白画板”
# 追加一个空白画板
lark-cli docs +update --doc "文档ID" --mode append --markdown '<whiteboard type="blank"></whiteboard>'
# 在指定内容后新增两个空白画板
lark-cli docs +update --doc "文档ID" --mode insert_after --selection-with-ellipsis "有序列表" --markdown $'<whiteboard type="blank"></whiteboard>\n<whiteboard type="blank"></whiteboard>'
成功后,响应里的 data.board_tokens 就是新建画板的 token 列表;如果后续要继续编辑这些画板,直接使用这些 token。
⚠️ docs +update 不能编辑已有画板内容,但可以创建新的空白画板
画板编辑:详见 SKILL.md
修改文档内容时,定位范围越小越安全。尤其是表格、分栏等嵌套块,应精确定位到需要修改的文本,避免影响其他内容。
图片、画板、电子表格、多维表格、任务等内容以 token 形式存储,无法读出后原样写入。
保护策略:
修改多处内容时:
overwrite 重写整个文档,除非你认为风险完全可控原因:局部更新保留原有媒体、评论、协作历史,更安全可靠。
使用 insert_before 或 insert_after 时,如果目标内容重复出现,需要扩大 --selection-with-ellipsis 范围来唯一定位。
关键:插入位置基于匹配范围的边界:
insert_after → 插入在匹配范围的结尾之后insert_before → 插入在匹配范围的开头之前当 docs +create 或 docs +update 返回画板写入失败的 warning 时:
<whiteboard token="xxx"/>)--mode replace_range 替换:--selection-with-ellipsis 使用 warning 中的 whiteboard 标签,--markdown 提供修正后的代码块