kroki
kroki copied to clipboard
discussion: Deprecation c4plantuml in favor of plantuml (plantuml-stdlib)?
summary
c4plantuml
URL was used in the past due to its history do you think plantuml
should be preferred?
context
- https://github.com/yuzutech/kroki.io/pull/121#discussion_r1590272967
- https://github.com/yuzutech/kroki.io/pull/121#discussion_r1590370074
background
- These two diagrams are identical. (i) is regacy style, (ii) is plantuml-stdlib style.
- https://kroki.io/c4plantuml/svg/eNp9UctuwjAQvOcrtjlRCdoLx6pSiTj0QIUKPUfGbBIrjl15F0H_vovj8BC0N-9odmZ2_GCctrstwksxfS6mZeEd44Ffs4wNW4TVDzF2kGDYGlUH1UHlA7wLFBwyzJRrjasTN8uWGMi7kd4R-w7DGPKBUSQoF-wNBgL4CrhB2AhrDHvDDXxHCWUjBkprv3NMT_lj1puMNr1iSXEUuT_SRCdr_Z5OdgTsQTeo26OrCVfySb-cH3jUKWPPBvPJcQY6ya4lsomuknNhdPDkK4b5QTfK1Qh4uXCOPki7SopE0VkM7zvRV-wDEihrh5K0AJCuF3v5iE6x8S6G_0R7UftNR1-EJDRhlTOl2wvq9akrdFtK-Y9tpZ0PNHWz8eGm_H-24xGL9bKXuLd56qFP9wsEgeX9
- https://kroki.io/plantuml/svg/eNp9UctuwjAQvOcrtjlRCdoLx6pSiTj0QIUKPUfGbBIrjl15F0H_vovj8BC0N-9odmZ2_GCctrstwksxfS6mZeEd44Ffs4wNW4TVDzF2kGDYGlUH1UHlA7wLFBwyzJRrjasTN8uWGMi7kd4R-w7DGPKBUSQoF-wNBgL4CrhB2AhrDHvDDXxHCWUjBkprv3NMT_lj1puMNr1iSXEUuT_SRCdr_Z5OdgTsQTeo26OrCVfySb-cH3jUKWPPBvPJcQY6ya4lsomuknNhdPDkK4b5QTfK1Qh4uXCOPki7SopE0VkM7zvRV-wDEihrh5K0AJCuF3v5iE6x8S6G_0R7UftNR1-EJDRhlTOl2wvq9akrdFtK-Y9tpZ0PNHWz8eGm_H-24xGL9bKXuLd56qFP9wsEgeX9
!include <C4/C4_Context>
title System Context diagram for Internet Banking System
Person(customer, "Banking Customer", "A customer of the bank, with personal bank accounts.")
System(banking_system, "Internet Banking System", "Allows customers to check their accounts.")
System_Ext(mail_system, "E-mail system", "The internal Microsoft Exchange e-mail system.")
System_Ext(mainframe, "Mainframe Banking System", "Stores all of the core banking information.")
Rel(customer, banking_system, "Uses")
Rel_Back(customer, mail_system, "Sends e-mails to")
Rel_Neighbor(banking_system, mail_system, "Sends e-mails", "SMTP")
Rel(banking_system, mainframe, "Uses")
plantuml-stdlib available.
plantuml-stdlib Better looking diagrams. kroki also supports several stdlibs.
https://github.com/yuzutech/kroki/pull/552
other example(AWS):
!include <awslib/AWSCommon>
!include <awslib/Groups/all>
!include <awslib/Compute/LambdaLambdaFunction>
!include <awslib/General/Documents>
!include <awslib/General/Multimedia>
!include <awslib/General/Tapestorage>
!include <awslib/General/User>
!include <awslib/MediaServices/ElementalMediaConvert>
!include <awslib/MachineLearning/Transcribe>
!include <awslib/Storage/SimpleStorageService>
' define custom group for Amazon S3 bucket
AWSGroupColoring(S3BucketGroup, #FFFFFF, AWS_COLOR_GREEN, plain)
!define S3BucketGroup(g_alias, g_label="Amazon S3 bucket") AWSGroupEntity(g_alias, g_label, AWS_COLOR_GREEN, SimpleStorageService, S3BucketGroup)
!procedure $stepnum($number)
<back:black><color:white><b> $number </b></color></back>
!endprocedure
' Groups are rectangles with a custom style using stereotype - need to hide
hide stereotype
skinparam linetype ortho
skinparam rectangle {
BackgroundColor AWS_BG_COLOR
BorderColor transparent
}
rectangle "$UserIMG()\nUser" as user
AWSCloudGroup(cloud){
RegionGroup(region) {
S3BucketGroup(s3) {
rectangle "$MultimediaIMG()\n\tvideo\t" as video
rectangle "$TapestorageIMG()\n\taudio\t" as audio
rectangle "$DocumentsIMG()\n\ttranscript\t" as transcript
user -r-> video: $stepnum("1")\lupload
video -r-> audio
audio -r-> transcript
}
rectangle "$LambdaLambdaFunctionIMG()\nObjectCreated\nevent handler" as e1
rectangle "$ElementalMediaConvertIMG()\nAWS Elemental\nMediaConvert" as mediaconvert
rectangle "$TranscribeIMG()\nAmazon Transcribe\n" as transcribe
video -d-> e1: $stepnum("2")
e1 -[hidden]r-> mediaconvert
mediaconvert -[hidden]r-> transcribe
mediaconvert -u-> audio: $stepnum("3")
transcribe -u-> transcript: $stepnum("4")
StepFunctionsWorkflowGroup(sfw) {
rectangle "$LambdaLambdaFunctionIMG()\nextract audio" as sfw1
rectangle "$LambdaLambdaFunctionIMG()\ntranscribe audio" as sfw2
e1 -r-> sfw1: Start\nExecution
sfw1 -r-> sfw2
sfw1 -u-> mediaconvert
sfw2 -u-> transcribe
}
}
}
https://kroki.io/plantuml/svg/eNqVVOFO2zAQ_u-nODqkEakoKuwX6ipB16FJMCTKxI91Qk58tB6OHTk2hU28C8_Ck8123CaBCGmV6rp3333f-e7sHS5zYRnCmK4rwbP0-Ho-VUWh5ITsvPadamXLKqVC9DhdVGkNpme0yBit169W5ob3c6FETUX6ReW2QGmqdzDnVhheIOP0HdAVLbEyStMlvoP6UaHucZ978jnqe55jlc4E-pSoCOapkveoTV8UzVdc4hlSLblcpleayirXPOvLYF7nls55UQqM_6LkhJCPwPDWkUFu3SkKWPpaw63ScFzQP0rC_BAym9-hIa5FoRNTJZR2unvzw5PgCdYhfPgaPkNwwJvpxdnF5c3p5Wz2fQiloFwmZCdKdeL2ljdUcFoNYXkjaIbi8-C18iCBjfZMGm4e38T0aPadd9iVTgjZKbXKkVmNsFsZLKUt9nbdkqFOgIwzmt8dZcKtk3Huj320XnGDk3E2eXmOuJfncZpNxmnwu18f4_qAkm25fZnrIQbqlDTmhsqlwArW3KyAbopfmUeBYCtXXLdHjco8lgj7IBEZGAUrzpD4peUm1R2XJdW0AOGqGyKUNivVcmwV4S8B9zlxOfpOSxaaGap3cloXsAYozVDXTuPHy_G40SRPhDRcg10_1t_OT_eShfTbAdDKpY_az8pUKMvqFud-m3jpS1y6e1lbddgnMaXuUFSHGztAW7C5klF2Ye5dOdTCBO2w7wlrXdJtHLWMb-LCvidu-0pso0y8a6WJoY2BRAJfANjX-5M6naNmsgajQbIQthSKsggOkBrdTiLsa3NLwHueapl2ln1PX0z4IvvtgFON1CBbSLx3h4EVlUzEbuHoDV3vMxT5XF9h61_INiLQhdbkteENcfNObdjqi97YF7JT0wwDB2kVirmK4Khd04NBEgA4gv2f7m4wlL983d6k0jZ0oa_0ukC7aU1b9DCKNpE1sGlWG_3JvWDNSebOvGlTda303a1Q6zj2t-v-uX-nxfjgRHNT5xjK51hG_8fROkaH5mAz0764vlKe-sidgGqzkLMHzK1niSDv3MIOOkbb15DgPOgWLrbgifjvE_kH0eG7jw==