jazzyray / export

Export models and views to external formats.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Structurizr exporters

This library provides the ability to export the model and views defined in a Structurizr workspace to a number of formats, including:

This library is included in the Structurizr CLI via the export command. It is also available on Maven Central, for inclusion in your own Java applications:

  • groupId: com.structurizr
  • artifactId: structurizr-export

Diagram notation

As far as practical, the exporters implemented in this repo try to replicate the way that the Structurizr cloud service/on-premises installation/Lite renders diagrams. See Structurizr - Notation for more details but, in summary, every element/relationship in the model can have one or more text-based tags associated with it, and you can create element/relationship styles associated with those tags to customise how the items are rendered. This concept is similar to how to might add one or more CSS classes to a HTML element, to customise how it's rendered in the browser. The DSL cookbook - Element styles and DSL cookbook - Relationship styles show some examples of how this works if you're using the Structurizr DSL.

It's important to note that some features provided by the Structurizr cloud service/on-premises installation/Lite are not supported by these exporters. For example, the PlantUML exporter doesn't support the same set of element shapes, because PlantUML itself doesn't support many of them. The DSL demo page at https://structurizr.com/dsl provides a way to try out the exporters implemented by this repo, so you can compare and contrast the various features they provide. In general though, the Structurizr cloud service/on-premises installation/Lite will provide the most feature complete and richest set of diagrams.

Custom exporters

There are two interfaces defined in this library, that be used as a starting point for building your own custom exporters:

  • DiagramExporter: for exporting a collection of diagram definitions from a workspace (the PlantUML, Mermaid, etc exporters implement this interface), and AbstractDiagramExporter is provided as a convenient starting point.
  • WorkspaceExporter: for exporting a single definition from a workspace (the Ilograph exporter implements this interface).

Links

About

Export models and views to external formats.

License:Apache License 2.0


Languages

Language:Java 89.9%Language:Mermaid 10.1%