From fa3a1ae9a3bf5278f0e5362d3d40d077755661e8 Mon Sep 17 00:00:00 2001 From: KIRCHSTH Date: Fri, 18 Dec 2020 20:35:13 +0100 Subject: [PATCH 1/4] #97 Context Diagram supports selectable default person sprites --- C4_Context.puml | 97 +++++++++++++++++++++++++++++++++++-- LayoutOptions.md | 122 ++++++++++++++++++++++++++++++++++++++++++++++- README.md | 21 ++++++-- 3 files changed, 231 insertions(+), 9 deletions(-) diff --git a/C4_Context.puml b/C4_Context.puml index d15e73a..9148713 100644 --- a/C4_Context.puml +++ b/C4_Context.puml @@ -46,6 +46,9 @@ skinparam rectangle<> { BorderColor #8A8A8A } +' Sprites +' ################################## + sprite $person [48x48/16] { 000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000 @@ -97,6 +100,67 @@ sprite $person [48x48/16] { 000000000000000000000000000000000000000000000000 } +sprite $personC4 [48x48/16] { +0000000000000000000049BCCA7200000000000000000000 +0000000000000000006EFFFFFFFFB3000000000000000000 +00000000000000001CFFFFFFFFFFFF700000000000000000 +0000000000000001EFFFFFFFFFFFFFF80000000000000000 +000000000000000CFFFFFFFFFFFFFFFF6000000000000000 +000000000000007FFFFFFFFFFFFFFFFFF100000000000000 +00000000000001FFFFFFFFFFFFFFFFFFF900000000000000 +00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000 +0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000 +0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000 +0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 +0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 +0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000 +0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000 +00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000 +00000000000000EFFFFFFFFFFFFFFFFFF800000000000000 +000000000000007FFFFFFFFFFFFFFFFFF100000000000000 +000000000000000BFFFFFFFFFFFFFFFF5000000000000000 +0000000000000001DFFFFFFFFFFFFFF70000000000000000 +00000000000000000BFFFFFFFFFFFF500000000000000000 +0000000000000000005DFFFFFFFFA1000000000000000000 +0000000000000000000037ABB96100000000000000000000 +000000000002578888300000000005888864100000000000 +0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000 +00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000 +0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000 +000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000 +00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 +0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000 +0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000 +0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000 +000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 +000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 +001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 +001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 +001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 +001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000 +000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 +000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 +0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000 +0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000 +0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000 +00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000 +000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000 +0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000 +00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000 +0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000 +000000000002578888888888888888888864100000000000 +} + +sprite $person3D [64x64/16z] { +rTH9iYif38LX2_NIhVrljnAP8717u3VpF_yETdQt7-XNQyGYmWZ_We5KfLBbzZL7KQ4HYp9yn-dIY3GNLE0xpbFp5R5yCu35PpMWSin1fMkivYzGEl_rX8Cl +0w9mUZmFtjhmbTBflwUhuZLGNfX4pZpBtRV5Nn4V_W6HD-UpC6ixyih3u-3JunUUS3Gz7NeHgeM5p_DFFLFLzV1y_F-fUwOPytVNlocNMVIy_yT_O3OvAvw_ +lNDWS_pk_Nl35KyzXmeHYqpDn6fuUdg6gJ1rsRk_l9P9HzpIpLsLYRYg3wYQHz8HD_LmCrNfbhYqkTd9GF7oVM5aLr43UDl7wUgzBcJyVtTJYpwG0LlUCehV +XI5T8KUeUlG1JzlwovZVkxnJGyGctKUC0TeUx-eZCm-6rXfSrZp6GFh6Qvg5-qpXghcNhlO_85nzzTvkSAFLkssk0APRn3h0022nPf7m-URD_tal5A1PL0T_ +GAQFuRq1Ugov9N_qCVpCgN4yUzsU_vYqzU_dtlEhLxJLPvRVN_yrGt_nyib3tPvOSuxL_wLvukxvyqSV6cj_wR5v1I73uZ6FjOn8sNtvqytZO-wn_G90itGp +z_VOxEAqumqjm-rzTJgt1fyuD4JIo8ntPMOO8pQ0pxw-rHxP-vjbBzo4YR2rZSVnkVQ8Fl3VLUTH7tIv_7B-Ti2yJ_GwxbfbS_mSgB_0KXDzfDE1cURf-uMQ +OEbTiCS3JxsVw1j8IzXjuSEWLcO06_l3_Nx_0m +} + ' Layout ' ################################## @@ -111,21 +175,46 @@ legend right endlegend !endprocedure +!global $defaultPerson = "person" + +!procedure PERSON_SPRITE_NONE() + !$defaultPerson = "" +!endprocedure + +!procedure PERSON_SPRITE_ACTIVE() + !$defaultPerson = "person" +!endprocedure + +!procedure PERSON_SPRITE_C4() + !$defaultPerson = "personC4" +!endprocedure + +!procedure PERSON_SPRITE_3D() + !$defaultPerson = "person3D" +!endprocedure + +!procedure PERSON_SPRITE($person) + !$defaultPerson = $person +!endprocedure + ' Elements ' ################################## !function $getPerson($label, $descr, $sprite) +!if ($sprite == "") && ($defaultPerson!="") + !$sprite = $defaultPerson +!endif !if ($descr == "") && ($sprite == "") -!return '<$person>\n=='+$label + !return '=='+$label !endif !if ($descr == "") && ($sprite != "") -!return '<$'+$sprite+'>\n=='+$label + !return '<$'+$sprite+'>\n=='+$label !endif !if ($descr != "") && ($sprite == "") -!return '<$person>\n=='+$label+'\n\n '+$descr + !return '=='+$label+'\n\n '+$descr !endif !if ($descr != "") && ($sprite != "") -!return '<$'+$sprite+'>\n=='+$label+'\n\n '+$descr + !return '<$'+$sprite+'>\n=='+$label+'\n\n '+$descr !endif !endfunction diff --git a/LayoutOptions.md b/LayoutOptions.md index ec984e4..a2026b3 100644 --- a/LayoutOptions.md +++ b/LayoutOptions.md @@ -89,7 +89,7 @@ One thing which is often ignored is the fact, that these software architecture s Without any proof * if they are technically possible -* if they can fullfil all requirements +* if they can fulfill all requirements * if they keep what they promise More often these sketches are used by many people as facts and are manifested into their documentations. @@ -140,3 +140,123 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") ![HIDE_STEREOTYPE Sample](https://www.plantuml.com/plantuml/png/NL1DIyD05BplhrZheIdKX8edJuqrMC5gQ5B5KzWcJxkmN-o-DHJnl_j2gnNtCl1ctfkPdGSK7gDMV7b_MpHLNQoBf_grB7Wbj5F0pgHfLUo0xn1TkCuoB_hqNU8kRcC0trg3O31jhSv4vwKm7ogwc2skBaeb36vM3vaI205fr2n8BQG1dpgoPEoVPp9Xh0GVh4b4fwMPyb4-e0pe1Le_ch1g7n1qSsEZwOJV9-rioiU7gEC9_sIStgzBqiEs4SxHdHVOyjmv9Lk1qfeHZHRdKvvNPVfOrBJYWL-cCxvwNWnShfJj0nyQ1ewMKpqdIAAZGabUlEub8dYEKeCYhq3Plexf4ZoGTESe8vAjGVsqEiNQ1DeaNDPrMP5g4FsofpDtW1IZXm7UlDL_L-PWElhCRm00 "HIDE_STEREOTYPE Sample") +## PERSON_SPRITE_NONE(), PERSON_SPRITE_ACTIVE(), PERSON_SPRITE_C4(), PERSON_SPRITE_3D() or PERSON_SPRITE($person) + +With the macros `PERSON_SPRITE_NONE()`, `PERSON_SPRITE_ACTIVE()`, `PERSON_SPRITE_C4()`, `PERSON_SPRITE_3D()` and `PERSON_SPRITE($person)` it is possible to easily change the person related default sprite. `PERSON_SPRITE_ACTIVE()` is the default. + +- **PERSON_SPRITE_NONE()**: deactivates the default sprite +- **PERSON_SPRITE_ACTIVE()**: (re-)activates the default sprite +- **PERSON_SPRITE_C4()**, **PERSON_SPRITE_3D()**: activates one of the other prepared sprites +- **PERSON_SPRITE($person)**: activates a customer specific sprite as default sprite + +**Using PERSON_SPRITE_ACTIVE()** + +```csharp +@startuml PERSON_SPRITE_ACTIVE Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +/' Not needed because this is the default '/ +PERSON_SPRITE_ACTIVE() + +Person(admin, "Administrator") +System_Boundary(c1, 'Sample') { + Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") +} +System(twitter, "Twitter") + +Rel(admin, web_app, "Uses", "HTTPS") +Rel(web_app, twitter, "Gets tweets from", "HTTPS") +@enduml +``` + +![PERSON_SPRITE_ACTIVE Sample](http://www.plantuml.com/plantuml/png/RL1DYzim4BthLqpJWnt8scpfgQTrZMaNkgc9lTkZaQr98z27aCQOKFhVEoPfqaDzUNZUnppDKo8PQRO6skRGVTyFNNjuxfkXglldjmOwQOD1yKwxoSmAuKGKqgUoZ78fVcewpUESC4xU4Jeg9c_BOAHRynuIAQF7ilxuqAwZrvTlfPM9CF9egDaXjSDO1DOAKMQmzmGEKQ624IV9kK0ddK0dHWI5HpaRWgmK_skQRuLeCIRlSgciTZlOL2lgH56IZvkjwCwytGwV_UoKZETyUjn1TdbWjeLV0lYxzSeN70SP0kVym16g48oU96dlDZogt--WwjfYt_HiYGWVYaTuUQjNhZB6BmdMkt1p3toK85bYkRtcNT0lcWWZaBPeU5VYRh-lxNAwa9npbJ4f3cZ-lkfUwpMna_5htxSTgrRHZRt7V45A_8ih7AEt_rgUq2a-_ny0 "PERSON_SPRITE_ACTIVE Sample") + + +**Using PERSON_SPRITE_NONE()** + +```csharp +@startuml PERSON_SPRITE_NONE Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +PERSON_SPRITE_NONE() + +Person(admin, "Administrator") +System_Boundary(c1, 'Sample') { + Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") +} +System(twitter, "Twitter") + +Rel(admin, web_app, "Uses", "HTTPS") +Rel(web_app, twitter, "Gets tweets from", "HTTPS") +@enduml +``` + +![PERSON_SPRITE_NONE Sample](http://www.plantuml.com/plantuml/png/PL1DYwD04BtxAsgpXnX8b2nxsbDSaTs5ZP5eTe_IQisaeJ-QxX89m_ptAKac6HWlXLNluxtU1HAUHgsWAexreMphwlYdAThoK1PG2-qKHb-awTKu89o9NFYHfbvCoREayzYD0Nrl3Q6XfBSwTKgOMMqJQ52oI_FlcsfUdVP_Koq2eUTLcpD3I8C-SOoDei_MyOgtw8CriHYqD6jOPFEKWRmWwnUhgBwmd6v_sj4Cmb_YVhk6vJNnSWKl4V1tDuedx5hX7ElynmuovvJi1Kbh5hpAlwuXgwkaB1gcU8HloHRs__BvbYbbfm1pqG1aWLiwmH0zAfBi1SqaYNi1IOsAlG9dUxsbY-bwP9qRZ8_H4TLxgqUiKs0cpzzDKzMCca7twqFc5rBWNvp7axVw8sM7Pk3tV0C0 "PERSON_SPRITE_NONE Sample") + +**Using PERSON_SPRITE_C4()** + +```csharp +@startuml PERSON_SPRITE_C4 Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +PERSON_SPRITE_C4() + +Person(admin, "Administrator") +System_Boundary(c1, 'Sample') { + Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") +} +System(twitter, "Twitter") + +Rel(admin, web_app, "Uses", "HTTPS") +Rel(web_app, twitter, "Gets tweets from", "HTTPS") +@enduml +``` + +![PERSON_SPRITE_C4 Sample](http://www.plantuml.com/plantuml/png/NL1DIyD04BtdLupnq0JQX4fFdXf3KS7MqAHw39jajGlxiUnE24NyxyvIjM8kGsRUntkxziWSZaf2jTdNpxkshlQFpQOjLr0pPIMFheJkvJXmE29QVvldZatPky3Zs8sUkzvev1gptgZSIgQ3riBZ84MNbwj55LQ7xLEkc4VkQDMMn612SvTPmaRHV-CafHrttkY43KheESH5cCAZOsXSd4RrYSHKUsT6FJ1tIlhb76RdlBCKFYAWxzSccNZNCcj9vvLtK5WhHSzG61tJghoUGr5NsMxJ4CLnkCcMi7qfmwsGqamUGaqFQ80wMaOGDKeKv0ND991Q0Gh59NbvolRvdIx1yv5qph0GFDfp-TFg4klWYKdpeMcgEau3w1Bw8dFFqTCl3-FD6VMNikPw2A_v1G00 "PERSON_SPRITE_C4 Sample") + +**Using PERSON_SPRITE_3D()** + +```csharp +@startuml PERSON_SPRITE_3D Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +PERSON_SPRITE_3D() + +Person(admin, "Administrator") +System_Boundary(c1, 'Sample') { + Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") +} +System(twitter, "Twitter") + +Rel(admin, web_app, "Uses", "HTTPS") +Rel(web_app, twitter, "Gets tweets from", "HTTPS") +@enduml +``` + +![PERSON_SPRITE_3D Sample](http://www.plantuml.com/plantuml/png/NL1DRzf04BtxLqpf0IE1BTgUUi9rKLkfK0kRvcYjxKbOQJzMksDPACf_pwmW4CMNaUTzl3Ux2IGyZLf1jJtK__PjNHt-DDlswq-eXNOAaq_Iz6eS44v4BdpFSo-cx4dIQUp6WBwtXj1GrbkTEoLCz5e56fJiylBRgeghu-vlhaKWzBngIrO8QT1dZhb9yZ4uNV0EVR0c5OEMPWcp8auPo0koVhP8wZERwVQ77SqW_3djrqkON_hE5_2S07-tc7J2hXNEiSy3Tb0ufsGlI5epurNvUGb5NMNxRSCIZ_0bMyFkVncnGYax1OXd1Y0BVACJJD6Z8ibPq4oI23sGrAWuAt2tbskxb2uW-rnf32O7L6zNtMiT0ojv_cwQgcPM9DtGkyqlfC2_6CUZj_gzP8DcYA_v2W00 "PERSON_SPRITE_3D Sample") + +**Using PERSON_SPRITE($person)** + +```csharp +@startuml PERSON_SPRITE Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +!define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master +!include osaPuml/Common.puml +!include osaPuml/User/all.puml + +PERSON_SPRITE("osa_user_green_operations") + +Person(admin, "Administrator") +System_Boundary(c1, 'Sample') { + Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") +} +System(twitter, "Twitter") + +Rel(admin, web_app, "Uses", "HTTPS") +Rel(web_app, twitter, "Gets tweets from", "HTTPS") +@enduml +``` + +![PERSON_SPRITE Sample](http://www.plantuml.com/plantuml/png/ZP1FRzD04CNl-HJJSAWh9RPQSU94i290eiMANJXQ6tlQhBH_LZDZHH7YkpDBt0R41L-idNapxpVlFOiXcRo3PhjhlpxqRRFxt6sXDJuvN5pPCBXfH3Y897vNLMIEvRELmxIV66c8GJ18EKHV9MT2NhHc6PtTL_NRTPDBZ_TVAczOaBJKrpfXR40gaseNYwiHd_G9aKsZXV_mgSdm0KTlmrYz6AnZmi0uJ6JbP6WuMC519iAxjTLPdW4kvynsLHszZ-7Cya_paPNPE3UZ_XLGiLHLdzdwPq8ClHAG4QjconlL8d4CXScOArXkyj-og2AIzjkJulZ-Gvp2QEXK3BShk3v7Vdq3FnQWtsjInH7tlKb9ztp7FMnISdRuRRNKKlrc1PksAH-sdOuGmbrv2_VVwjpRE1UF39cIGI9eVCcen4zEh7f1TxGYI23MerElpFvpfYlatDGziomVjaFtSjK5IuFYxFUfwvfMLLdqshsi-OZ2-iJyUwBe_npv1G00 "PERSON_SPRITE Sample") + diff --git a/README.md b/README.md index 8cddaa4..14587c6 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ At the top of your C4 PlantUML `.puml` file, you need to include the `C4_Context To be independent of any internet connectivity, you can also download the files found in the `root` and reference it locally with -```c# +```csharp !include path/to/C4.puml !include path/to/C4_Context.puml !include path/to/C4_Container.puml @@ -31,7 +31,7 @@ Just remember to change the `!include` statements at the top of the files. If you want to use the always up-to-date version in this repo, use the following: -```c# +```csharp !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml ``` @@ -76,7 +76,7 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") Entities can also be decorated with icons using the last parameter, for example: -```cs +```csharp @startuml !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml @@ -110,6 +110,11 @@ Diagram types * System Context & System Landscape diagrams * Import: `!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml` * Macros: + * `PERSON_SPRITE_NONE()` + * `PERSON_SPRITE_ACTIVE()` + * `PERSON_SPRITE_C4()` + * `PERSON_SPRITE_3D()` + * `PERSON_SPRITE($person)` * `Person(alias, label, ?description, ?sprite)` * `Person_Ext` * `System(alias, label, ?description, ?sprite)` @@ -165,13 +170,21 @@ In rare cases, you can force the layout using hidden relationships, `Lay_U`, `La ## Layout Options -C4-PlantUML also comes with some layout options to make it easy and reuseable to create nice and useful diagrams: +C4-PlantUML also comes with some layout options to make it easy and reusable to create nice and useful diagrams: * [LAYOUT_TOP_DOWN() or LAYOUT_LEFT_RIGHT()](LayoutOptions.md#layout_top_down-or-layout_left_right) * [LAYOUT_WITH_LEGEND()](LayoutOptions.md#layout_with_legend) * [LAYOUT_AS_SKETCH()](LayoutOptions.md#layout_as_sketch) * [HIDE_STEREOTYPE()](LayoutOptions.md#hide_stereotype) +C4-PlantUML also comes with some default person sprite options: + +* [PERSON_SPRITE_NONE()](LayoutOptions.md#person_sprite_none) +* [PERSON_SPRITE_ACTIVE()](LayoutOptions.md#person_sprite_active) +* [PERSON_SPRITE_C4()](LayoutOptions.md#person_sprite_c4) +* [PERSON_SPRITE_3D()](LayoutOptions.md#person_sprite_3d) +* [PERSON_SPRITE($person)](LayoutOptions.md#person_sprite) + ## Snippets for Visual Studio Code Because the PlantUML support inside of Visual Studio Code is excellent with the [PlantUML extension](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml), you can also find VS Code snippets for C4-PlantUML at [.vscode/C4.code-snippets](.vscode/C4.code-snippets). From c9ac6bb678d498a4dc66bdf8aaac8dd5a49d0f73 Mon Sep 17 00:00:00 2001 From: KIRCHSTH Date: Mon, 21 Dec 2020 15:05:20 +0100 Subject: [PATCH 2/4] #97 Context Diagram supports selectable default person sprites (2 - HIDE_PERSON_SPRITE, SHOW_PERSON_SPRITE, person2) --- C4_Context.puml | 42 ++++++++----------------- LayoutOptions.md | 79 +++++++++++++++--------------------------------- README.md | 12 ++------ 3 files changed, 38 insertions(+), 95 deletions(-) diff --git a/C4_Context.puml b/C4_Context.puml index 9148713..90edf2b 100644 --- a/C4_Context.puml +++ b/C4_Context.puml @@ -100,7 +100,7 @@ sprite $person [48x48/16] { 000000000000000000000000000000000000000000000000 } -sprite $personC4 [48x48/16] { +sprite $person2 [48x48/16] { 0000000000000000000049BCCA7200000000000000000000 0000000000000000006EFFFFFFFFB3000000000000000000 00000000000000001CFFFFFFFFFFFF700000000000000000 @@ -151,16 +151,6 @@ sprite $personC4 [48x48/16] { 000000000002578888888888888888888864100000000000 } -sprite $person3D [64x64/16z] { -rTH9iYif38LX2_NIhVrljnAP8717u3VpF_yETdQt7-XNQyGYmWZ_We5KfLBbzZL7KQ4HYp9yn-dIY3GNLE0xpbFp5R5yCu35PpMWSin1fMkivYzGEl_rX8Cl -0w9mUZmFtjhmbTBflwUhuZLGNfX4pZpBtRV5Nn4V_W6HD-UpC6ixyih3u-3JunUUS3Gz7NeHgeM5p_DFFLFLzV1y_F-fUwOPytVNlocNMVIy_yT_O3OvAvw_ -lNDWS_pk_Nl35KyzXmeHYqpDn6fuUdg6gJ1rsRk_l9P9HzpIpLsLYRYg3wYQHz8HD_LmCrNfbhYqkTd9GF7oVM5aLr43UDl7wUgzBcJyVtTJYpwG0LlUCehV -XI5T8KUeUlG1JzlwovZVkxnJGyGctKUC0TeUx-eZCm-6rXfSrZp6GFh6Qvg5-qpXghcNhlO_85nzzTvkSAFLkssk0APRn3h0022nPf7m-URD_tal5A1PL0T_ -GAQFuRq1Ugov9N_qCVpCgN4yUzsU_vYqzU_dtlEhLxJLPvRVN_yrGt_nyib3tPvOSuxL_wLvukxvyqSV6cj_wR5v1I73uZ6FjOn8sNtvqytZO-wn_G90itGp -z_VOxEAqumqjm-rzTJgt1fyuD4JIo8ntPMOO8pQ0pxw-rHxP-vjbBzo4YR2rZSVnkVQ8Fl3VLUTH7tIv_7B-Ti2yJ_GwxbfbS_mSgB_0KXDzfDE1cURf-uMQ -OEbTiCS3JxsVw1j8IzXjuSEWLcO06_l3_Nx_0m -} - ' Layout ' ################################## @@ -175,34 +165,26 @@ legend right endlegend !endprocedure -!global $defaultPerson = "person" - -!procedure PERSON_SPRITE_NONE() - !$defaultPerson = "" -!endprocedure - -!procedure PERSON_SPRITE_ACTIVE() - !$defaultPerson = "person" -!endprocedure - -!procedure PERSON_SPRITE_C4() - !$defaultPerson = "personC4" -!endprocedure +!global $defaultPersonSprite = "person" -!procedure PERSON_SPRITE_3D() - !$defaultPerson = "person3D" +!procedure HIDE_PERSON_SPRITE() + !$defaultPersonSprite = "" !endprocedure -!procedure PERSON_SPRITE($person) - !$defaultPerson = $person +!unquoted procedure SHOW_PERSON_SPRITE($sprite="") + !if ($sprite == "") + !$defaultPersonSprite = "person" + !else + !$defaultPersonSprite = $sprite + !endif !endprocedure ' Elements ' ################################## !function $getPerson($label, $descr, $sprite) -!if ($sprite == "") && ($defaultPerson!="") - !$sprite = $defaultPerson +!if ($sprite == "") && ($defaultPersonSprite!="") + !$sprite = $defaultPersonSprite !endif !if ($descr == "") && ($sprite == "") !return '=='+$label diff --git a/LayoutOptions.md b/LayoutOptions.md index a2026b3..f85997b 100644 --- a/LayoutOptions.md +++ b/LayoutOptions.md @@ -140,45 +140,35 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") ![HIDE_STEREOTYPE Sample](https://www.plantuml.com/plantuml/png/NL1DIyD05BplhrZheIdKX8edJuqrMC5gQ5B5KzWcJxkmN-o-DHJnl_j2gnNtCl1ctfkPdGSK7gDMV7b_MpHLNQoBf_grB7Wbj5F0pgHfLUo0xn1TkCuoB_hqNU8kRcC0trg3O31jhSv4vwKm7ogwc2skBaeb36vM3vaI205fr2n8BQG1dpgoPEoVPp9Xh0GVh4b4fwMPyb4-e0pe1Le_ch1g7n1qSsEZwOJV9-rioiU7gEC9_sIStgzBqiEs4SxHdHVOyjmv9Lk1qfeHZHRdKvvNPVfOrBJYWL-cCxvwNWnShfJj0nyQ1ewMKpqdIAAZGabUlEub8dYEKeCYhq3Plexf4ZoGTESe8vAjGVsqEiNQ1DeaNDPrMP5g4FsofpDtW1IZXm7UlDL_L-PWElhCRm00 "HIDE_STEREOTYPE Sample") -## PERSON_SPRITE_NONE(), PERSON_SPRITE_ACTIVE(), PERSON_SPRITE_C4(), PERSON_SPRITE_3D() or PERSON_SPRITE($person) +## HIDE_PERSON_SPRITE() or SHOW_PERSON_SPRITE($sprite="") -With the macros `PERSON_SPRITE_NONE()`, `PERSON_SPRITE_ACTIVE()`, `PERSON_SPRITE_C4()`, `PERSON_SPRITE_3D()` and `PERSON_SPRITE($person)` it is possible to easily change the person related default sprite. `PERSON_SPRITE_ACTIVE()` is the default. +With the macros `HIDE_PERSON_SPRITE()` and `SHOW_PERSON_SPRITE()` it is possible to change the person related default sprite. `SHOW_PERSON_SPRITE()` is the default. -- **PERSON_SPRITE_NONE()**: deactivates the default sprite -- **PERSON_SPRITE_ACTIVE()**: (re-)activates the default sprite -- **PERSON_SPRITE_C4()**, **PERSON_SPRITE_3D()**: activates one of the other prepared sprites -- **PERSON_SPRITE($person)**: activates a customer specific sprite as default sprite +- **HIDE_PERSON_SPRITE()**: deactivates the default sprite +- **SHOW_PERSON_SPRITE()**: activates the default sprite "person" +- **SHOW_PERSON_SPRITE($sprite)**: activates a specific sprite as default sprite -**Using PERSON_SPRITE_ACTIVE()** +"person" and "person2" are predefined sprites which can be used as default sprite too. ```csharp -@startuml PERSON_SPRITE_ACTIVE Sample +@startuml predefined sprites Sample !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -/' Not needed because this is the default '/ -PERSON_SPRITE_ACTIVE() - -Person(admin, "Administrator") -System_Boundary(c1, 'Sample') { - Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") -} -System(twitter, "Twitter") - -Rel(admin, web_app, "Uses", "HTTPS") -Rel(web_app, twitter, "Gets tweets from", "HTTPS") +Person(userA, "User A", "with predefined sprite person", "person") +Person(userB, "User B", "with predefined sprite person2", "person2") @enduml ``` -![PERSON_SPRITE_ACTIVE Sample](http://www.plantuml.com/plantuml/png/RL1DYzim4BthLqpJWnt8scpfgQTrZMaNkgc9lTkZaQr98z27aCQOKFhVEoPfqaDzUNZUnppDKo8PQRO6skRGVTyFNNjuxfkXglldjmOwQOD1yKwxoSmAuKGKqgUoZ78fVcewpUESC4xU4Jeg9c_BOAHRynuIAQF7ilxuqAwZrvTlfPM9CF9egDaXjSDO1DOAKMQmzmGEKQ624IV9kK0ddK0dHWI5HpaRWgmK_skQRuLeCIRlSgciTZlOL2lgH56IZvkjwCwytGwV_UoKZETyUjn1TdbWjeLV0lYxzSeN70SP0kVym16g48oU96dlDZogt--WwjfYt_HiYGWVYaTuUQjNhZB6BmdMkt1p3toK85bYkRtcNT0lcWWZaBPeU5VYRh-lxNAwa9npbJ4f3cZ-lkfUwpMna_5htxSTgrRHZRt7V45A_8ih7AEt_rgUq2a-_ny0 "PERSON_SPRITE_ACTIVE Sample") +![Predefined sprites Sample](http://www.plantuml.com/plantuml/png/XOxDIiKm48NtUOfuLrxmDY2kNFLdgr2GhYLjHXj89c5cGb_VH2m8BbpDOVZupkbPB4c9GMS21nyUmMdEv0LOlzcO0wWxZrie3lGkaldP6B97z-bbBsjXe2sX04gtfMXoiDXiDnON_6gcfzlSNilhYucM1QY-tgU4OciJTRcoIir0dF2-oOO7VLdgrSEbfgEM_1scypVVW9zq_QqOJyNuh-An4MUygXxGrK5V "Predefined sprites Sample") -**Using PERSON_SPRITE_NONE()** +**Using HIDE_PERSON_SPRITE()** ```csharp -@startuml PERSON_SPRITE_NONE Sample +@startuml HIDE_PERSON_SPRITE Sample !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -PERSON_SPRITE_NONE() +HIDE_PERSON_SPRITE() Person(admin, "Administrator") System_Boundary(c1, 'Sample') { @@ -191,15 +181,16 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") @enduml ``` -![PERSON_SPRITE_NONE Sample](http://www.plantuml.com/plantuml/png/PL1DYwD04BtxAsgpXnX8b2nxsbDSaTs5ZP5eTe_IQisaeJ-QxX89m_ptAKac6HWlXLNluxtU1HAUHgsWAexreMphwlYdAThoK1PG2-qKHb-awTKu89o9NFYHfbvCoREayzYD0Nrl3Q6XfBSwTKgOMMqJQ52oI_FlcsfUdVP_Koq2eUTLcpD3I8C-SOoDei_MyOgtw8CriHYqD6jOPFEKWRmWwnUhgBwmd6v_sj4Cmb_YVhk6vJNnSWKl4V1tDuedx5hX7ElynmuovvJi1Kbh5hpAlwuXgwkaB1gcU8HloHRs__BvbYbbfm1pqG1aWLiwmH0zAfBi1SqaYNi1IOsAlG9dUxsbY-bwP9qRZ8_H4TLxgqUiKs0cpzzDKzMCca7twqFc5rBWNvp7axVw8sM7Pk3tV0C0 "PERSON_SPRITE_NONE Sample") +![HIDE_PERSON_SPRITE Sample](http://www.plantuml.com/plantuml/png/PL1TgzD047tVNp7MXvj2Ry8LdtowCGPRi3KqgJw6JJBQXVrOTYU48lvtPsbj1VCoPCwPyx6laMIWsMZOxZxLVLCVsw-7lcsEkww6LXglKRnHTjJpX70cyl53KGIvv3yLdUTXZXX6PmajvQCpXTVI9hNdI9DMGr6zVsxIwhJ_KXWP2GEl-eelfB8OSizS8VwtpjP2D1YYivcSZB8RM9LfgaX1aWkhjMWlaT3q7zri9naksVYoWQThugSr_1B0tzqeMt3efVUiynq7ABtNQfIad5tngdgxWR9jyaFTyKb0U9U_mFvRbR1IQxT4I4KZa0DkwILJpAn9iHTqYoB20AGCQlQAdEttBLr6Lv1rRZG6nH7rtrQFMAU8CVbjkwvfcPL8T_GXynafyY-cyICuy-_9AzeflUSV "HIDE_PERSON_SPRITE Sample") -**Using PERSON_SPRITE_C4()** +**Using SHOW_PERSON_SPRITE()** ```csharp -@startuml PERSON_SPRITE_C4 Sample +@startuml SHOW_PERSON_SPRITE Sample !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -PERSON_SPRITE_C4() +/' Not needed because this is the default with sprite "person" '/ +SHOW_PERSON_SPRITE() Person(admin, "Administrator") System_Boundary(c1, 'Sample') { @@ -212,40 +203,18 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") @enduml ``` -![PERSON_SPRITE_C4 Sample](http://www.plantuml.com/plantuml/png/NL1DIyD04BtdLupnq0JQX4fFdXf3KS7MqAHw39jajGlxiUnE24NyxyvIjM8kGsRUntkxziWSZaf2jTdNpxkshlQFpQOjLr0pPIMFheJkvJXmE29QVvldZatPky3Zs8sUkzvev1gptgZSIgQ3riBZ84MNbwj55LQ7xLEkc4VkQDMMn612SvTPmaRHV-CafHrttkY43KheESH5cCAZOsXSd4RrYSHKUsT6FJ1tIlhb76RdlBCKFYAWxzSccNZNCcj9vvLtK5WhHSzG61tJghoUGr5NsMxJ4CLnkCcMi7qfmwsGqamUGaqFQ80wMaOGDKeKv0ND991Q0Gh59NbvolRvdIx1yv5qph0GFDfp-TFg4klWYKdpeMcgEau3w1Bw8dFFqTCl3-FD6VMNikPw2A_v1G00 "PERSON_SPRITE_C4 Sample") +![SHOW_PERSON_SPRITE Sample](http://www.plantuml.com/plantuml/png/PL5DQzmm4BthLqpTWxsmiKdfgQUuPcaApSQidUPeP6lI5UX3I6DCAFtl7JLfjb1V1i-yz-QzqKqY6Mcr1eRR-yUfFvo6--CqzAUlum46QOD1yKwxnQmAuKmKqgUcYNAhVsWwh_EQC2xU4Jgg5s-ROAJBQbU9bD5pqtsywdFhuUvROsKYZDoQEcP8xJ3MWR52D2KSFO53LAXWnaMoBj1P9z29AuB29xaQWestGWfH4q8HC2Rl2YWRyR_vQYT4_mTGIMMrsqFHvgeJHKa-5ZinFBCXEttsgrCoFbVBzHxAbypb3duAuE_DQhNXFCaGMESHPsX3C7gHfDa0jxhtUsY7lZuUHgP4X0_rDTnzx_AiDSPl2VAf4f07lbEG3B4SIFCk63aLOGJI5WtlIkpjrwkxYbw6hFCAuw4ueVcRwcBh8J6Jw-quzWEZCkXjUf7vWfJu5tDvYjx-Ixb1f_AB_0O0 "SHOW_PERSON_SPRITE Sample") -**Using PERSON_SPRITE_3D()** +**Using SHOW_PERSON_SPRITE(sprite)** ```csharp -@startuml PERSON_SPRITE_3D Sample -!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml - -PERSON_SPRITE_3D() - -Person(admin, "Administrator") -System_Boundary(c1, 'Sample') { - Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines") -} -System(twitter, "Twitter") - -Rel(admin, web_app, "Uses", "HTTPS") -Rel(web_app, twitter, "Gets tweets from", "HTTPS") -@enduml -``` - -![PERSON_SPRITE_3D Sample](http://www.plantuml.com/plantuml/png/NL1DRzf04BtxLqpf0IE1BTgUUi9rKLkfK0kRvcYjxKbOQJzMksDPACf_pwmW4CMNaUTzl3Ux2IGyZLf1jJtK__PjNHt-DDlswq-eXNOAaq_Iz6eS44v4BdpFSo-cx4dIQUp6WBwtXj1GrbkTEoLCz5e56fJiylBRgeghu-vlhaKWzBngIrO8QT1dZhb9yZ4uNV0EVR0c5OEMPWcp8auPo0koVhP8wZERwVQ77SqW_3djrqkON_hE5_2S07-tc7J2hXNEiSy3Tb0ufsGlI5epurNvUGb5NMNxRSCIZ_0bMyFkVncnGYax1OXd1Y0BVACJJD6Z8ibPq4oI23sGrAWuAt2tbskxb2uW-rnf32O7L6zNtMiT0ojv_cwQgcPM9DtGkyqlfC2_6CUZj_gzP8DcYA_v2W00 "PERSON_SPRITE_3D Sample") - -**Using PERSON_SPRITE($person)** - -```csharp -@startuml PERSON_SPRITE Sample -!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml - +@startuml SHOW_PERSON_SPRITE(sprite) Sample +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master !include osaPuml/Common.puml !include osaPuml/User/all.puml -PERSON_SPRITE("osa_user_green_operations") +SHOW_PERSON_SPRITE("osa_user_green_architect") Person(admin, "Administrator") System_Boundary(c1, 'Sample') { @@ -258,5 +227,5 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") @enduml ``` -![PERSON_SPRITE Sample](http://www.plantuml.com/plantuml/png/ZP1FRzD04CNl-HJJSAWh9RPQSU94i290eiMANJXQ6tlQhBH_LZDZHH7YkpDBt0R41L-idNapxpVlFOiXcRo3PhjhlpxqRRFxt6sXDJuvN5pPCBXfH3Y897vNLMIEvRELmxIV66c8GJ18EKHV9MT2NhHc6PtTL_NRTPDBZ_TVAczOaBJKrpfXR40gaseNYwiHd_G9aKsZXV_mgSdm0KTlmrYz6AnZmi0uJ6JbP6WuMC519iAxjTLPdW4kvynsLHszZ-7Cya_paPNPE3UZ_XLGiLHLdzdwPq8ClHAG4QjconlL8d4CXScOArXkyj-og2AIzjkJulZ-Gvp2QEXK3BShk3v7Vdq3FnQWtsjInH7tlKb9ztp7FMnISdRuRRNKKlrc1PksAH-sdOuGmbrv2_VVwjpRE1UF39cIGI9eVCcen4zEh7f1TxGYI23MerElpFvpfYlatDGziomVjaFtSjK5IuFYxFUfwvfMLLdqshsi-OZ2-iJyUwBe_npv1G00 "PERSON_SPRITE Sample") +![SHOW_PERSON_SPRITE(sprite) Sample](http://www.plantuml.com/plantuml/png/ZL1DQzj04BthLspSGsIm9H9wwYckC4sXIOIbD4UnbYRnmduiCoDKK_hVEuiLkvGUgelOUM_UU_FkY3NowAngxfzUkdgxQvuUkwRUVMstEKKq34lLQ1SjP5V6ztOSG1sO8tqgIzHJyMRuCEv70ko3P_1SzC6LqMgVLDV4WpNxilguhjFe-U5RwJGne8owActyu28ACxiQuDLuK85qBU__CAbGqm46P_nGlgklGmHFq8-I_AYnFnY6daU4sxMHNPhTBxVCTcKLd0j-Zl8t-4mIM5jxWhD_LBKGQfS2Tcy8uBkpzMAPPJKW1P_h57Mb5flqDyIeEQ3WpP4ONFSvZ7xGUCpxcvMwFdL-lLG_CoLVgaeR3vXFiEzqZABp0dkrYT6QNhC9VY6ZwiDARPgwUDosieAWReiRzV2zIjZ6sZ2HIY59SL1IOTH2SQDb8rwgdGmpe6BZm8eNIRPVSxgSJw3epBHqs0xi-rMNM58M9R_xjgqROINI6Rt8V04cUKBwlM9mVwxSWHzIqxy1 "SHOW_PERSON_SPRITE(sprite)") diff --git a/README.md b/README.md index 14587c6..12999f9 100644 --- a/README.md +++ b/README.md @@ -110,11 +110,6 @@ Diagram types * System Context & System Landscape diagrams * Import: `!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml` * Macros: - * `PERSON_SPRITE_NONE()` - * `PERSON_SPRITE_ACTIVE()` - * `PERSON_SPRITE_C4()` - * `PERSON_SPRITE_3D()` - * `PERSON_SPRITE($person)` * `Person(alias, label, ?description, ?sprite)` * `Person_Ext` * `System(alias, label, ?description, ?sprite)` @@ -179,11 +174,8 @@ C4-PlantUML also comes with some layout options to make it easy and reusable to C4-PlantUML also comes with some default person sprite options: -* [PERSON_SPRITE_NONE()](LayoutOptions.md#person_sprite_none) -* [PERSON_SPRITE_ACTIVE()](LayoutOptions.md#person_sprite_active) -* [PERSON_SPRITE_C4()](LayoutOptions.md#person_sprite_c4) -* [PERSON_SPRITE_3D()](LayoutOptions.md#person_sprite_3d) -* [PERSON_SPRITE($person)](LayoutOptions.md#person_sprite) +* [HIDE_PERSON_SPRITE()](LayoutOptions.md#hide_person_sprite) +* [SHOW_PERSON_SPRITE_ACTIVE()](LayoutOptions.md#show_person_sprite) ## Snippets for Visual Studio Code From 07246d5f889ed37cfabf814e915bde7efe0e4dd9 Mon Sep 17 00:00:00 2001 From: KIRCHSTH Date: Mon, 21 Dec 2020 15:54:27 +0100 Subject: [PATCH 3/4] #97 Context Diagram supports selectable default person sprites (2a - fix include) --- LayoutOptions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LayoutOptions.md b/LayoutOptions.md index f85997b..fd399d4 100644 --- a/LayoutOptions.md +++ b/LayoutOptions.md @@ -209,7 +209,7 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") ```csharp @startuml SHOW_PERSON_SPRITE(sprite) Sample -!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master !include osaPuml/Common.puml !include osaPuml/User/all.puml @@ -227,5 +227,5 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS") @enduml ``` -![SHOW_PERSON_SPRITE(sprite) Sample](http://www.plantuml.com/plantuml/png/ZL1DQzj04BthLspSGsIm9H9wwYckC4sXIOIbD4UnbYRnmduiCoDKK_hVEuiLkvGUgelOUM_UU_FkY3NowAngxfzUkdgxQvuUkwRUVMstEKKq34lLQ1SjP5V6ztOSG1sO8tqgIzHJyMRuCEv70ko3P_1SzC6LqMgVLDV4WpNxilguhjFe-U5RwJGne8owActyu28ACxiQuDLuK85qBU__CAbGqm46P_nGlgklGmHFq8-I_AYnFnY6daU4sxMHNPhTBxVCTcKLd0j-Zl8t-4mIM5jxWhD_LBKGQfS2Tcy8uBkpzMAPPJKW1P_h57Mb5flqDyIeEQ3WpP4ONFSvZ7xGUCpxcvMwFdL-lLG_CoLVgaeR3vXFiEzqZABp0dkrYT6QNhC9VY6ZwiDARPgwUDosieAWReiRzV2zIjZ6sZ2HIY59SL1IOTH2SQDb8rwgdGmpe6BZm8eNIRPVSxgSJw3epBHqs0xi-rMNM58M9R_xjgqROINI6Rt8V04cUKBwlM9mVwxSWHzIqxy1 "SHOW_PERSON_SPRITE(sprite)") +![SHOW_PERSON_SPRITE(sprite) Sample](http://www.plantuml.com/plantuml/png/ZL1DQzj04BthLspTGnIm9H9wwYckC4sXIOGbDqUnbYRnmduiCxCOK_hVEzieTkcfkYmpx-EzqHsnHaxE5X-C7ssQG1sO8tskQzJ7wjNm8UqJ0Ox1CtYknk3gQBNFcXNnPCs-RZwjshpQFNoldIO6bDNGY48R3rZ5F_uJlCYa0kbMvl-8QL3J0IPd_5I_-wz214ym9ZHyqZWU3CF82U5sPKHBS_xbcZckRe9pmSzL_WLtabnhQz_Wehj_UXxQpRPxUXowTlkjtvGBeGwvuF2A07uuHo-kYw85fE1BdQikrMATNqECcWCAtfs8mGrVGlAJnbCvtYpLLQTTj71rhNuMIhxppogFi1zqZEBp37krZj6QKRC9VY6hvkDIhRksUjpq8a5GjzMDUlZHP6njRJYIoYL9SL1ZS54BnINBHh9KVpJCW8gD0ojP9Dr-pUrAVWF5PwRbmxPWtw-wrDeHKCwxx_ks4rOcdT6BpLTWaX7oyuB1_Isv0pybPty3 "SHOW_PERSON_SPRITE(sprite)") From 65422b2cb027d15cf18e7bed6d10e17460d6f410 Mon Sep 17 00:00:00 2001 From: KIRCHSTH Date: Thu, 11 Feb 2021 23:33:39 +0100 Subject: [PATCH 4/4] #97 Context Diagram supports selectable default person sprites (3 - resolve merge conflicts) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63ffbd8..e4113e8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# C4-PlantUML +# C4-PlantUML ![Container diagram for Internet Banking System](https://www.plantuml.com/plantuml/png/bLLDZzis4BtxLqoTGnr0kqQ0ddgArpQwcwntrSZRJK_2Y1hRH2XI82axHj7_tg6i3yiEajGdQJJpvl7D6_gzysXzLQZHBr8BLUK4E-zBz_jqQl5mkvL-LsML8okCzgJzhJ3557ChKUzLLLRJ-MytiKBjNrQFKuMUdETGEkTib9hiRHcmVuLASs710E1t11kZb3b8lGN5IO0wXy5dQHq_6U36e8n0fOwCqJ6yRi1V7sT_Fx-iq_Lpd2wUNvycR_lOB4cJZylr_9w3JUZrONsVFYx_M3ujE3ZoqYl6RK4XbxYrM31H2mzySAl9mntgBu5pSdIUYj4e9kkCdeZAULEGZM3UFOrdq8R1REf3PLmTmO45XR8kH5N708KmbVPkp3nEqEaT1tAqnubunrYN1CPluPyHyA_ZEpbGbc9PSl8hPJ0hIoK5Ucdqc4CVS8yH9AKDv5T_pKDiGKhkcKPDZJtWfO1cnFKuGhZhcxK7ZsTCSjZPbOmzJlYpefiOjnIwjrqJOMNf8vZfRQNGXd1ipLxcv827-kqk6_PAe8vA-cDmWQXg8Hti9OOIQO7F2var1pRc5QF2P59H8yUgVcavpTz4y1aBP2M6NDY7XVIKWwionroQcVqCDtT5xaG0SjfBGPVq5jaaHuyPEWfZQ1u3c-JFHnYyUsEPMrW-iBILpblarY0rkxAefnl1ZfDpm8fT9IpbF3w9oaN1LEGSBy-MNyYBsokPCXHVIEUiamn-ZH--RPk5uJJRrmrq-u4-GH86vjR_TjPUVlKJAb2grDK1XblUhFYzMQk0lsRfPGtDExAImXfdDXwMNyKEDJliLCcmPvWDWnwLCVM6TvWkzlPCsc31PjA20zqfpXG6p4pb-p57tRf6mFFG3klpzYAFFf4wknBwnNnnv4Bl-_KwJZXnc7TQe-_d38nTfvxQfKyajxlCd5q39xXsoHkaEZWSUziGtL6B23uapq_Jy-RdBVzNPNh7sJsntl93b4-4kOEDDKLzwnmiBo7VIIOWDy2Bktbxpe1vfiU5ZHA6TK0t8LfZz4Gk73VaCAohNBXXk_R9QXqtGDrX1kLNlck52VNJHftF_EVOYlEUI_alwpy0 "Container diagram for Internet Banking System")