XMind 是基于 Python 实现,提供了对 XMind思维导图进行创建、解析、更新的一站式解决方案!
一、安装方式
pip3 install XMind
or
pip3 install xmind
二、版本升级
pip3 install -U XMind
三、使用方式
1、创建XMind文件
def gen_my_xmind_file():
# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 对第一个画布进行设计完善,具体参照下一个函数
design_sheet1(sheet1)
# 3、创建第二个画布
gen_sheet2(workbook, sheet1)
# 4、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')
def design_sheet1(sheet1):
# ***** 第一个画布 *****
sheet1.setTitle("first sheet") # 设置画布名称
# 获取画布的中心主题,默认创建画布时会新建一个空白中心主题
root_topic1 = sheet1.getRootTopic()
root_topic1.setTitle("root node") # 设置主题名称
# 创建一个子主题,并设置其名称
sub_topic1 = root_topic1.addSubTopic()
sub_topic1.setTitle("first sub topic")
sub_topic2 = root_topic1.addSubTopic()
sub_topic2.setTitle("second sub topic")
sub_topic3 = root_topic1.addSubTopic()
sub_topic3.setTitle("third sub topic")
sub_topic4 = root_topic1.addSubTopic()
sub_topic4.setTitle("fourth sub topic")
# 除了新建子主题,还可以创建自由主题(注意:只有中心主题支持创建自由主题)
detached_topic1 = root_topic1.addSubTopic(topics_type=TOPIC_DETACHED)
detached_topic1.setTitle("detached topic")
detached_topic1.setPosition(0, 30)
# 创建一个子主题的子主题
sub_topic1_1 = sub_topic1.addSubTopic()
sub_topic1_1.setTitle("I'm a sub topic too")
def gen_sheet2(workbook, sheet1):
# ***** 设计第二个画布 *****
sheet2 = workbook.createSheet()
sheet2.setTitle("second sheet")
# 获取画布的中心主题
root_topic2 = sheet2.getRootTopic()
root_topic2.setTitle("root node")
# 使用另外一种方法创建子主题
topic1 = TopicElement(ownerWorkbook=workbook)
# 给子主题添加一个主题间超链接,通过指定目标主题ID即可,这里链接到第一个画布
topic1.setTopicHyperlink(sheet1.getID())
topic1.setTitle("redirection to the first sheet")
topic2 = TopicElement(ownerWorkbook=workbook)
topic2.setTitle("topic with an url hyperlink")
# 给子主题添加一个URL超链接
topic2.setURLHyperlink("https://github.com/zhuifengshen/xmind")
topic3 = TopicElement(ownerWorkbook=workbook)
topic3.setTitle("third node")
# 给子主题添加一个备注(快捷键F4)
topic3.setPlainNotes("notes for this topic")
topic3.setTitle("topic with \n notes")
topic4 = TopicElement(ownerWorkbook=workbook)
# 给子主题添加一个文件超链接
topic4.setFileHyperlink("logo.png")
topic4.setTitle("topic with a file")
topic1_1 = TopicElement(ownerWorkbook=workbook)
topic1_1.setTitle("sub topic")
# 给子主题添加一个标签(目前XMind软件仅支持添加一个,快捷键)
topic1_1.addLabel("a label")
topic1_1_1 = TopicElement(ownerWorkbook=workbook)
topic1_1_1.setTitle("topic can add multiple markers")
# 给子主题添加两个图标
topic1_1_1.addMarker(MarkerId.starBlue)
topic1_1_1.addMarker(MarkerId.flagGreen)
topic2_1 = TopicElement(ownerWorkbook=workbook)
topic2_1.setTitle("topic can add multiple comments")
# 给子主题添加一个批注(评论)
topic2_1.addComment("I'm a comment!")
topic2_1.addComment(content="Hello comment!", author='devin')
# 将创建好的子主题添加到其父主题下
root_topic2.addSubTopic(topic1)
root_topic2.addSubTopic(topic2)
root_topic2.addSubTopic(topic3)
root_topic2.addSubTopic(topic4)
topic1.addSubTopic(topic1_1)
topic2.addSubTopic(topic2_1)
topic1_1.addSubTopic(topic1_1_1)
# 给中心主题下的每个子主题添加一个优先级图标
topics = root_topic2.getSubTopics()
for index, topic in enumerate(topics):
topic.addMarker("priority-" + str(index + 1))
# 添加一个主题与主题之间的联系
sheet2.createRelationship(topic1.getID(), topic2.get