Skip to main content

XMind data files reading and writing library.

Project description

mekk.xmind is a pure-Python handler for XMind mind-map files. It can be used to:

  • generate XMind mind-maps from scratch (for example to visualize some data as a mind-map),

  • modify existing .xmind files,

  • parse existing .xmind files and analyze their content.

Examples

Creating mind-map:

from mekk.xmind import XMindDocument

OUTPUT = "test.xmind"

xmind = XMindDocument.create(u"First sheet title", u"Root subject")
first_sheet = xmind.get_first_sheet()
root_topic = first_sheet.get_root_topic()

root_topic.add_subtopic(u"First item")
root_topic.add_subtopic(u"Second item")
t = root_topic.add_subtopic(u"Third item")
t.add_subtopic(u"Second level - 1")
t.add_subtopic(u"Second level - 2")
root_topic.add_subtopic(u"Detached topic", detached = True)
t.add_subtopic(u"Another detached", detached = True)
t.add_marker("flag-red")
root_topic.add_subtopic(u"Link example").set_link("http://mekk.waw.pl")
root_topic.add_subtopic(u"Attachment example").set_attachment(
    file("map_creator.py").read(), ".txt")
root_topic.add_subtopic(u"With note").set_note(u"""This is just some dummy note.""")

MARKER_CODE = "40g6170ftul9bo17p1r31nqk2a"
XMP = "../../py_mekk_nozbe2xmind/src/mekk/nozbe2xmind/NozbeIconsMarkerPackage.xmp"
root_topic.add_subtopic(u"With non-standard marker").add_marker(MARKER_CODE)

xmind.embed_markers(XMP)

xmind.save(OUTPUT)

#xmind.pretty_print()

print "Saved to", OUTPUT

Note: while examples above use ascii, unicode is fully supported.

Parsing mind map:

from mekk.xmind import XMindDocument

xmind = XMindDocument.open("test.xmind")

sheet = xmind.get_first_sheet()
print "Sheet title: ", sheet.get_title()

root = sheet.get_root_topic()
print "Root title: ", root.get_title()
print "Root note: ", root.get_note()

for topic in root.get_subtopics():
    print "* ", topic.get_title()
    print "   label: ", topic.get_label()
    print "   link: ", topic.get_link()
    print "   markers: ", list(topic.get_markers())
    # topic.get_subtopics()

etc.

To modify, just parse existing document, find items to modify and change them as appropriate, then save.

Development

The code is tracked using Mercurial. Repository can be found on http://bitbucket.org/Mekk/mekk.xmind/.

Use the same place to report bugs, suggest improvements and offer patches.

License

mekk.xmind is dual-licensed under Artistic License 2.0 and Mozilla Public License 1.1. The complete license texts can be found in Artistic-2.0.txt and MPL-1.1.txt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mekk.xmind-0.5.0.tar.gz (11.9 kB view details)

Uploaded Source

File details

Details for the file mekk.xmind-0.5.0.tar.gz.

File metadata

  • Download URL: mekk.xmind-0.5.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mekk.xmind-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4a8dc01cfca6622320be586cc2dfea3ef153f684a81139b35479231ac6398210
MD5 a0afc14b0adafb8cde09c632d6483e70
BLAKE2b-256 a9ba4f74434aebfd48ce378596d2baccfb6b0e054c6cacfe1a7dd639e574e12d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page