Files

4.4 KiB
Raw Permalink Blame History

whiteboard +update更新画板

前置条件: 先阅读 ../../lark-shared/SKILL.md 了解认证、全局参数和安全规则。

更新画板内容,支持四种输入格式:

  • raw:飞书 OpenAPI 原生画板节点格式,不推荐直接编辑。
  • plantumlPlantUML 代码
  • mermaidMermaid 代码
  • svgSVG 文本

输入内容可以通过管道从 stdin 读取,或通过 --source 指定文件。

参数

参数 必填 说明
--whiteboard-token 画板 token需要拥有画板的编辑权限
--idempotent-token 幂等 token确保更新操作幂等最少 10 个字符,建议使用时间戳 + 场景标识拼接(如 1744800000-board-1)。同一次逻辑更新只生成一次该 token重试时须原样复用切勿在每次重试时重新生成时间戳或幂等 key否则会重复写入
--overwrite 覆盖更新,在更新前删除所有现有内容,默认为 false
--source 输入画板内容,支持使用 @path 从文件读取,或 - 从 stdin 读取
--input_format 输入格式:rawplantumlmermaidsvg,默认为 raw

以 raw (OpenAPI 原生画板节点格式) 创作

不要以直接生成 json 语法的方式创作 raw 格式的飞书 OpenAPI 原生画板节点参数

思维导图,时序图,类图,饼图,流程图等图表推荐使用 Mermaid/PlantUML 语法绘制。

而当需要绘制架构图,组织架构图,泳道图,对比图,鱼骨图,柱状图,折线图,树状图,漏斗图,金字塔图,循环/飞轮图,里程碑或其他较为复杂的图表时,推荐参考 § 渲染 & 写入画板 使用 whiteboard-cli 工具创作。

示例

示例 1使用 PlantUML 代码更新画板(从 stdin 读取)

# 编写 PlantUML 代码
cat > diagram.puml << 'EOF'
@startuml
Alice -> Bob: Hello
Bob -> Alice: Hi
@enduml
EOF

# 通过管道传递给命令
cat diagram.puml | lark-cli whiteboard +update \
  --whiteboard-token <画板Token> \
  --input_format plantuml --source -\
  --overwrite --as user

示例 2使用 Mermaid 代码更新画板(从文件读取)

# 编写 Mermaid 代码
cat > diagram.mmd << 'EOF'
graph TD
    A[开始] --> B{判断}
    B -->|是| C[处理]
    B -->|否| D[结束]
    C --> D
EOF

# 从文件读取并更新
lark-cli whiteboard +update \
  --whiteboard-token <画板Token> \
  --input_format mermaid \
  --source @./diagram.mmd \
  --overwrite --as user

示例 3使用 whiteboard-cli 生成 OpenAPI 格式并写入画板

whiteboard-cli 工具的具体用法请参考 § 渲染 & 写入画板

# 使用 whiteboard-cli 生成 OpenAPI 格式并通过管道传递
npx -y @larksuite/whiteboard-cli@^0.2.13 -i <产物文件> --to openapi --format json \
  | lark-cli whiteboard +update \
    --whiteboard-token <画板Token> \
    --source - --input_format raw \
    --idempotent-token <10+字符唯一串> \
    --as user

示例 4先生成产物文件再从文件读取更新

whiteboard-cli 工具的具体用法请参考 § 渲染 & 写入画板

# 生成 OpenAPI 格式到文件
npx -y @larksuite/whiteboard-cli@^0.2.13 -i <DSL 文件> --to openapi --format json -o ./temp.json

# 从文件读取并更新
lark-cli whiteboard +update \
  --whiteboard-token <画板Token> \
  --idempotent-token <10+字符唯一串> \
  --input_format raw \
  --source @./temp.json \
  --overwrite --as user

示例 5使用 SVG 写入画板(从文件读取)

适用于从零创建(直接写入 SVG和编辑现有画板编辑工作流详见 ../routes/svg-edit.md)。

# 编写或导出 SVG 文件
cat > diagram.svg << 'EOF'
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 100">
  <rect x="10" y="10" width="80" height="40" fill="#4A90E2"/>
  <text x="50" y="35" text-anchor="middle" fill="#fff">Hello</text>
</svg>
EOF

# 从文件读取并更新
lark-cli whiteboard +update \
  --whiteboard-token <画板Token> \
  --input_format svg \
  --source @./diagram.svg \
  --overwrite --as user