Generate SVG diagrams of a (tech) ecosystem, using logos from each tool organised into groups around a central logo
Project description
Ecosystem Diagram Generator
This tool allows you to generate SVG diagrams that visually represent an ecosystem of tools, complete with their logos, based on a YAML configuration file. It's particularly useful for visualizing the relationships and categories of various tools within a technology stack.
Example Output
Below is an example of what the generated diagram looks like, generated with from this example config:
python generate_diagram.py -c examples/full.example.yml -o examples -n full.example
Quick Start
-
Clone the repository
Start by cloning this repository to your local machine.
git clone <repository-url> cd <repository-directory>
-
Install Dependencies
Ensure you have Python installed on your system. Then, install the required Python packages:
pip install -r requirements.txt
-
Prepare Your Configuration
Create a
config.yml
file based on the providedconfig.yml.example
. This file should list all the tools in your ecosystem, categorized appropriately. For example:ecosystem: centralTool: name: Kubernetes groups: - category: Cluster Management tools: - name: Rancher
If you know a particular tool has a different alias on VectorLogoZone (e.g.
helmsh
instead of justhelm
), set thealias
value in the config.If you know you want a logo to be downloaded from a specific URL, set the
svgURL
value in the config.See
config.yml.example
for example configurations! -
Download Logos
Run the
download_logos.py
script to automatically download SVG logos for the tools listed in yourconfig.yml
. The script attempts to fetch logos based on the tool's name, label, or alias, by default into a directory calledlogos
.python download_logos.py
The config file path and logos directory path can be customised, add
--help
for available CLI params. -
Generate Diagram
With the logos downloaded, you can now generate the ecosystem diagram by running the
generate_diagram.py
script.python generate_diagram.py
This will produce an SVG file named
diagram_logos.svg
in your current directory.The config file path, logos directory path and diagram name can be customised, add
--help
for available CLI params.
Customizing Your Diagram
- Configuration File: Modify
config.yml
to add, remove, or categorize tools as needed. Each tool can have aname
,label
, and optionally analias
orsvgURL
for custom logo URLs. - Logo Download: If the automatic logo download doesn't find a logo for a tool, you can manually place an SVG file in the
logos
directory. The file name should match the tool's name in the configuration file. - Diagram Appearance: Modify the
generate_diagram.py
script if you need to change the size, layout, or appearance of the generated diagram.
Troubleshooting
- Missing Logos: Ensure all tools in your
config.yml
have either a validsvgURL
or a corresponding SVG file in thelogos
directory. - Script Errors: Check the Python script logs for any error messages. Most issues can be resolved by ensuring the configuration file is correctly formatted and all dependencies are installed.
Contributing
Contributions to improve the tool or add new features are welcome. Please submit a pull request or open an issue to discuss your ideas.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for logo_diagram_generator-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e593e60509d83f141b7b18054472f04efb9c28e4b534c668eb5104f209e688a4 |
|
MD5 | 719e5f1e9dbb84c6aaf07ca0c3177e01 |
|
BLAKE2b-256 | 78028aa93666ab10a7541d3a9eebeb6aaf775371baf08498463658079fd8dbde |
Hashes for logo_diagram_generator-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d376716cd1f8e68b5ac801eeb3324c2ee6526e0fa299e14b92bde3b87f5652e5 |
|
MD5 | efe75f58553e393dace912258e5bc580 |
|
BLAKE2b-256 | fc19865904d1407e723f90c1acff26b3c09ccbb699acbe8790074b6537e3049d |