nestjs小示例使用将坚果云脑图nbmx转换为xmind格式

2,137 阅读1分钟

脑图工具里做的比较好的有XMind和MindMaster,可惜前者没有提供web版,分享不是很方便,MindMaster虽有Processon在线脑图,但是有数量限制...
查看几家在线脑图的文件格式及美观易用性,发现坚果云脑图格式比较清晰,可以很方便的转换为xmind格式...

xmind格式和nbmx格式都是将脑图的以json tree的方式存储后压缩... 我们只需要将nbmx解压后的content.json转换成nbmx所需的content.json即可...

npm i -g @nestjs/cli
nest new nbmx2xmind

解压nbmx中的content.json 将nbmx2mind项目中的app.service.ts更改为如下部分

import { Injectable } from '@nestjs/common';
const fs = require('fs')
const { v4: uuidv4 } = require('uuid');
@Injectable()
export class AppService {
  getHello(): string {
    var jsonstr =  fs.readFileSync( 'C:\\nbmx2xmind\\src\\content.json', 'utf8');
    var node = JSON.parse(jsonstr);
    return JSON.stringify(this.process(node))
  }


   process(node):Object {
    let result = {title:null,id:null}
    result["title"] = node.data.text
    result["id"] = uuidv4() 
    //console.log(result)
    if(node.children&&node.children.length>0){
      result["children"]={}
      result["children"].attached = node.children.map(item=> this.process(item))
    } 
    return result
  }
}

访问http://localhost:3000/得到xmind所需要的格式
将顶层children节点复制出来粘贴到xmind中的content.json的children节点,再压缩成zip格式,在xmind中打开即可