Papa Labs

Miro mindmap 迁移方案:REST API 导出成 markmap

Miro 的 mindmap 只能导出成图片或 PDF —— 对迁移来说等于没有。但它有 REST API,可以把节点树拉下来自己转。目标格式就是本站的 markmap 嵌入格式:markdown 缩进列表。

Step 1:拿到 API token

  1. 打开 developers.miro.com,用你的 Miro 账号登录;
  2. 创建一个 app(个人用随便起名),权限勾 boards:read 就够;
  3. 把 app install 到自己的 team,得到 access token。免费账号也支持。

Miro 开发者平台首页

developers.miro.com —— 建 app、拿 token、查 API reference 都在这里

Step 2:找到 board 和节点

先列出所有 board,找到 mindmap 所在的那块:

$headers = @{ Authorization = "Bearer $env:MIRO_TOKEN" }
Invoke-RestMethod -Uri "https://api.miro.com/v2/boards" -Headers $headers |
  Select-Object -ExpandProperty data | Select-Object id, name

然后拉这个 board 的 mindmap 节点。注意:mindmap 节点的 API 目前在 Miro 的 experimental 通道,endpoint 和字段以 官方文档 当下的版本为准 —— 核心是每个节点会给出内容文本和 parent 引用,足够重建整棵树。

Step 3:节点树 → markdown 列表

拿到「节点 + 父子关系」之后,转换就是一个递归:

function toMarkdown(node, depth = 0) {
  const lines = ['  '.repeat(depth) + '- ' + node.text];
  for (const child of node.children) {
    lines.push(...toMarkdown(child, depth + 1));
  }
  return lines;
}

输出直接贴进文章的 ```markmap 代码块,Miro 上的图就在 blog 里活过来了——而且变成了可搜索、可 diff 的纯文本。

图少的话:手动更快

只有两三张图的话,别写代码了:对着 Miro 把结构敲成缩进列表,十分钟的事。API 方案留给图多、或者以后还会持续在 Miro 画图需要定期同步的情况。

迁移的终点不是「搬完」,而是以后只在一个地方维护。搬完之后 Miro 上的原图建议标记 archived,避免两边改。

← 全部文章