📦 lark-doc-reviser — 飞书批注批量修
v1.0.0读取飞书文档未解决批注,按块精准修改并自动标记已解决,全程通过 lark-cli 操作,支持富文本格式,适合快速闭环文档审阅。
详细分析 ▾
运行时依赖
版本
- lark-doc-reviser 初始发布。 - 支持拉取飞书文档未解决批注并展示以供针对性编辑。 - 引导用户完成分步工作流:获取文档状态、展示批注、应用块级编辑、解决批注、刷新状态。 - 支持块级文本编辑,包括富文本字段(粗体、斜体、代码等)。 - 记录当前限制(空行插入、块删除/重排序未自动化)。 - 警告勿使用某些 lark-cli 选项进行破坏性标题重命名。
安装命令
点击复制技能文档
工作流程
第 1 步 — 获取文档状态
python3 scripts/fetch_doc.py --out workspace/_state.json
该命令将完整文档状态保存到 workspace/_state.json,并在终端输出摘要:
commented_blocks:存在未解决评论的 block,每个 block 包含elements、full_text以及评论列表comments[]{comment_id, anchor_text, instruction}all_blocks:完整的 block 列表(不含 elements,仅作结构参考)
务必保存到 workspace。编辑过程可能跨多个会话。
第 2 步 — 向用户展示评论
将 commented_blocks 中的每个条目按以下格式展示:
[block_type] full_text → 【anchor_text】 instruction
询问用户要处理哪些评论,或在意图明确时直接继续。
第 3 步 — 应用文本修改
对每条需要修改的文本评论,构造 patches 列表并执行:
python3 scripts/patch_blocks.py patches.json
patches.json 格式 — elements 会完全替换该 block 的现有内容:
[
{
"block_id": "doxcnXXXX",
"elements": [
{"text": "普通文字"},
{"text": "加粗", "bold": true},
{"text": "代码", "code": true},
{"text": "斜体", "italic": true}
]
}
]
支持的 element 字段:text(必填)、bold、italic、code、strikethrough、underline。
注意: update_text_elements 会清除 elements 中的 comment_ids。这是预期行为 —— 请在第 4 步中统一解决已处理的评论。
第 4 步 — 解决已处理的评论
python3 scripts/resolve_comments.py [comment_id ...]
# 或通过 stdin:
echo '["id1","id2"]' | python3 scripts/resolve_comments.py -
第 5 步 — 重新获取并更新状态
再次执行第 1 步,刷新 workspace/_state.json。
限制
以下操作不受本技能脚本支持,需要额外调用 API:
- 插入空行 / 空白 block:需调用 Create Block API
- 删除 block(例如删除分割线):需调用 Delete Block API
- 结构重排:需调用 Move Block API
如需执行上述操作,请直接使用 lark-cli api 或询问用户是否手动处理。
警告
切勿使用 lark-cli docs +update --mode replace_range --selection-by-title 来重命名标题。该方式会选中整个章节(标题及其后所有内容直至下一标题)并全部删除。请改用 --selection-with-ellipsis "heading text"。