Skip to content

A set of PlantUML libraries and a NPM cli tool to design diagrams which focus on several technologies/approaches: Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), C4 Model or even EventStorming and more.

License

Notifications You must be signed in to change notification settings

tmorin/plantuml-libs

Repository files navigation

plantuml-libs

Continous Integration npm version

Presentation

This repository hosts a PlantUML lib which provides several packages. Each package focus on a particular technology/approach: Amazon Web Services (AWS), Azure, C4 Model or even EventStorming and more.

Additionally, a CLI utility, working with NodeJS, is also provided within the NPN package. Its purpose is to speed up the rendering of PlantUML source files, i.e. the generation of PNG.

Contributing

Thanks for your interest in contributing!

There are many ways to contribute to this project. Get started here.

Install

The library can be installed from several channels:

The PlantUML library

The library brings thousands of PlantUML artifacts. Therefore, a documentation is available to discover and pick the resources fulfilling your needs.

The documentation is a set of Markdown documents linked together which can be directly read from the GIT repository: ./distribution/README.md,

The documentation of the latest released version is also available on tmorin.github.io/plantuml-libs. It provides a search engine which should improve the discovery process ;).

The available packages:

Generate diagrams with gdiag

gdiag is a command CLI provided by the NPM package. It helps to quickly generate the diagrams embedded in *.puml or *.plantuml files.

gdiag

Render PlantUML diagrams discovered (*.{puml,plantuml}) in the working
directory.

Options:
      --version                 Show version number                    [boolean]
      --work-directory, --wd    The directory where the PlantUML files will be
                                discovered and rendered. [string] [default: "."]
      --tech-directory, --td    The directory where technical resources will be
                                stored.             [string] [default: ".gdiag"]
      --lib-directory, --ld     The directory where the library is located.
           [string] [default: "/home/tibo/git-perso/plantuml-libs/distribution"]
      --java-command, --jc      The command of the java binary.
                                                      [string] [default: "java"]
      --plantuml-version, --pv  The version of PlantUML to use.
                                                  [string] [default: "1.2021.7"]
  -c, --clean                   Delete recursively the pictures located in the
                                working directory.    [boolean] [default: false]
      --help                    Show help                              [boolean]

Alternatively, the command line plantuml-generator, from tmorin/plantuml-generator, can also be used.

Build the library

The build of the library is based on two steps:

  • generate a work directory (./.workdir/) which contains the library manifest, and some additional resources like Tera templates, pictures ...
  • generate the distribution directory (./distribution/) which contains the PlantUML resources as well as the documentation

Generate the work directory

npm run generate-library

Generate the distribution directory

docker run --rm \
  -v "$(pwd)/.workdir:/workdir" \
  -v "$(pwd)/distribution:/distribution" \
  thibaultmorin/plantuml-generator:1 \
  plantuml-generator library generate library.yaml \
  -c=All -O=/distribution