Metadata-Version: 2.1
Name: py-mind-memo
Version: 0.6.0
Summary: A lightweight and intuitive mindmap like tool built with tkinter.
Home-page: https://github.com/matsuuramasakazu/py_mind_memo
Author: matsuuramasakazu
Author-email: matsuuramasakazu@outlook.jp
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# py_mind_memo - Python Mindmap like Tool

Pythonの標準ライブラリ `tkinter` のみで構築された、軽量で直感的な操作が可能なマインドマップ風のメモツールです。
XMindのような快適なキーボード操作と、モダンで美しいビジュアルデザインを両立しています。

## 特徴

*   **直感的な操作**: キーボードショートカットを中心とした素早い思考の書き出しが可能。
*   **美しいデザイン**: 系統ごとの自動色分け（ブランチカラー）、滑らかなテーパー曲線、S字ベジェ曲線による接続。
*   **動的レイアウト**: テキストの長さに応じて自動的にトピック間隔や位置を調整。長いテキストは自動的に折り返されます。
*   **ドラッグ＆ドロップ**: マウス操作でトピックの親子関係を自由に入れ替え可能。
*   **折り畳み・展開**: 子を持つトピックをワンクリックで折りたたんで情報を集約。複雑なマップもスッキリ整理できます。
*   **インライン画像表示**: トピック内に画像を挿入し、マインドマップ上にインライン表示が可能です。
*   **参照関係の描画**: 離れたトピック間に破線の矢印（関連線）を引き、関連性を示すことができます。操作点をドラッグして曲線の形状も自由に調整可能です。
*   **トピックの並べ替え**: 同階層のトピックであれば、ショートカットキーを使って順序を上下（または時計回り/反時計回り）に入れ替えることができます。
*   **自動保存**: 一度ファイル名を入力して保存した後は、編集内容が定期的に自動で保存されます。不意のトラブルによるデータ損失を防ぎます。
*   **軽量・ポータブル**: Python標準ライブラリのみを使用しているため、導入が容易。UIは直感的な英語表記を採用しています。

## スクリーンショットイメージ
![py_mind_memo](https://github.com/matsuuramasakazu/py_mind_memo/blob/main/images/py_mind_memo.jpg?raw=true)
- **Root Topic** から美しい曲線が伸び、各ブランチが鮮やかに色分けされています。
- テキストの下にカラー線が引かれ、ミニマルで清潔感のあるデザインです。

## インストール・実行方法

Python 3.8以上が必要です。

```bash
# pip install py_mind_memo
py_mind_memo
```

## 使い方・ショートカットキー

### キーボード操作

| キー | 操作内容 |
| :--- | :--- |
| **Tab** | 選択中のトピックに **子トピック (New Topic)** を追加 |
| **Enter** | 選択中のトピックの **兄弟トピック**（同階層）を追加 |
| **F2** | 選択中のトピックの **テキストを編集** |
| **Enter (編集時)** | 編集を **確定・終了** |
| **Ctrl + Enter (編集時)** | **改行** を入力 |
| **Ctrl + I (編集時)** | **画像 (PNG)** を挿入（200x200pxに自動縮小） |
| **Delete** | 選択中のトピック（およびその子孫）を **削除** |
| **矢印キー** | トピック間を直感的に **移動** |
| **Ctrl + S** | マインドマップを **Save (保存)**（一度保存した後は自動保存が有効になります） |
| **Ctrl + Shift + S** | マインドマップを **Save As (名前を付けて保存)** |
| **Ctrl + O** | 保存したマインドマップを **Open (開く)** |
| **Ctrl + R** | **参照関係編集モード** の開始 / 中断（接続元→接続先をクリックして関係性を描画） |
| **Ctrl + Up** | 同階層の上のトピックと順序を入れ替える（中心トピックの子トピックの場合は反時計回りにトピックを移動） |
| **Ctrl + Down** | 同階層の下のトピックと順序を入れ替える（中心トピックの子トピックの場合は時計回りにトピックを移動） |

### マウス操作

| 操作 | 内容 |
| :--- | :--- |
| **左クリック** | トピックを **選択**。選択されたトピックは青くハイライトされます。 |
| **ダブルクリック** | トピックの **編集モード** を開始します。 |
| **左ドラッグ** | トピックを他のトピックへ **移動**（ドロップ先のトピックの子になります）。 |
| **ホイール** | 画面の **上下スクロール**。 |
| **Shift + ホイール** | 画面の **左右スクロール**。 |
| **アイコンクリック** | トピックの右（または左）にある丸いアイコンをクリックして **折り畳み/展開** を切り替えます。折り畳み中は隠れている子トピックの数が表示されます。 |
| **参照関係曲線のドラッグ** | 選択状態の参照関係曲線に表示される **操作点（コントロールポイント）** をドラッグして、曲線の形状を自由に変更します。 |

*※ドラッグ中に画面端へポインタを持っていくと、自動的にキャンバスがスクロールします。*

### リッチテキスト装飾

トピックのテキスト内に以下のタグを記述することで、部分的に装飾が可能です。

| タグ | 効果 | 例 |
| :--- | :--- | :--- |
| `<b>...</b>` | **太字 (Bold)** | `<b>重要</b>な項目` |
| `<i>...</i>` | *斜体 (Italic)* | `<i>Italic</i> text` |
| `<u>...</u>` | <u>下線 (Underline)</u> | `<u>強調</u>したい` |
| `<c:#RRGGBB>...</c>` | 指定した **色** | `<c:#FF0000>赤色</c>` |

*※タグは入れ子（ネスト）にすることも可能です： `<b><i>太字かつ斜体</i></b>`*

## 開発コンセプト

このツールは「思考の速度を妨げないこと」を最優先に開発されました。
マウスに持ち替えることなく、キーボードだけでスピーディーにアイディアを膨らませ、かつ出来上がったマップが自動的に美しく整形されることを目指しています。

## 技術スタック

*   **Language**: Python 3.8+
*   **GUI Library**: tkinter (Standard Library)
*   **Design Pattern**: MVC (Model-View-Controller)


