mekk.xmind / README.txt

.. -*- mode: rst; coding: utf-8 -*-


``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.


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)
    root_topic.add_subtopic(u"Link example").set_link("")
    root_topic.add_subtopic(u"Attachment example").set_attachment(
        file("").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)
    print "Saved to", OUTPUT

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

Parsing mind map::

    from mekk.xmind import XMindDocument
    xmind ="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()

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


The code is tracked using Mercurial. Repository can be found on

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

.. _XMind:


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.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.