Releases: plantuml-stdlib/C4-PlantUML
v2.12.0
New Features & Important Bugfixes
Lay_...() functions have correct orientation in combination with LAYOUT_LANDSCAPE()
Important
PlantUML v2.12.0: Layouts may change with this bugfix.
When LAYOUT_LANDSCAPE()
is combined with Lay_*()
calls, elements are now positioned correctly based on the new implementation.
Previously, the implementation swapped up/left and down/right (see issue 376).
To restore the old behavior, set !NO_LAY_ROTATE=1
. For more details, see Compatibility mode NO_LAY_ROTATE=1
.
@startuml
' the bugfix can be deactivated with following statement
' !NO_LAY_ROTATE = 1
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
LAYOUT_LANDSCAPE()
Person(a, "A")
System(sUp, "B up\nbefore bugfix left")
System(sRight, "C right\nbefore bugfix down")
System(sDown, "D down\nbefore bugfix right")
System(sLeft, "E left\nbefore bugfix up")
Lay_U(a, sUp)
Lay_R(a, sRight)
Lay_D(a, sDown)
Lay_L(a, sLeft)
HIDE_STEREOTYPE()
@enduml
IntelliJ live templates supports AsciiDoc too
Thanks to @marcelstoer, the IntelliJ live templates can now be used with AsciiDoc as well. See details in Live Templates for IntelliJ (#392).
Tables with missing header and property columns are correct displayed/filled
Before this fix, the following table would display only 2 columns (header had only 2 columns) instead of 4, and the $col3="col3"
would be shown in column 2 (3 in name was "ignored"). (#384)
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
' at b) header has only 2 columns, therefore col3 is not displayed
SetPropertyHeader("", $col2Name="header 2")
AddProperty($col1="col1")
AddProperty("", $col2="col2")
AddProperty(" ", " ", "", $col4="col4")
' at a) col3 is displayed in column 2 and not 3
AddProperty("", $col3="col3")
Container(c, "Container")
@enduml
What's Changed
- #389 ENABLE_ALL_PLANT_ELEMENTS works with PlantUML v1.2025.1 and greater by @kirchsth in #391
- #380 Release process supports new stdlib README.md structure and updated license by @kirchsth in #393
- #379 Corrected typo in Italian legend title by @kirchsth in #381
- #377 Updated dynamic diagram to match with source by @kirchsth in #382
- #386 Updated theme documentation by @kirchsth in #390
New Contributors
- @marcelstoer made their first contribution in #392
Full Changelog: v2.11.0...v2.12.0
Release v2.11.0
New Features
C4-PlantUML polyglott, predefined labels translatable via language themes
Previously, all predefined labels were in English. Now, C4-PlantUML supports multiple languages out of the box, similar to the existing “style” themes. This update introduces “language” themes.
Supported language themes include C4Language_chinese.puml, C4Language_dutch.puml, C4Language_english.puml, C4Language_french.puml, C4Language_german.puml, C4Language_italian.puml, C4Language_japanese.puml, C4Language_korean.puml, C4Language_portuguese.puml, C4Language_russian.puml, C4Language_spanish.puml, C4Language_ukrainian.puml.
These themes can be include like normal style themes.
@startuml
!theme C4Language_japanese from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
!theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
LAYOUT_LANDSCAPE()
Person(admin, "管理者")
System_Boundary(c1, 'サンプル') {
Container(web_app, "ウェブアプリケーション", "C#, ASP.NET Core 2.1 MVC", "複数のTwitterタイムラインを比較することができます")
}
System(twitter, "Twitter")
Rel(admin, web_app, "使用する", "HTTPS")
Rel(web_app, twitter, "ツイートを取得する", "HTTPS")
SHOW_LEGEND()
@enduml
Customize legend title text with UpdateLegendTitle(newTitle)
A new UpdateLegendTitle(newTitle)
function has been added. This function allows you to customize the legend title.
For example, the following code
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
' NEW CALL UpdateLegendTitle
UpdateLegendTitle("Updated legend title")
Person(admin, "Administrator")
System_Boundary(c1, 'Sample') {
Container(web_app, "Web Application")
}
System(twitter, "Twitter")
SHOW_LEGEND()
@enduml
produces the following diagram:
What's Changed
- Fix
plantuml.com/logo3.png
image link by @Mengesh in #362 - #364,#365 Add
UpdateLegendTitle(newTitle)
call and multilingual themes by @kirchsth in #366 - Themes: Add danish by @BjoernGoettler in #370
New Contributors
- @Mengesh made their first contribution in #362
- @BjoernGoettler made their first contribution in #370
Fixes in PlantUML v1.2024.8beta6
With the latest PlantUML v1.2024.8beta6 following issue is fixed too
- Rel styling $lineStyle does not work for sequence diagrams #369
Full Changelog: v2.10.0...v2.11.0
Release v2.10.0
New Features
All boundaries supports descriptions and sprites too
All boundaries are extended that they can support descriptions too:
Boundary(..., ?descr)
Enterprise_Boundary(..., ?descr)
System_Boundary(..., ?descr)
Container_Boundary(..., ?descr)
and sprites can be defined via tags
AddBoundaryTag(..., ?sprite, ?legendSprite)
UpdateBoundaryStyle(..., ?sprite, ?legendSprite)
UpdateContainerBoundaryStyle(..., ?sprite, ?legendSprite)
UpdateSystemBoundaryStyle(..., ?sprite, ?legendSprite)
UpdateEnterpriseBoundaryStyle(..., ?sprite, ?legendSprite)
If a sprite is defined then it is displayed in the first line in front of the label with a smaller size.
- Default sprite size can be changed via
$BOUNDARY_IMAGE_SIZE_FACTOR
Single column property is supported too
SetPropertyHeader()
and AddProperty()
are updated that only 1 column is required (the old implementation required at least 2 columns)
SetPropertyHeader(col1Name, ?col2Name, ?col3Name, ?col4Name)
AddProperty(col1, ?col2, ?col3, ?col4)
What's Changed
-
Intellij live templates: Fixing C4 file references to std lib master … by @vipinthomasvertexinc in #344
-
Legend displays unknown borderStyle values too (instead of $lineStyle) by @kirchsth in #343
-
All boundaries supports descriptions and sprites too by @kirchsth in #352
-
fix deprecated task in build: update to ts-graphviz/setup-graphviz@v2 by @kirchsth in #351
New Contributors
- @vipinthomasvertexinc made their first contribution in #344
Fixes in PlantUML v1.2024.5
With the latest PlantUML v1.2024.5 following issue is fixed too
- Java OutOfMemoryError with some Sequence diagrams #348
Fixes in PlantUML v1.2024.6
With the latest PlantUML v1.2024.6 following issue is fixed too
Full Changelog: v2.9.0...v2.10.0
Release v2.9.0
New Features
More often a full support of all PlantUML elements are requested. This can be enabled via ENABLE_ALL_PLANT_ELEMENTS
.
After that the PlantUML elements can be set via the new optional baseShape="...." argument
System(..., ?baseShape),
System_Ext(..., ?baseShape),
Container(..., ?baseShape),
Container_Ext(..., ?baseShape),
Component(..., ?baseShape),
Component_Ext(..., ?baseShape)
What's Changed
- fix AddNodeTag() call + SHOW_FLOATING_LEGEND() uses small details as default by @kirchsth in #335
- Support of "all" PlantUML elements can be enabled by @kirchsth in #337
Full Changelog: v2.8.0...v2.9.0
Release v2.8.0
New Features
UpdateElementStyle(...,?borderStyle, ?borderThickness)
AddElementTag(...,?borderStyle, ?borderThickness)
UpdateBoundaryStyle(...,?borderStyle, ?borderThickness)
AddBoundaryTag(...,?borderStyle, ?borderThickness)
What's Changed
- doc: fix internal link in the readme by @torrespro in #318
- feat: Adjust thickness and styles of element and boundary borders by @kirchsth in #319
- fix: Dynamic/Sequence fix Rel() without $index argument by @kirchsth in #321
- fix a001 error by @gsantandrea in #324
- fix a001 error (2) by @kirchsth in #325
New Contributors
- @torrespro made their first contribution in #318
- @gsantandrea made their first contribution in #324
Full Changelog: v2.7.0...v2.8.0
Release v2.7.0
New Features
- Sequence/Dynamic diagram - simplified to "one"
Rel()
call- Sequence diagram
Rel()
extended with$index
and$rel
- Dynamic diagram
Rel()
extended with$index
(makes all otherRelIndex...()
calls obsolete)
- Sequence diagram
- Sequence diagram supports the layout options
SHOW_ELEMENT_DESCRIPTIONS(?show)
,SHOW_FOOT_BOXES(?show)
andSHOW_INDEX(?show)
; details see C4 styled sequence diagram specific layout options
What's Changed
- Add (C4 styled) Sequence Diagram support by @kirchsth in #308
- #303 update documentation: <C4/themes>, mweagle themes by @kirchsth in #313
- README typo fix by @bricker in #314
- Sequence/Dynamic diagram - simplify to "one" Rel() call; add layout option SHOW_INDEX() by @kirchsth in #312
New Contributors
Full Changelog: v2.6.0...v2.7.0
Release v2.6.0
New Features
What's Changed
- Typo fix: Cutomer -> Customer by @JustinBritt in #279
- Fix typo in bigbankplc-styles.puml Sample by @Potherca in #280
- fix a) invisible relationship text based on typo; b) custom legend details by @kirchsth in #284
- #281 Sprite with empty labels produces no additional empty new line/space by @kirchsth in #285
- Fixing typos by @deining in #292
- Fixing typos by @deining in #296
- README.md: changing first diagram by @deining in #298
- #287 System and person support [...] notation by @kirchsth in #294
- Enables theme support by @kirchsth in #295
- #300 Fix all Add....Tag() related calls by @kirchsth in #301
- #275 enable semi automatic release process by @kirchsth in #302
New Contributors
- @JustinBritt made their first contribution in #279
- @deining made their first contribution in #292
Full Changelog: v2.5.0...v2.6.0
Release v2.5.0
What's Changed
- #211 AddProperty for relationships by @kirchsth in #212
- #186 Change SKETCH layout via SET_SKETCH_STYLE (incl. fonts, color,....) by @kirchsth in #213
- #215 Lay_x calls supports long version Lay_xxxx too by @kirchsth in #217
- Make Container/Component techn optional by @netrounds-fredrik in #216
- #219 Update Readme.md (add sprite section, a diagram with BiRel() calls and unify relation to relationship) by @kirchsth in #220
- #222 PlantUML stereotypes support no spaces anymore (update samples) by @kirchsth in #223
- #227 Boundaries can be styled via tags by @kirchsth in #231
- First draft layout guidance and practices by @DarwinJS in #239
- Change percy workflow to use @percy/cli. by @Potherca in #241
- Layout guidance refinements to previously submitted ones by @DarwinJS in #243
- AddComponentTag uses component font by default by @oatkiller in #246
- #244 Add sprites robot and robot2 by @kirchsth in #249
- Update TOC with level 3 (README.md and LayoutOptions.md) by @kirchsth in #250
- #247 Element styles are correct combined and dynamic legend is correct calculated by @kirchsth in #251
- #240 Fix -DRELATIVE_INCLUDE="absolute/relativeToDiagram" by @kirchsth in #252
- fixing markdown end code indicator by @rcelebrone in #253
- Add support for lineThickness in AddRelTag (based on #218, #235) by @kirchsth in #254
- Added info on how to configure VSCode, improved explanations by @nagelp-bosch in #256
- Minor README.md updates by @kirchsth in #257
- #232 Legend details can be smaller or hidden by @kirchsth in #259
- Add badges by @kirchsth in #260
- #255 All $label and $techn supports line breaks by @kirchsth in #261
- fix TOC by @kirchsth in #262
- Extend TOC with links to other files too by @kirchsth in #264
- #256 Person outline and portrait styles works with old plantuml.jar versions too by @kirchsth in #266
- Activate GitHub repository language by @kirchsth in #267
- Fix first sample in readme - customer legend details are correct displayed with smaller font too by @kirchsth in #268
- Update to version 2.5.0 by @kirchsth in #269
- Update the
!include
paths to point to the new release URL. by @Potherca in #270
New Contributors
- @netrounds-fredrik made their first contribution in #216
- @DarwinJS made their first contribution in #239
- @oatkiller made their first contribution in #246
- @rcelebrone made their first contribution in #253
- @nagelp-bosch made their first contribution in #256
Full Changelog: v2.4.0...v2.5.0
Release v2.4.0
v2.4.0 (2021-10-29)
Implemented enhancements:
- #174 Add LAYOUT_LANDSCAPE() #177 (kirchsth)
- Tags support sprites (incl. img support), technology and custom legend text #173 (kirchsth)
Closed issues:
- got plantuml erro when include C4 on vscode #190
- Notes element #189
- Force relationships to be straight lines #183
- Add element to boundary #176
- Rel_Left/Right/Up/Down are not followed when using LAYOUT_LEFT_RIGHT. #174
- PlantUML version error message (requires PlantUML version >= 1.2021.6) #172
- Question - when colour is defined via UpdateElementStyle the legend is not updated #169
- Typo in doc - notice an extra ` symbol in #Element properties #168
- Typo in doc - &textColor should be $textColor #167
- RELATIVE_INCLUDE variable breaking Antora builds #156
- Bottom-left alignment for Deployment Node label #155
- PlantUML code samples in markdown (Readme,...) should use plantuml syntax #184
- Add
C4Version()
functions which displays the PlantUML version and C4-PlantUML version #181 - Use default bgColor and fontColor for new element tags #154
Merged pull requests:
Release v2.3.0
Changelog
v2.3.0 (2021-07-04)
Closed issues:
- Element inside intersection of 2 or more Boundaries #166
- Background of boundaries is white in sketch-mode #163
- Q: Is there an option that an arrow gets drawn through a component? #162
- Add length parameter to Rel and Lay procedures #153
- Change the fontcolor of Legend Title #152
- Improve layout of components #151
- Ready to be deployed ? #144
- Big feature: generate C4 from docker-compose.yml and ansible #120
- Build broken by the new RELATIVE_INCLUDE variable #118
- Preparing a v2.3.0 release #165
- Relation tags support line styles #159
- Option to hide unused default tags in the legend #157
- Calculate missing legend colors based on brightness #149
- New layout call SHOW_PERSON_OUTLINE() offers "Structurizr" persons #146
- Support for more shapes #145
- Persons can be displayed as portraits #139
- Make legend fill whitespace #134
- README.md Hyperlinks not HTTPS #21
- Microservice container #12
Merged pull requests:
- #163 Boundary background color is transparent again #164 (kirchsth)
- #159 Update readme sample with new features and styles #161 (kirchsth)
- #159 Relation tags support line styles #160 (kirchsth)
- #157 Legend shows only diagram "style" relevant legend entries #158 (kirchsth)
- #149 Calculate missing legend colors based on brightness #150 (kirchsth)
- #146 New layout call SHOW_PERSON_OUTLINE() activates shape "person"; new $shape argument supports rounded-box and eight-sided shapes #147 (kirchsth)
- #134: Legend fill whitespace with SHOW_FLOATING_LEGEND() and Lay_Distance() #143 (kirchsth)
- Typo fix #142 (qrilka)
- #49, #139: Persons can be displayed as portraits - SHOW_PERSON_PORTRAIT() #141 (kirchsth)
- Add live templates for IntelliJ #59 (stawirej)