基于Go语言的xmind读写库,我主要用来把有道云笔记思维导图转为xmind
项目地址
xmind
基于go语言的xmind接口
使用方法参考: example
本库主要加载xmind文件为json结构,保存文件时也用的json结构而不是xml结构
本库只做了最基本的主题添加功能,类似标签/备注/图片等其他功能不考虑,有想法的自行实现
本库做了通用加载和通用保存方法,可以更灵活的与其他思维导图进行转换
参考: custom_test
示例
- 自定义json数据创建xmind
package main
import (
"github.com/jan-bar/xmind"
)
func main() {
data := `[{"a":"1","b":"main topic"},
{"a":"2","b":"topic1","c":"1"},{"a":"3","b":"topic2","c":"1"},
{"a":"4","b":"topic3","c":"2"},{"a":"5","b":"topic4","c":"2"},
{"a":"6","b":"topic5","c":"3"},{"a":"7","b":"topic6","c":"3"}
]`
// 这里定义 a 表示节点id, b 表示主题内容, c 表示父节点id
// 传入定好的json字符串,以及指定好json的key字符串就可以将任意json数据转换成xmind
// 也可用用 data := []byte(`{}`) 传入字节数组
st, err := xmind.LoadCustom(data, "a", "b", "c")
if err != nil {
panic(err)
}
err = xmind.SaveSheets("custom.xmind", st)
if err != nil {
panic(err)
}
}
- 通过接口创建xmind对象,并保存xmind文件
package main
import (
"github.com/jan-bar/xmind"
)
func main() {
st1 := xmind.NewSheet("sheet1", "main 1 topic")
st1.Add("123").Add("456").Add("789").OnTitle("123").
Add("2sc").Add("345").OnTitle("456").
Add("xzcv").Add("ewr").OnTitle("789").Add("saf").Add("xcv")
st2 := xmind.NewSheet("sheet2", "main 2 topic")
st2.Add("aaa").Add("ewr")
st2.OnTitle("ewr").Title = "xx-ewr\txvf\nwer" // 修改指定主题内容,其中包含特殊转义字符
st2.Add("cvxcv").Add("wqerwe").OnTitle("aaa").
Add("zxs", xmind.ParentMode). // 为节点添加父节点
Add("cxv", xmind.BeforeMode). // 在节点之前添加兄弟节点
Add("xcas", xmind.AfterMode). // 在节点之后添加兄弟节点
OnTitle("cvxcv").Add("34").Add("xcv")
err := xmind.SaveSheets("create.xmind", st1, st2)
if err != nil {
panic(err)
}
}
- 加载xmind文件
package main
import (
"github.com/jan-bar/xmind"
)
func main() {
// 支持4种方式的加载,详情看内部具体实现
wb, err := xmind.LoadFile("TestCreateXmind.xmind")
if err != nil {
panic(err)
}
if len(wb.Topics) != 2 {
return
}
// 在第一个sheet页修改一些数据
wb.Topics[0].OnTitle("345").Add("111").Add("222").OnTitle("xcv").
Add("xzcv").Add("werw")
// 在第二个sheet页修改一些数据
wb.Topics[1].OnTitle("34").Add("111").Add("222").OnTitle("aaa").
Add("xzcv").Add("werw")
// 可以用xmind打开这两个文件,比较一下不同
err = wb.Save("TestLoadXmindJson.xmind")
if err != nil {
panic(err)
}
}
基于Go语言的xmind读写库,我主要用来把有道云笔记思维导图转为xmind的更多相关文章
- vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图
vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...
- 思维导图工具XMind
思维导图工具XMind XMind简单介绍 官网地址:https://www.xmind.cn/ XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生.作为一款有效提升工作和生活效率 ...
- 思维导图软件xmind和mindmanager哪个更好
思维导图是一种将放射性思考具体化的方法,可以将人们的创造性思维及时捕捉并呈现,目前便捷的网络为人们带来了众多的思维导图软件,而在这些软件中只有亲身实践体验过,才能知道到底思维导图哪个好,哪个又适合自己 ...
- 很好的一款思维导图工具XMind使用教程
1.首先,下载并安装该软件Xmind.安装完毕后,在[开始菜单]寻找Xmind快捷方式,点击打开主程序. 2.打开时出现[新建]页面,可以选择创建空白主题的文档,也可以选择从模板创作.本例选择创建空白 ...
- 安利一款强大的学习软件XMind(顺便放上这几天制作的JavaSE的思维导图day1-day4)
最近在学习Java,并且在使用一款非常酷炫无敌吊炸天的软件,思维导图制作神器-XMind,然后就像分享给大家,至于XMind是什么大家自行百度,在这里我就不赘述了 我这里说下我认为的好的实用的常用快捷 ...
- 思维导图工具XMind下载
XMind 是一款非常实用的商业思维导图软件,全力打造易用.高效的可视化思维软件,强调软件的可扩展.跨平台.稳定性和性能,致力于使用先进的软件技术帮助用户真正意义上提高生产率.XMind 支持 在Wi ...
- 测试用例使用传统excel还是思维导图(Xmind、MindManager等)?
一.使用感言 实习时随便使用了word文档编写测试用例,也没有人带.后来第一份正式测试工作,也没有人带测试,那时跟着大众学用思维导图写测试用例,发现思维导图非常灵活.目前使用xmind. 使用思维导图 ...
- 思维导图软件 xMind 基本用法
官方下载:https://www.xmind.net/download/win/ 官方快捷键说明:https://www.xmind.net/blog/cn/tag/xmind%EF%BC%8C%E5 ...
- 快速列出大纲.提纲.归纳知识点 思维导图工具Xmind
博客搬迁,给您带来的不便敬请谅解! http://www.suanliutudousi.com/2017/10/23/%E5%BF%AB%E9%80%9F%E5%88%97%E5%87%BA%E5%A ...
随机推荐
- django框架6
内容概要 神奇的双下划线查询 外键字段的创建 外键字段操作 多表查询 基于对象的跨表查询 基于双下划线的跨表查询 双下线查询扩展 如何查看SQL语句 内容详情 神奇的双下划线查询 1.查询年龄大于20 ...
- Dubbo的基本使用
Dubbo分为提供者和消费方 并且两者都要注册到ZK上 提供者 注解 @Service 这是dubbo包下的 消费组 注解 @Reference 远程注入 第一步导入依赖 <! ...
- .NET中测试代码运行时间
更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月29日. 计算代码运行的时间,除了呆萌地用秒表去计时,或者可以通过Visual Studio来查看,还可以在.NET代码中使用St ...
- TypeScript(6)函数
函数 函数是 JavaScript 应用程序的基础,它帮助你实现抽象层,模拟类,信息隐藏和模块.在 TypeScript 里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义行为的地方.Type ...
- VirtualBox虚拟机安装Ubuntu系统后,增加内存空间和处理器核心数
对于Linux爱好者而言,初次使用虚拟机时,一般都会使用默认的设置,例如硬盘空间.内存空间等等. 而往往在熟悉之后,安装了某些必要的软件,或者熟悉了实际的开发场景后,却发现原本给虚拟机分配的物理资源是 ...
- 配置svn,httpd启动报错 Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
查看httpd的状态,发现80端口被占用,因为我的nginx的80端口. systemctl status httpd.service 解决: 把Apache的端口该成别的端口 vi /etc/ht ...
- 时空图神经网路:STGNNs
STGNNs:SPATIAL–TEMPORAL GRAPH NEURAL NETWORKS 许多实际应用中的图在图结构和图输入方面都是动态的.STGNNs在捕获图的动态性方面占有重要地位. 这类方法的 ...
- 临近梯度下降算法(Proximal Gradient Method)的推导以及优势
邻近梯度下降法 对于无约束凸优化问题,当目标函数可微时,可以采用梯度下降法求解:当目标函数不可微时,可以采用次梯度下降法求解:当目标函数中同时包含可微项与不可微项时,常采用邻近梯度下降法求解.上述三种 ...
- GET 和 POST 请求的区别与安全性
超文本传输协议( HTTP )是用于启用客户端与服务器之间的通信,其中 GET 请求和 POST 请求是则是 HTTP 方法中最为常用的两种.那么这 GET 和 POST 的区别到底是什么呢?两者是否 ...
- 5-8 Resource 静态资源服务器
静态资源服务器 什么是静态资源服务器 我们无论做什么项目,都会有一些页面中需要显示的静态资源,例如图片,视频文档等 我们一般会创建一个单独的项目,这个项目中保存静态资源 其他项目可以通过我们保存资源的 ...