Skip to content

白板当前画布与 Mermaid 源文本不一致 #2602

Description

@lynnlake

问题描述

飞书文档中的思维导图已在画布上更新,但通过 lark-cli 获取白板 Mermaid 源文本时,仍然返回旧版本内容。

当前画布预览和原生节点数据已经是新版本,而文档读取接口及 Mermaid 源码导出接口仍返回旧版本。

环境

  • lark-cli: 1.0.93
  • @larksuite/whiteboard-cli: 0.2.13
  • 文档类型:飞书 Wiki 文档
  • 白板类型:思维导图
  • 文档和白板标识符可在需要时通过私下渠道提供

复现步骤

  1. 在飞书中更新一个已有思维导图,修改或删除若干节点,并新增若干节点。
  2. 通过文档读取接口获取文档内容。
  3. 通过白板导出接口分别获取:
    • Mermaid 源文本;
    • 预览图;
    • 原生节点数据。
  4. 对比三种输出。

示例命令:

lark-cli docs +fetch \
  --doc <DOC_URL_OR_TOKEN> \
  --doc-format markdown \
  --detail simple \
  --as user \
  --format json
lark-cli whiteboard +export \
  --whiteboard-token <WHITEBOARD_TOKEN> \
  --output-type source \
  --output ./source.mmd \
  --overwrite \
  --as user
lark-cli whiteboard +export \
  --whiteboard-token <WHITEBOARD_TOKEN> \
  --output-type preview \
  --output ./preview \
  --overwrite \
  --as user
lark-cli whiteboard +export \
  --whiteboard-token <WHITEBOARD_TOKEN> \
  --output-type raw \
  --output ./nodes.json \
  --overwrite \
  --as user

实际结果

三种输出不一致:

docs +fetch 内容 = whiteboard export source
whiteboard export preview = whiteboard export raw
前一组与后一组内容不同

Mermaid 源文本仍是旧版本,而预览图和原生节点数据反映的是当前画布。

预期结果

所有读取方式都应对应同一份当前版本的白板内容;如果导出的 Mermaid 是历史源文本,应明确标注其版本和更新时间。

影响

依赖 Mermaid 源文本进行文档解析、测试点提取、流程生成或内容同步时,可能读取已删除或已修改的旧节点,导致生成结果与用户当前看到的白板不一致。

初步判断

白板可能同时保留了历史 Mermaid 源节点和后续编辑形成的当前原生画布节点。output-type source 及文档读取接口可能优先返回历史 Mermaid 源,而不是根据当前原生节点生成内容。

建议

  • output-type source 基于当前原生画布生成最新 Mermaid;
  • 或在返回结果中明确标识源文本的版本和更新时间;
  • 当 Mermaid 源与原生节点不一致时返回警告;
  • 文档读取接口返回白板资源的当前版本信息;
  • 增加区分“历史源文本”和“当前画布结构”的接口或参数。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions