專案地址
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)
}
}
<style>.qm_point{color:#6DA47D;font-size:18px}.qm_a{color:#0000FF}</style>
作者:janbar
出處:https://www.cnblogs.com/janbar
本文著作權歸作者和博客園所有,歡迎轉載,轉載請標明出處,喜歡我的文章請 [關注我] 吧,
如果您覺得本篇博文對您有所識訓,可點擊 [推薦] 并 [收藏] ,或到右側 [打賞] 里請我喝杯咖啡,非常感謝,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502389.html
標籤:其他
