Code Monkey home page Code Monkey logo

structurizr-export's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.