freeplane-and-yaml 0.1.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Romilly Cocking
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ include README.md
2
+ include LICENSE
3
+ include freeplane_yaml/*.py
4
+ include schema/mindmap-schema.json # Include the specific JSON file
5
+
@@ -0,0 +1,132 @@
1
+ Metadata-Version: 2.1
2
+ Name: freeplane-and-yaml
3
+ Version: 0.1.1
4
+ Summary: A tool to convert YAML files to Freeplane MM format
5
+ Home-page: https://github.com/romilly/freeplane-and-yaml
6
+ Author: Romilly Cocking
7
+ Author-email: romilly.cocking@gmail.com
8
+ License: MIT
9
+ Platform: UNKNOWN
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.9
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+
17
+ # YAML to Freeplane Converter
18
+
19
+ A Python tool that converts YAML files into Freeplane mind maps. This allows you to generate mind maps programmatically from structured YAML data.
20
+
21
+ The YAML file can be created using [Claude AI](https://claude.ai/chat/). A suitable prompt is given [below](#converting-documents-to-mind-maps-using-claude-ai).
22
+
23
+ You can read about how it got written using AI on [medium](https://medium.com/@romillyc/build-your-own-mind-map-tools-with-ai-b193564f2464?sk=b353aa7d16d6412e4aae8f3eab0ec554).
24
+ That's a friend link so you can read it even if you're not a subscriber.
25
+
26
+ ## Installation
27
+
28
+ First, clone this repository:
29
+
30
+ ```bash
31
+ # clone the project from GitHub
32
+ git clone https://github.com/romilly/freeplane-and-yaml.git
33
+ cd freeplane-and-yaml
34
+ ```
35
+
36
+ This project requires Python and should be run in a virtual environment:
37
+
38
+ ```bash
39
+ # Create and activate virtual environment
40
+ python -m venv venv
41
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
42
+
43
+ # Install required packages
44
+ pip install pyyaml
45
+ ```
46
+
47
+ ## Usage
48
+
49
+ The code should be run from the `src` directory after activating the virtual environment. Your YAML file should follow the schema defined in `schema/mindmap-schema.json`. Here's an example structure:
50
+
51
+ ```yaml
52
+ root:
53
+ title: "Your Main Topic"
54
+ note: "Optional note for the main topic"
55
+ children:
56
+ subtopic1:
57
+ title: "Subtopic 1"
58
+ note: "Optional note for subtopic 1"
59
+ children:
60
+ # ... more nested topics
61
+ subtopic2:
62
+ title: "Subtopic 2"
63
+ # ... and so on
64
+ ```
65
+
66
+ ### YAML Schema Requirements
67
+
68
+ The YAML must conform to these rules:
69
+ - Must have a root node with a title and at least one child
70
+ - Each node requires a title
71
+ - Notes are optional
72
+ - Child node keys must be alphanumeric (including underscores)
73
+ - No additional properties are allowed beyond title, note, and children
74
+
75
+ For full schema details, see `schema/mindmap-schema.json`.
76
+
77
+ ### Converting Documents to Mind Maps using Claude AI
78
+
79
+ You can use Claude Sonnet to automatically convert documents (PDFs, articles, specifications, etc.) into the required YAML format. Here's the workflow:
80
+
81
+ 1. Share your document and the schema (from `schema/mindmap-schema.json`)with Claude Sonnet.
82
+ 2. Use this prompt:
83
+ ```
84
+ I've uploaded a document and a schema file. I'd like you to summarise the document as a yaml file following the schema that I uploaded.
85
+ ```
86
+ 3. Claude will generate a YAML file that follows the schema
87
+ 4. Save Claude's output as a .yaml file
88
+ 5. Convert it to a mind map using this tool
89
+
90
+ This workflow is useful for:
91
+ - Summarizing academic papers
92
+ - Converting product requirements documents (PRDs)
93
+ - Creating structured summaries of technical documentation
94
+ - Organizing research notes
95
+
96
+ ### Converting YAML to Mind Map
97
+
98
+ To convert a YAML file to a Freeplane mind map:
99
+
100
+ ```python
101
+ from freeplane_and_yaml.convert_yaml_to_freeplane import convert_yaml_file
102
+
103
+ # Convert YAML to mind map
104
+ convert_yaml_file('path/to/your/input.yaml', 'output.mm')
105
+ ```
106
+
107
+ The generated `.mm` file can be opened in Freeplane. When you first open the file, Freeplane will show this warning dialog because the file wasn't created by Freeplane itself:
108
+
109
+ ![Freeplane Warning Dialog](images/warning-dialog.png)
110
+
111
+ This is normal and expected — click OK to load the mind map.
112
+
113
+ Here's an example of how the output looks:
114
+
115
+ ![Example Mind Map](images/Screenshot%20at%202025-02-12%2010-43-23.png)
116
+
117
+ ## Features
118
+
119
+ - Converts YAML structured data to Freeplane mind map format
120
+ - Supports hierarchical node structure
121
+ - Includes node titles and optional notes
122
+ - Automatically alternates between right and left positions for top-level nodes
123
+ - Generates unique IDs for each node
124
+ - Validates input against JSON schema
125
+
126
+ ## License
127
+
128
+ Apologiresd to readers from the USA. This README uses UK spelling.
129
+
130
+ This project is licensed under the MIT Licence — see the [LICENCE](LICENSE) file for details.
131
+
132
+
@@ -0,0 +1,114 @@
1
+ # YAML to Freeplane Converter
2
+
3
+ A Python tool that converts YAML files into Freeplane mind maps. This allows you to generate mind maps programmatically from structured YAML data.
4
+
5
+ The YAML file can be created using [Claude AI](https://claude.ai/chat/). A suitable prompt is given [below](#converting-documents-to-mind-maps-using-claude-ai).
6
+
7
+ You can read about how it got written using AI on [medium](https://medium.com/@romillyc/build-your-own-mind-map-tools-with-ai-b193564f2464?sk=b353aa7d16d6412e4aae8f3eab0ec554).
8
+ That's a friend link so you can read it even if you're not a subscriber.
9
+
10
+ ## Installation
11
+
12
+ First, clone this repository:
13
+
14
+ ```bash
15
+ # clone the project from GitHub
16
+ git clone https://github.com/romilly/freeplane-and-yaml.git
17
+ cd freeplane-and-yaml
18
+ ```
19
+
20
+ This project requires Python and should be run in a virtual environment:
21
+
22
+ ```bash
23
+ # Create and activate virtual environment
24
+ python -m venv venv
25
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
26
+
27
+ # Install required packages
28
+ pip install pyyaml
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ The code should be run from the `src` directory after activating the virtual environment. Your YAML file should follow the schema defined in `schema/mindmap-schema.json`. Here's an example structure:
34
+
35
+ ```yaml
36
+ root:
37
+ title: "Your Main Topic"
38
+ note: "Optional note for the main topic"
39
+ children:
40
+ subtopic1:
41
+ title: "Subtopic 1"
42
+ note: "Optional note for subtopic 1"
43
+ children:
44
+ # ... more nested topics
45
+ subtopic2:
46
+ title: "Subtopic 2"
47
+ # ... and so on
48
+ ```
49
+
50
+ ### YAML Schema Requirements
51
+
52
+ The YAML must conform to these rules:
53
+ - Must have a root node with a title and at least one child
54
+ - Each node requires a title
55
+ - Notes are optional
56
+ - Child node keys must be alphanumeric (including underscores)
57
+ - No additional properties are allowed beyond title, note, and children
58
+
59
+ For full schema details, see `schema/mindmap-schema.json`.
60
+
61
+ ### Converting Documents to Mind Maps using Claude AI
62
+
63
+ You can use Claude Sonnet to automatically convert documents (PDFs, articles, specifications, etc.) into the required YAML format. Here's the workflow:
64
+
65
+ 1. Share your document and the schema (from `schema/mindmap-schema.json`)with Claude Sonnet.
66
+ 2. Use this prompt:
67
+ ```
68
+ I've uploaded a document and a schema file. I'd like you to summarise the document as a yaml file following the schema that I uploaded.
69
+ ```
70
+ 3. Claude will generate a YAML file that follows the schema
71
+ 4. Save Claude's output as a .yaml file
72
+ 5. Convert it to a mind map using this tool
73
+
74
+ This workflow is useful for:
75
+ - Summarizing academic papers
76
+ - Converting product requirements documents (PRDs)
77
+ - Creating structured summaries of technical documentation
78
+ - Organizing research notes
79
+
80
+ ### Converting YAML to Mind Map
81
+
82
+ To convert a YAML file to a Freeplane mind map:
83
+
84
+ ```python
85
+ from freeplane_and_yaml.convert_yaml_to_freeplane import convert_yaml_file
86
+
87
+ # Convert YAML to mind map
88
+ convert_yaml_file('path/to/your/input.yaml', 'output.mm')
89
+ ```
90
+
91
+ The generated `.mm` file can be opened in Freeplane. When you first open the file, Freeplane will show this warning dialog because the file wasn't created by Freeplane itself:
92
+
93
+ ![Freeplane Warning Dialog](images/warning-dialog.png)
94
+
95
+ This is normal and expected — click OK to load the mind map.
96
+
97
+ Here's an example of how the output looks:
98
+
99
+ ![Example Mind Map](images/Screenshot%20at%202025-02-12%2010-43-23.png)
100
+
101
+ ## Features
102
+
103
+ - Converts YAML structured data to Freeplane mind map format
104
+ - Supports hierarchical node structure
105
+ - Includes node titles and optional notes
106
+ - Automatically alternates between right and left positions for top-level nodes
107
+ - Generates unique IDs for each node
108
+ - Validates input against JSON schema
109
+
110
+ ## License
111
+
112
+ Apologiresd to readers from the USA. This README uses UK spelling.
113
+
114
+ This project is licensed under the MIT Licence — see the [LICENCE](LICENSE) file for details.
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,31 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="freeplane-and-yaml", # Your package name (it must be unique on PyPI)
5
+ version="0.1.1", # Initial release version
6
+ description="A tool to convert YAML files to Freeplane MM format",
7
+ long_description=open("README.md").read(),
8
+ long_description_content_type="text/markdown", # Use Markdown for PyPI description
9
+ url="https://github.com/romilly/freeplane-and-yaml", # Replace with your repository URL
10
+ author="Romilly Cocking",
11
+ author_email="romilly.cocking@gmail.com",
12
+ license="MIT", # Choose your license (e.g., MIT, Apache)
13
+ packages=find_packages(where="src"), # Look for packages in src/
14
+ package_dir={"": "src"}, # Root of packages is src/
15
+ include_package_data=True, # Include non-Python files listed in MANIFEST.in
16
+ install_requires=[
17
+ "PyYAML", # Replace or add dependencies here
18
+ ],
19
+ classifiers=[
20
+ "Programming Language :: Python :: 3",
21
+ "License :: OSI Approved :: MIT License", # Your license
22
+ "Operating System :: OS Independent",
23
+ ],
24
+ python_requires=">=3.9", # Specify minimum Python version
25
+ entry_points={
26
+ "console_scripts": [
27
+ "convert=freeplane_and_yaml.cli:main",
28
+ ],
29
+ },
30
+
31
+ )
@@ -0,0 +1,40 @@
1
+ import sys
2
+ import os
3
+ from .convert import convert_yaml_file # Import your conversion logic
4
+
5
+
6
+ def main():
7
+ # Check for the correct number of arguments
8
+ if len(sys.argv) != 3:
9
+ print("Usage: convert input.yaml output_directory")
10
+ sys.exit(1)
11
+
12
+ # Parse arguments
13
+ input_file = sys.argv[1]
14
+ output_dir = sys.argv[2]
15
+
16
+ # Validate the input YAML file
17
+ if not input_file.endswith(".yaml"):
18
+ print(f"Error: {input_file} is not a valid YAML file.")
19
+ sys.exit(1)
20
+
21
+ if not os.path.isfile(input_file):
22
+ print(f"Error: Input file {input_file} does not exist.")
23
+ sys.exit(1)
24
+
25
+ # Validate the output directory
26
+ if not os.path.isdir(output_dir):
27
+ print(f"Error: Output directory {output_dir} does not exist.")
28
+ sys.exit(1)
29
+
30
+ # Generate the `.m` file name based on the input file
31
+ base_name = os.path.basename(input_file).replace(".yaml", ".mm")
32
+ output_file = os.path.join(output_dir, base_name)
33
+
34
+ # Perform the conversion
35
+ try:
36
+ convert_yaml_file(input_file, output_file)
37
+ print(f"Conversion complete: {output_file}")
38
+ except Exception as e:
39
+ print(f"Error during conversion: {e}")
40
+ sys.exit(1)
@@ -0,0 +1,100 @@
1
+ import yaml
2
+ from xml.etree.ElementTree import Element, SubElement, tostring
3
+ from xml.dom import minidom
4
+ import uuid
5
+ import argparse
6
+ import os
7
+
8
+ def generate_node_id():
9
+ """Generate a unique ID for a node."""
10
+ return f"ID_{str(uuid.uuid4()).replace('-', '_')}"
11
+
12
+ def create_note_element(note_text):
13
+ """Create a richcontent note element with the given text."""
14
+ richcontent = Element('richcontent', {
15
+ 'TYPE': 'NOTE',
16
+ 'CONTENT-TYPE': 'xml/'
17
+ })
18
+ html = SubElement(richcontent, 'html')
19
+ head = SubElement(html, 'head')
20
+ body = SubElement(html, 'body')
21
+ p = SubElement(body, 'p')
22
+ p.text = note_text
23
+ return richcontent
24
+
25
+ def add_node_recursive(parent_element, node_data, position=None):
26
+ """Recursively add nodes to the mind map."""
27
+ # Create node element with basic attributes
28
+ node_attrs = {
29
+ 'TEXT': node_data['title'],
30
+ 'ID': generate_node_id()
31
+ }
32
+ if position:
33
+ node_attrs['POSITION'] = position
34
+
35
+ node = SubElement(parent_element, 'node', node_attrs)
36
+
37
+ # Add note if present
38
+ if 'note' in node_data:
39
+ node.append(create_note_element(node_data['note']))
40
+
41
+ # Process children if present
42
+ if 'children' in node_data:
43
+ # Alternate positions for children
44
+ positions = ['right', 'left']
45
+ position_index = 0
46
+
47
+ for child_key, child_data in node_data['children'].items():
48
+ # Alternate between right and left for top-level children
49
+ child_position = positions[position_index % 2] if parent_element.tag == 'map' else None
50
+ position_index += 1
51
+ add_node_recursive(node, child_data, child_position)
52
+
53
+ def converter(yaml_content):
54
+ """Convert YAML content to Freeplane mind map format."""
55
+ # Parse YAML content
56
+ data = yaml.safe_load(yaml_content)
57
+
58
+ # Create the base map element
59
+ map_elem = Element('map', {'version': '1.9.13'})
60
+
61
+ # Add the root node and its children
62
+ add_node_recursive(map_elem, data['root'])
63
+
64
+ # Convert to string and pretty print
65
+ rough_string = tostring(map_elem, 'utf-8')
66
+ reparsed = minidom.parseString(rough_string)
67
+ pretty_xml = reparsed.toprettyxml(indent=" ")
68
+
69
+ # Add XML declaration
70
+ if not pretty_xml.startswith('<?xml'):
71
+ pretty_xml = '<?xml version="1.0" encoding="UTF-8"?>\n' + pretty_xml
72
+
73
+ return pretty_xml
74
+
75
+ def convert_yaml_file(yaml_file_path, output_file_path):
76
+ """Convert a YAML file to a Freeplane mind map file."""
77
+ with open(yaml_file_path, 'r', encoding='utf-8') as yaml_file:
78
+ yaml_content = yaml_file.read()
79
+
80
+ mind_map_xml = converter(yaml_content)
81
+
82
+ with open(output_file_path, 'w', encoding='utf-8') as mm_file:
83
+ mm_file.write(mind_map_xml)
84
+
85
+ # Example usage:
86
+ if __name__ == "__main__":
87
+ parser = argparse.ArgumentParser(description='Convert YAML file to Freeplane mind map')
88
+ parser.add_argument('input_file', help='Input YAML file path')
89
+ parser.add_argument('output_dir', help='Output directory for the mind map file')
90
+
91
+ args = parser.parse_args()
92
+
93
+ # Create output directory if it doesn't exist
94
+ os.makedirs(args.output_dir, exist_ok=True)
95
+
96
+ # Generate output filename based on input filename
97
+ input_basename = os.path.splitext(os.path.basename(args.input_file))[0]
98
+ output_file = os.path.join(args.output_dir, f"{input_basename}.mm")
99
+
100
+ convert_yaml_file(args.input_file, output_file)
@@ -0,0 +1,132 @@
1
+ Metadata-Version: 2.1
2
+ Name: freeplane-and-yaml
3
+ Version: 0.1.1
4
+ Summary: A tool to convert YAML files to Freeplane MM format
5
+ Home-page: https://github.com/romilly/freeplane-and-yaml
6
+ Author: Romilly Cocking
7
+ Author-email: romilly.cocking@gmail.com
8
+ License: MIT
9
+ Platform: UNKNOWN
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.9
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+
17
+ # YAML to Freeplane Converter
18
+
19
+ A Python tool that converts YAML files into Freeplane mind maps. This allows you to generate mind maps programmatically from structured YAML data.
20
+
21
+ The YAML file can be created using [Claude AI](https://claude.ai/chat/). A suitable prompt is given [below](#converting-documents-to-mind-maps-using-claude-ai).
22
+
23
+ You can read about how it got written using AI on [medium](https://medium.com/@romillyc/build-your-own-mind-map-tools-with-ai-b193564f2464?sk=b353aa7d16d6412e4aae8f3eab0ec554).
24
+ That's a friend link so you can read it even if you're not a subscriber.
25
+
26
+ ## Installation
27
+
28
+ First, clone this repository:
29
+
30
+ ```bash
31
+ # clone the project from GitHub
32
+ git clone https://github.com/romilly/freeplane-and-yaml.git
33
+ cd freeplane-and-yaml
34
+ ```
35
+
36
+ This project requires Python and should be run in a virtual environment:
37
+
38
+ ```bash
39
+ # Create and activate virtual environment
40
+ python -m venv venv
41
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
42
+
43
+ # Install required packages
44
+ pip install pyyaml
45
+ ```
46
+
47
+ ## Usage
48
+
49
+ The code should be run from the `src` directory after activating the virtual environment. Your YAML file should follow the schema defined in `schema/mindmap-schema.json`. Here's an example structure:
50
+
51
+ ```yaml
52
+ root:
53
+ title: "Your Main Topic"
54
+ note: "Optional note for the main topic"
55
+ children:
56
+ subtopic1:
57
+ title: "Subtopic 1"
58
+ note: "Optional note for subtopic 1"
59
+ children:
60
+ # ... more nested topics
61
+ subtopic2:
62
+ title: "Subtopic 2"
63
+ # ... and so on
64
+ ```
65
+
66
+ ### YAML Schema Requirements
67
+
68
+ The YAML must conform to these rules:
69
+ - Must have a root node with a title and at least one child
70
+ - Each node requires a title
71
+ - Notes are optional
72
+ - Child node keys must be alphanumeric (including underscores)
73
+ - No additional properties are allowed beyond title, note, and children
74
+
75
+ For full schema details, see `schema/mindmap-schema.json`.
76
+
77
+ ### Converting Documents to Mind Maps using Claude AI
78
+
79
+ You can use Claude Sonnet to automatically convert documents (PDFs, articles, specifications, etc.) into the required YAML format. Here's the workflow:
80
+
81
+ 1. Share your document and the schema (from `schema/mindmap-schema.json`)with Claude Sonnet.
82
+ 2. Use this prompt:
83
+ ```
84
+ I've uploaded a document and a schema file. I'd like you to summarise the document as a yaml file following the schema that I uploaded.
85
+ ```
86
+ 3. Claude will generate a YAML file that follows the schema
87
+ 4. Save Claude's output as a .yaml file
88
+ 5. Convert it to a mind map using this tool
89
+
90
+ This workflow is useful for:
91
+ - Summarizing academic papers
92
+ - Converting product requirements documents (PRDs)
93
+ - Creating structured summaries of technical documentation
94
+ - Organizing research notes
95
+
96
+ ### Converting YAML to Mind Map
97
+
98
+ To convert a YAML file to a Freeplane mind map:
99
+
100
+ ```python
101
+ from freeplane_and_yaml.convert_yaml_to_freeplane import convert_yaml_file
102
+
103
+ # Convert YAML to mind map
104
+ convert_yaml_file('path/to/your/input.yaml', 'output.mm')
105
+ ```
106
+
107
+ The generated `.mm` file can be opened in Freeplane. When you first open the file, Freeplane will show this warning dialog because the file wasn't created by Freeplane itself:
108
+
109
+ ![Freeplane Warning Dialog](images/warning-dialog.png)
110
+
111
+ This is normal and expected — click OK to load the mind map.
112
+
113
+ Here's an example of how the output looks:
114
+
115
+ ![Example Mind Map](images/Screenshot%20at%202025-02-12%2010-43-23.png)
116
+
117
+ ## Features
118
+
119
+ - Converts YAML structured data to Freeplane mind map format
120
+ - Supports hierarchical node structure
121
+ - Includes node titles and optional notes
122
+ - Automatically alternates between right and left positions for top-level nodes
123
+ - Generates unique IDs for each node
124
+ - Validates input against JSON schema
125
+
126
+ ## License
127
+
128
+ Apologiresd to readers from the USA. This README uses UK spelling.
129
+
130
+ This project is licensed under the MIT Licence — see the [LICENCE](LICENSE) file for details.
131
+
132
+
@@ -0,0 +1,13 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ setup.py
5
+ src/freeplane_and_yaml/__init__.py
6
+ src/freeplane_and_yaml/cli.py
7
+ src/freeplane_and_yaml/convert.py
8
+ src/freeplane_and_yaml.egg-info/PKG-INFO
9
+ src/freeplane_and_yaml.egg-info/SOURCES.txt
10
+ src/freeplane_and_yaml.egg-info/dependency_links.txt
11
+ src/freeplane_and_yaml.egg-info/entry_points.txt
12
+ src/freeplane_and_yaml.egg-info/requires.txt
13
+ src/freeplane_and_yaml.egg-info/top_level.txt
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ convert = freeplane_and_yaml.cli:main
3
+
@@ -0,0 +1 @@
1
+ freeplane_and_yaml