kroki icon indicating copy to clipboard operation
kroki copied to clipboard

discussion: Deprecation c4plantuml in favor of plantuml (plantuml-stdlib)?

Open arukiidou opened this issue 3 months ago • 0 comments

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.
    1. https://kroki.io/c4plantuml/svg/eNp9UctuwjAQvOcrtjlRCdoLx6pSiTj0QIUKPUfGbBIrjl15F0H_vovj8BC0N-9odmZ2_GCctrstwksxfS6mZeEd44Ffs4wNW4TVDzF2kGDYGlUH1UHlA7wLFBwyzJRrjasTN8uWGMi7kd4R-w7DGPKBUSQoF-wNBgL4CrhB2AhrDHvDDXxHCWUjBkprv3NMT_lj1puMNr1iSXEUuT_SRCdr_Z5OdgTsQTeo26OrCVfySb-cH3jUKWPPBvPJcQY6ya4lsomuknNhdPDkK4b5QTfK1Qh4uXCOPki7SopE0VkM7zvRV-wDEihrh5K0AJCuF3v5iE6x8S6G_0R7UftNR1-EJDRhlTOl2wvq9akrdFtK-Y9tpZ0PNHWz8eGm_H-24xGL9bKXuLd56qFP9wsEgeX9
    2. 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==

image

arukiidou avatar May 06 '24 06:05 arukiidou