Skip to main content

A tool to convert between Freemind/Freeplane and PlantUML mindmaps.

Project description

Mind Map Converter

Overview

This project provides a Python script (mindmapconverter.py) to facilitate the conversion between Freeplane/Freemind XML mind map files (.mm) and PlantUML mind map definitions (.puml). This enables users to leverage Freeplane/Freemind for visual mind map creation and then convert these maps into a PlantUML format suitable for embedding in documentation, especially in environments that support PlantUML rendering (e.g., GitLab, Confluence, Markdown viewers with Kroki integration).

Features

  • Convert Freeplane/Freemind (.mm) to PlantUML (.puml).
  • Convert PlantUML (.puml) to Freeplane/Freemind (.mm).
  • Supports both standard PlantUML syntax (* Node) and legacy underscore syntax (*_ Node).
  • Command-line interface with proper argument parsing.

Installation

Prerequisites

  • Python 3.x

From PyPI

pip install mindmapconverter

From Source

  1. Clone the repository:
    git clone https://github.com/your-username/mindmapconverter.git
    cd mindmapconverter
    
  2. Install the package:
    pip install .
    
    Or for development (editable mode):
    pip install -e .
    

Usage

The script automatically detects the conversion direction based on the input file's extension.

Command Line Interface

python mindmapconverter.py input_file [-o output_file]

Converting Freeplane/Freemind to PlantUML

To convert a Freeplane/Freemind .mm file to PlantUML:

python mindmapconverter.py input_file.mm -o output_file.puml

Example:

python mindmapconverter.py my_mindmap.mm -o my_mindmap.puml

If -o is omitted, the output is printed to stdout:

python mindmapconverter.py my_mindmap.mm > my_mindmap.puml

Converting PlantUML to Freeplane/Freemind

To convert a PlantUML .puml file to Freeplane/Freemind XML:

python mindmapconverter.py input_file.puml -o output_file.mm

Example:

python mindmapconverter.py my_mindmap.puml -o my_mindmap.mm

Supported Syntax

The converter supports the standard PlantUML MindMap syntax using asterisks for hierarchy:

@startmindmap
* Root
** Child 1
** Child 2
*** Grandchild
@endmindmap

It also supports the legacy syntax with underscores (*_ Node).

Testing

To run the included unit tests:

python3 test_mindmapconverter.py

Contributing

Contributions are welcome! If you have suggestions for improvements, bug reports, or want to add new features, please feel free to:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature).
  3. Make your changes and add tests.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/YourFeature).
  6. Open a Pull Request.

License

This project is licensed under the MIT License.

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

mindmapconverter-0.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mindmapconverter-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file mindmapconverter-0.1.0.tar.gz.

File metadata

  • Download URL: mindmapconverter-0.1.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mindmapconverter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 51df73c76878d0e7f42d9d70058d607b9b9a5d964a43c36b806ed5a427567935
MD5 61b5cade3d909834fa99e19aa6450224
BLAKE2b-256 ad262b9a29e2cc2b30c007c8769e8e55b82fd0955d4e71e6a73f8a556c274c76

See more details on using hashes here.

File details

Details for the file mindmapconverter-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mindmapconverter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46afc52782b853835e1202038171034ae2fee84fed6d0fd87e4e2a7bd538290d
MD5 2597b42f4f0ede1fcb1d2fab802d6cb8
BLAKE2b-256 640ad820b5ad99084e5d0f4aab4bfe7f0b855e106b25eec41cc83f9f03b86e76

See more details on using hashes here.

Supported by

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