/temporal-diagrams

A Scala DSL for generating diagram variants

Primary LanguageScalaMIT LicenseMIT

temporal-diagrams

A Scala DSL for generating diagram variants

In action

Easily generate diagrams

---
title: Component diagram
---
flowchart
  reader-service:::Service

  writer-lambda:::Lambda

  classDef Lambda fill:#d49090

  classDef Service fill:#a1add1

  subgraph persistence [Persistence]
    database[(database)]:::Database

    classDef Service fill:#586ba4
  end

  reader-service -- reads from --> database

  writer-lambda -- writes to --> database

Or variants of them

---
title: Component diagram
---
flowchart
  reader-service:::Service

  writer-lambda:::Lambda

  classDef Lambda fill:#d49090

  classDef Service fill:#a1add1

  subgraph persistence [Persistence]
    database[(database)]:::Database

    replica-1[(replica-1)]:::Database

    replica-2[(replica-2)]:::Database

    classDef Service fill:#586ba4
  end

  reader-service -- reads from --> replica-1

  reader-service -- reads from --> replica-2

  writer-lambda -- writes to --> database

Even to different diagram languages

With complex targeting

Or highlighting certain areas

Features

  • Encode to one or more target diagram languages
  • Write in type safe DSLs for target diagram languages
  • Mix multiple domain languages in one diagram
  • Highlight certain areas of a diagram with highlighting

Supported target languages

See also

Unmanaged JAR

Copy the URL from the PlantUML download page

(cd YOUR_SBT_SUB_PROJECT/lib && curl -LO https://github.com/plantuml/plantuml/releases/download/v1.2023.13/plantuml-mit-1.2023.13.jar)

-L means follow redirects and -O means save the payload

Generating very large diagrams

Inject the override via environment variable

PLANTUML_LIMIT_SIZE=8192 sbt run

Elsewhere