Metadata-Version: 2.5
Name: pyplane-mindmap
Version: 0.1.0
Summary: A small, programmable mind-map library and desktop editor
Project-URL: Homepage, https://github.com/oyvinrog/pyplane
Project-URL: Repository, https://github.com/oyvinrog/pyplane
Project-URL: Issues, https://github.com/oyvinrog/pyplane/issues
Author: PyPlane contributors
License: MIT License
        
        Copyright (c) 2026 PyPlane contributors
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
License-File: LICENSE
Keywords: freeplane,mind-map,mindmap
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Office/Business
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: hatchling>=1.26; extra == 'dev'
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-qt>=4.4; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Provides-Extra: ui
Requires-Dist: pyside6<7,>=6.8; extra == 'ui'
Description-Content-Type: text/markdown

# PyPlane

PyPlane is a small Python library and desktop editor for Freeplane-compatible
mind maps. The object model and `.mm` reader have no third-party dependencies;
the optional desktop application uses PySide6.

## Install

```bash
python -m pip install pyplane-mindmap
python -m pip install 'pyplane-mindmap[ui]'  # include the desktop editor
```

Python 3.10 or newer is required. Start the editor with `pyplane`.

## Use from Python

```python
import pyplane

mindmap = pyplane.MindMap("Project")
backend = mindmap.root.add_child("Backend", side="right")
backend.add_child("Database", note="Choose storage")
mindmap.root.add_child("Research", side="left", link="https://example.com")
mindmap.save("project.mm")

loaded = pyplane.load("project.mm")
for node in loaded.walk():
    print(node.text)
```

`NodeStyle` supports a deliberately small presentation set: foreground and
background colors, bold, italic, font size, shape, and basic edge styling.
Unknown Freeplane XML attached to surviving nodes is retained when a map is
loaded, edited, and saved.

## Desktop shortcuts

| Action | Shortcut |
| --- | --- |
| Add child / sibling | Tab / Enter |
| Rename / delete | F2 / Delete |
| Cut / copy / paste subtree | Ctrl+X / Ctrl+C / Ctrl+V |
| Fold or unfold | Space |
| Navigate visible nodes | Arrow keys |
| Search | Ctrl+F |
| Save | Ctrl+S |
| Undo / redo | Ctrl+Z / Ctrl+Y |
| Zoom in / out | Ctrl++ / Ctrl+- |
| Fit map | Ctrl+0 |
| Zoom | Ctrl+mouse wheel |

PyPlane intentionally does not attempt to reproduce Freeplane's plugins,
formulas, scripting, clouds, icon library, or advanced rich-text features.
