From 61b3ea3817ab63893adc25924a64b043bce32e8d Mon Sep 17 00:00:00 2001 From: Andrew Beveridge Date: Thu, 7 Mar 2024 14:19:45 -0600 Subject: [PATCH] Added diagram background color config file option --- Dockerfile | 7 ++++--- examples/full.example.yml | 1 + examples/full.example_logos.svg | 2 +- examples/full.example_text.svg | 2 +- examples/minimal.example_logos.svg | 2 +- examples/minimal.example_text.svg | 2 +- logo_diagram_generator/generate_diagram.py | 11 +++++++++++ pyproject.toml | 2 +- 8 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5d884c1..cda7ed5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,11 @@ RUN fc-cache -fv # Set the working directory WORKDIR /app -# Install the logo-diagram-generator package -RUN pip install logo-diagram-generator +# Install package globally with pip +COPY . /app +RUN pip install . -# Configure docker to run the logo-diagram-generator +# Configure docker to run the logo-diagram-generator command ENTRYPOINT ["logo-diagram-generator"] # Set the default args to pass if none are specified diff --git a/examples/full.example.yml b/examples/full.example.yml index c63b371..e1f205e 100644 --- a/examples/full.example.yml +++ b/examples/full.example.yml @@ -1,5 +1,6 @@ ecosystem: style: + diagramBackgroundColor: "#ffffff" diagramEngine: neato diagramOverlap: prism diagramOverlapScaling: 4 diff --git a/examples/full.example_logos.svg b/examples/full.example_logos.svg index e3af522..672b1cc 100644 --- a/examples/full.example_logos.svg +++ b/examples/full.example_logos.svg @@ -2,7 +2,7 @@ --> %3 - + cluster_cluster_management diff --git a/examples/full.example_text.svg b/examples/full.example_text.svg index f9259c0..f659dbe 100644 --- a/examples/full.example_text.svg +++ b/examples/full.example_text.svg @@ -8,7 +8,7 @@ viewBox="0.00 0.00 1096.96 1002.31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> %3 - + cluster_cluster_management diff --git a/examples/minimal.example_logos.svg b/examples/minimal.example_logos.svg index 621d331..7623239 100644 --- a/examples/minimal.example_logos.svg +++ b/examples/minimal.example_logos.svg @@ -2,7 +2,7 @@ --> %3 - + cluster_cloud_integration diff --git a/examples/minimal.example_text.svg b/examples/minimal.example_text.svg index 1894bbc..078a9eb 100644 --- a/examples/minimal.example_text.svg +++ b/examples/minimal.example_text.svg @@ -8,7 +8,7 @@ viewBox="0.00 0.00 356.26 534.91" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> %3 - + cluster_cloud_integration diff --git a/logo_diagram_generator/generate_diagram.py b/logo_diagram_generator/generate_diagram.py index 4358d11..07b56bd 100644 --- a/logo_diagram_generator/generate_diagram.py +++ b/logo_diagram_generator/generate_diagram.py @@ -20,6 +20,7 @@ def generate_text_only_svg_diagram_from_config(config, diagram_name, output_svg_ diagram_overlap_shrink = str(ecosystem_style.get("diagramOverlapShrink", "true")) diagram_padding = str(ecosystem_style.get("diagramPadding", "0.5")) diagram_rankdir = ecosystem_style.get("diagramRankdir", "TB") + diagram_background_color = ecosystem_style.get("diagramBackgroundColor", "#ffffff") group_label_shape = ecosystem_style.get("groupLabelShape", "box") group_label_style = ecosystem_style.get("groupLabelStyle", "rounded") @@ -35,6 +36,16 @@ def generate_text_only_svg_diagram_from_config(config, diagram_name, output_svg_ dot.attr(rankdir=diagram_rankdir) dot.attr(pad=diagram_padding) dot.attr(id=diagram_name) + dot.attr(bgcolor=diagram_background_color) + + logging.info( + f"Diagram attributes set: engine={diagram_engine}, overlap={diagram_overlap}, " + f"overlap_scaling={diagram_overlap_scaling}, overlap_shrink={diagram_overlap_shrink}, " + f"rankdir={diagram_rankdir}, padding={diagram_padding}, background_color={diagram_background_color}, " + f"group_label_shape={group_label_shape}, group_label_style={group_label_style}, " + f"group_label_fontname={group_label_fontname}, group_label_fontcolor={group_label_fontcolor}, " + f"group_label_fontsize={group_label_fontsize}, group_label_margin={group_label_margin}" + ) central_tool = config["ecosystem"]["centralTool"] central_tool_name = central_tool["name"] diff --git a/pyproject.toml b/pyproject.toml index d142cd6..c67bf7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "logo-diagram-generator" -version = "0.2.2" +version = "0.2.3" description = "Generate SVG diagrams of a (tech) ecosystem, using logos from each tool organised into groups around a central logo" authors = ["Andrew Beveridge "] license = "MIT"