Midnighter / structurizr-python

A Python 3 port of Simon Brown's Structurizr diagrams-as-code architecture description tool.
https://structurizr.com/
Apache License 2.0
65 stars 16 forks source link

Autolayout doesn't support resizePaper and margin #87

Open WLun001 opened 2 years ago

WLun001 commented 2 years ago

Checklist

Is your feature related to a problem? Please describe it.

Currently auto layout can be set with the following code:

workspace.views.automatic_layout = AutomaticLayout(
            rank_direction=RankDIrection.TopBottom,
            rank_separation=300,
            edge_separation=10,
            node_separation=300,
            vertices=False
        )

but it only support the following parameters

rank_direction
rank_separation
node_separation
edge_separation
vertices

https://github.com/Midnighter/structurizr-python/blob/ab5adc94c188c8e4bbd05d064fce4603a22e8255/src/structurizr/view/automatic_layout.py#L32-L36

But structurizr.com supports more than that. For example resize paper

https://graphviz.structurizr.com/?view=id&resizePaper=true&rankDirection=TB&rankSeparation=300&nodeSeparation=300&margin=400

Describe the solution you would like.

To add resizePaper and margin params support to AutomaticLayout class

Describe alternatives you considered

Manually auto layout on structurizr.com

Additional context

Midnighter commented 2 years ago

Hi @WLun001,

Thanks for the report. That seems a fairly easy addition but I'm currently wrapped up in other work. Would you be able to add these parameters?