背景 / 问题
lark-doc skill 中 <whiteboard type="mermaid|plantuml|svg"> 创建的是飞书**画板(whiteboard)**对象(block_type=43),是一个独立的画板编辑器。
而飞书文档里实际还有另一种更常见、对设计文档协作更友好的图表块:"文本绘图"小组件(add_ons,block_type=40,component_type_id=blk_631fefbbae02400430b8f9f4),它支持:
view: codeChart —— 左代码、右渲染图(最常用,可即时编辑源码并预览)
view: chart —— 仅渲染图
view: code —— 仅源码
两种块的体验差异非常大:
| 维度 |
<whiteboard type="mermaid">(block_type=43 画板) |
文本绘图小组件(block_type=40 add_ons) |
| 渲染形态 |
独立画板对象 |
文档内嵌图表块 |
| 编辑入口 |
双击进入画板编辑器,要切上下文 |
文档内直接看到源码、点一下就改、即时预览 |
| 协作场景 |
一次性展示、复杂可视化 |
设计文档常用:流程图 / 时序图 / 状态机 / 架构图 |
| 用户期望 |
"看一眼就好" |
"源码版本化、随时改" |
目前 skill 没有任何方式生成后者,导致:
- AI 按 skill 引导生成
<whiteboard type="mermaid"> → 用户拿到的是画板,与团队既有设计文档风格(普遍是文本绘图)不一致
- 用户反馈"我要左代码右图那种",AI 没有官方路径,只能改用原生 OpenAPI 裸调
add_ons 块(已验证可行,下文给最小调用样例)
真实复现场景
- 用户给参考文档 A(其中图表块都是文本绘图小组件 readonly-block type="isv")
- 让 AI 在新文档 B 里按 A 的风格绘图
- AI 按 skill 指引使用
<whiteboard type="mermaid"> 写入
- 用户打开 B 后反馈:"不对,我要的是左代码右图那种,方便我直接改源码"
这个场景在团队内写设计文档非常普遍。
期望支持的能力
1. 在 lark-doc XML 协议里增加"文本绘图"标签(最重要)
方案 A:扩展现有 <whiteboard> 标签语义(兼容性最好)
为 <whiteboard> 增加一个 mode 属性区分画板 vs 文本绘图:
<!-- 现状:画板对象(block_type=43) -->
<whiteboard type="mermaid">graph LR; A-->B</whiteboard>
<!-- 提议:文本绘图小组件(block_type=40 add_ons) -->
<whiteboard type="mermaid" mode="add_ons" view="codeChart">graph LR; A-->B</whiteboard>
或用更直观的 view="codeChart|chart|code" 单独表达 add_ons 形态:缺省 = 画板,显式给 view = 文本绘图小组件。
方案 B:新增独立标签(语义更清晰)
<text-chart type="mermaid" view="codeChart">graph LR; A-->B</text-chart>
可选属性:type(mermaid/plantuml/graphviz) / view(chart/codeChart/code) / theme / scale。
推荐方案 A:复用 <whiteboard> 标签,按属性区分两种 block,对现有文档兼容。
2. 在 skill 文档里明确两种块的选型指引
建议在 references/lark-doc-xml.md 的"内嵌图表"章节加一张选型表:
| 场景 |
推荐 |
| 设计文档、想随时改源码 / 团队协作 |
文本绘图小组件(推荐默认) |
| 一次性展示、不需后续编辑 |
画板对象 <whiteboard> |
| 复杂可视化(>10 节点、需精排版) |
lark-whiteboard skill |
3. lark-cli 提供 docs add-on 子命令封装
类似 docs +media-insert,可考虑增加:
lark-cli docs +chart --doc DOC --type mermaid --view codeChart --content @flow.mmd
lark-cli docs +chart --doc DOC --replace-block BLOCK_ID --content @new.mmd
4. PATCH block 接口支持更新 add_ons.record
让用户能直接改图表源码,不必"删除+重建"(重建会换 block_id,破坏外部锚点引用)。
环境信息
- lark-cli: 1.0.31
- lark-doc skill: v2(DocxXML)
背景 / 问题
lark-docskill 中<whiteboard type="mermaid|plantuml|svg">创建的是飞书**画板(whiteboard)**对象(block_type=43),是一个独立的画板编辑器。而飞书文档里实际还有另一种更常见、对设计文档协作更友好的图表块:"文本绘图"小组件(add_ons,block_type=40,component_type_id=
blk_631fefbbae02400430b8f9f4),它支持:view: codeChart—— 左代码、右渲染图(最常用,可即时编辑源码并预览)view: chart—— 仅渲染图view: code—— 仅源码两种块的体验差异非常大:
<whiteboard type="mermaid">(block_type=43 画板)目前 skill 没有任何方式生成后者,导致:
<whiteboard type="mermaid">→ 用户拿到的是画板,与团队既有设计文档风格(普遍是文本绘图)不一致add_ons块(已验证可行,下文给最小调用样例)真实复现场景
<whiteboard type="mermaid">写入这个场景在团队内写设计文档非常普遍。
期望支持的能力
1. 在 lark-doc XML 协议里增加"文本绘图"标签(最重要)
方案 A:扩展现有
<whiteboard>标签语义(兼容性最好)为
<whiteboard>增加一个mode属性区分画板 vs 文本绘图:或用更直观的
view="codeChart|chart|code"单独表达 add_ons 形态:缺省 = 画板,显式给 view = 文本绘图小组件。方案 B:新增独立标签(语义更清晰)
可选属性:
type(mermaid/plantuml/graphviz) /view(chart/codeChart/code) /theme/scale。推荐方案 A:复用
<whiteboard>标签,按属性区分两种 block,对现有文档兼容。2. 在 skill 文档里明确两种块的选型指引
建议在
references/lark-doc-xml.md的"内嵌图表"章节加一张选型表:<whiteboard>lark-whiteboardskill3. lark-cli 提供 docs add-on 子命令封装
类似
docs +media-insert,可考虑增加:4. PATCH block 接口支持更新 add_ons.record
让用户能直接改图表源码,不必"删除+重建"(重建会换 block_id,破坏外部锚点引用)。
环境信息