yuzutech / kroki

Creates diagrams from textual descriptions!
https://kroki.io
MIT License
2.92k stars 218 forks source link

Align structurizr output aesthetics with default structurizr tools #1775

Open AWhetter opened 2 months ago

AWhetter commented 2 months ago

The structurizr output currently looks like this: kroki

The same diagram looks like the following when output with structurizr tools (https://structurizr.com/ lite, on-prem, or demo): structurizr

There's some commonality in the design -- like colours and basic shapes -- but, in my opinion, the kroki output looks less aesthetically pleasing than the structurizr output.

I am proposing that kroki match the styling of structurizr more closely by default, possibly by using structurizr-autolayout to do the output rather than using the PlantUML exporter.

ggrossetie commented 2 months ago

As far as I know, this is the best we can do since the structurizr.com rendered is not open source. See the comments below from Structurizr creator:

Correct, the structurizr.com renderer is not open source, but the Structurizr DSL and Structurizr CLI are open source. The DSL allows you to create a software architecture model, while the CLI provides an export to a number of open source tools, including PlantUML, Mermaid, and WebSequenceDiagrams. These exporters are open source too (and provided by the Structurizr Java extensions project).

-- Simon Brown https://github.com/yuzutech/kroki/issues/510#issuecomment-735846044

Yes, that's correct, and the StructurizrPlantUMLWriter is probably the best output of PlantUML and Mermaid (the Graphviz libary is only used for automatic layout, it doesn't produce full diagrams).

-- Simon Brown https://github.com/yuzutech/kroki/issues/510#issuecomment-735926507

simonbrowndotje commented 2 months ago

since the structurizr.com rendered is not open source

The Structurizr UI has been open source since Jan 2023 -> https://github.com/structurizr/ui

As mentioned in #1758 though, you will need to run the Structurizr renderer in a web browser, and use something like headless Chrome and Puppeteer to extract the diagrams.