Skip to content

Commit 42745ca

Browse files
authored
Merge pull request #391 from kirchsth/feature/389_breakline
#389 ENABLE_ALL_PLANT_ELEMENTS works with PlantUML v1.2025.1 and greater too
2 parents 3643f58 + 1959947 commit 42745ca

File tree

1 file changed

+47
-34
lines changed

1 file changed

+47
-34
lines changed

C4.puml

Lines changed: 47 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,19 @@ skinparam package {
262262
BackgroundColor $BOUNDARY_BG_COLOR
263263
}
264264

265+
' PlantUML compatibility utilities
266+
' ##################################
267+
268+
' PlantUML v1.2025.1beta6 introduced a new %breakline() function.
269+
' This should be used instead of the old %newline(), if a command ends.
270+
' (%newline() should be only used in multiline labels,...)
271+
!function $bl()
272+
!if (%function_exists("%breakline"))
273+
!return %breakline()
274+
!endif
275+
!return %newline()
276+
!endfunction
277+
265278
' Legend and Tags
266279
' ##################################
267280
!global $tagDefaultLegend = ""
@@ -411,42 +424,42 @@ skinparam package {
411424
!endfunction
412425

413426
!function $elementTagSkinparams($element, $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness)
414-
!$elementSkin = "skinparam " + $element + "<<" + $tagStereo + ">> {" + %newline()
427+
!$elementSkin = "skinparam " + $element + "<<" + $tagStereo + ">> {" + $bl()
415428
!if ($fontColor != "")
416429
!if (%strpos($tagStereo, "boundary") < 0)
417-
!$elementSkin = $elementSkin + " StereotypeFontColor " + $fontColor + %newline()
430+
!$elementSkin = $elementSkin + " StereotypeFontColor " + $fontColor + $bl()
418431
!endif
419-
!$elementSkin = $elementSkin + " FontColor " + $fontColor + %newline()
432+
!$elementSkin = $elementSkin + " FontColor " + $fontColor + $bl()
420433
!endif
421434
!if ($bgColor != "")
422-
!$elementSkin = $elementSkin + " BackgroundColor " + $bgColor + %newline()
435+
!$elementSkin = $elementSkin + " BackgroundColor " + $bgColor + $bl()
423436
!endif
424437
!if ($borderColor != "")
425-
!$elementSkin = $elementSkin + " BorderColor " + $borderColor+ %newline()
438+
!$elementSkin = $elementSkin + " BorderColor " + $borderColor+ $bl()
426439
!endif
427440
!if ($shadowing == "true")
428-
!$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "true" + %newline()
441+
!$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "true" + $bl()
429442
!endif
430443
!if ($shadowing == "false")
431-
!$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "false" + %newline()
444+
!$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "false" + $bl()
432445
!endif
433446
' only rectangle supports shape(d corners), define both skinparam that overlays are working
434447
!if ($shape != "" && $element == "rectangle")
435448
!if ($shape == $ROUNDED_BOX)
436-
!$elementSkin = $elementSkin + " RoundCorner " + $ROUNDED_BOX_SIZE+ %newline()
437-
!$elementSkin = $elementSkin + " DiagonalCorner " + "0" + %newline()
449+
!$elementSkin = $elementSkin + " RoundCorner " + $ROUNDED_BOX_SIZE+ $bl()
450+
!$elementSkin = $elementSkin + " DiagonalCorner " + "0" + $bl()
438451
!elseif ($shape == $EIGHT_SIDED)
439-
!$elementSkin = $elementSkin + " RoundCorner " + "0" + %newline()
440-
!$elementSkin = $elementSkin + " DiagonalCorner " + $EIGHT_SIDED_SIZE+ %newline()
452+
!$elementSkin = $elementSkin + " RoundCorner " + "0" + $bl()
453+
!$elementSkin = $elementSkin + " DiagonalCorner " + $EIGHT_SIDED_SIZE+ $bl()
441454
!endif
442455
!endif
443456
!if ($borderStyle != "")
444-
!$elementSkin = $elementSkin + " BorderStyle " + $borderStyle + %newline()
457+
!$elementSkin = $elementSkin + " BorderStyle " + $borderStyle + $bl()
445458
!endif
446459
!if ($borderThickness != "")
447-
!$elementSkin = $elementSkin + " BorderThickness " + $borderThickness + %newline()
460+
!$elementSkin = $elementSkin + " BorderThickness " + $borderThickness + $bl()
448461
!endif
449-
!$elementSkin = $elementSkin + "}" + %newline()
462+
!$elementSkin = $elementSkin + "}" + $bl()
450463
!return $elementSkin
451464
!endfunction
452465

@@ -463,8 +476,8 @@ skinparam package {
463476
!$tagSkin = $tagSkin + $elementTagSkinparams("participant", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness)
464477
!$tagSkin = $tagSkin + $elementTagSkinparams("sequencebox", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness)
465478
!if (%strpos($tagStereo, "boundary") >= 0 && $bgColor != "")
466-
!$tagSkin = $tagSkin + "skinparam package<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline()
467-
!$tagSkin = $tagSkin + "skinparam rectangle<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline()
479+
!$tagSkin = $tagSkin + "skinparam package<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + $bl()
480+
!$tagSkin = $tagSkin + "skinparam rectangle<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + $bl()
468481
!endif
469482
!if %variable_exists("ENABLE_ALL_PLANT_ELEMENTS")
470483
!$tagSkin = $tagSkin + $elementTagSkinparams("agent", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness)
@@ -489,18 +502,18 @@ skinparam package {
489502
' label uses wrong font color? (should be $bgColor too)
490503
!$tagSkin = $tagSkin + $elementTagSkinparams("label", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness)
491504
' label colors cannot be set via skinparam use additional style
492-
!$tagSkin = $tagSkin + "<style>" + %newline()
505+
!$tagSkin = $tagSkin + "<style>" + $bl()
493506
' componentDiagram {
494-
!$tagSkin = $tagSkin + " label {" + %newline()
495-
!$tagSkin = $tagSkin + " ." + $tagStereo + " {" + %newline()
496-
!$tagSkin = $tagSkin + " StereotypeFontColor " + $bgColor + %newline()
497-
!$tagSkin = $tagSkin + " Fontcolor " + $bgColor + %newline()
498-
!$tagSkin = $tagSkin + " BackgroundColor " + $bgColor + %newline()
499-
!$tagSkin = $tagSkin + " BorderColor " + $borderColor + %newline()
500-
!$tagSkin = $tagSkin + " }" + %newline()
501-
!$tagSkin = $tagSkin + " }" + %newline()
507+
!$tagSkin = $tagSkin + " label {" + $bl()
508+
!$tagSkin = $tagSkin + " ." + $tagStereo + " {" + $bl()
509+
!$tagSkin = $tagSkin + " StereotypeFontColor " + $bgColor + $bl()
510+
!$tagSkin = $tagSkin + " Fontcolor " + $bgColor + $bl()
511+
!$tagSkin = $tagSkin + " BackgroundColor " + $bgColor + $bl()
512+
!$tagSkin = $tagSkin + " BorderColor " + $borderColor + $bl()
513+
!$tagSkin = $tagSkin + " }" + $bl()
514+
!$tagSkin = $tagSkin + " }" + $bl()
502515
' }
503-
!$tagSkin = $tagSkin + "</style>" + %newline()
516+
!$tagSkin = $tagSkin + "</style>" + $bl()
504517
!endif
505518
$tagSkin
506519
!endprocedure
@@ -514,7 +527,7 @@ $tagSkin
514527
!endfunction
515528

516529
!unquoted procedure $defineRelSkinparams($tagStereo, $textColor, $lineColor, $lineStyle, $lineThickness)
517-
!$elementSkin = "skinparam arrow<<" + $tagStereo + ">> {" + %newline()
530+
!$elementSkin = "skinparam arrow<<" + $tagStereo + ">> {" + $bl()
518531
!if ($lineColor != "") || ($textColor != "") || ($lineStyle != "")
519532
!$elementSkin = $elementSkin + " Color "
520533
!if ($lineColor != "")
@@ -526,12 +539,12 @@ $tagSkin
526539
!if ($lineStyle != "")
527540
!$elementSkin = $elementSkin + ";line." + $lineStyle
528541
!endif
529-
!$elementSkin = $elementSkin + %newline()
542+
!$elementSkin = $elementSkin + $bl()
530543
!endif
531544
!if ($lineThickness != "")
532-
!$elementSkin = $elementSkin + " thickness " + $lineThickness + %newline()
545+
!$elementSkin = $elementSkin + " thickness " + $lineThickness + $bl()
533546
!endif
534-
!$elementSkin = $elementSkin + "}" + %newline()
547+
!$elementSkin = $elementSkin + "}" + $bl()
535548
$elementSkin
536549
!endprocedure
537550

@@ -1036,10 +1049,10 @@ UpdateElementStyle($elementName, $bgColor, $fontColor, $borderColor, $shadowing)
10361049

10371050
' update the style of default relation, it has to set both properties (combined statement not working)
10381051
!unquoted procedure UpdateRelStyle($textColor, $lineColor)
1039-
!$elementSkin = "skinparam arrow {" + %newline()
1040-
!$elementSkin = $elementSkin + " Color " + $lineColor + %newline()
1041-
!$elementSkin = $elementSkin + " FontColor " + $textColor + %newline()
1042-
!$elementSkin = $elementSkin + "}" + %newline()
1052+
!$elementSkin = "skinparam arrow {" + $bl()
1053+
!$elementSkin = $elementSkin + " Color " + $lineColor + $bl()
1054+
!$elementSkin = $elementSkin + " FontColor " + $textColor + $bl()
1055+
!$elementSkin = $elementSkin + "}" + $bl()
10431056
$elementSkin
10441057
!endprocedure
10451058

0 commit comments

Comments
 (0)