Skip to content

A simple and flexible PlantUML template for creating C4 diagrams

License

Notifications You must be signed in to change notification settings

robbell/plantuml-c4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PlantUML template for C4 diagrams

Taking inspiration from the PlantUML C4 templates by Ricardo Niepel, this C4 PlantUML template includes styling similar to that used by the C4 samples and Structurizr, and maintains a close relationship to the PlantUML core syntax.

Key features

  • C4 and Structurizr styling
  • Complementary C4 helpers, build on top of standard PlantUML relationships
  • A single include file - simple to reference or modify

Getting started

Include the line below at the beginning of your PlantUML file, under the @startuml directive:

!include https://raw.githubusercontent.com/robbell/plantuml-c4/v1.4/c4.puml

Example

@startuml Sample Context diagram 
!include https://raw.githubusercontent.com/robbell/plantuml-c4/v1.4/c4.puml

Person("Clinic employee", "An employee of the clinic") as clinicEmployee
System("Pet Clinic Application", "System for managing vet appointments") as petClinicSystem
clinicEmployee ..> petClinicSystem : Uses

@enduml

Sample Component diagram

Source: samples/pet-clinic-sample.puml

Sample Component diagram

Sample entity usage

Source: samples/entities-sample.puml

Sample entity usage

Related

To add PlantUML diagram generation to your build pipelines, take a look at my PlantUML in Docker project.

To do

  • Style toggling to core PlantUML
  • Key toggling
  • Continued refactoring
  • Additional functions for remaining Context entities, and all other entities at the Container and Component level
  • Update current implementations to more closely resemble vanilla PlantUML syntax
  • Relationship directions
  • Layout helpers using -[hidden]->