diff --git a/.vscode/C4.code-snippets b/.vscode/C4.code-snippets index 275dac1..5780c14 100644 --- a/.vscode/C4.code-snippets +++ b/.vscode/C4.code-snippets @@ -17,6 +17,15 @@ ], "description": "Add Person with Description to C4 diagram" }, + "C4_Person_Descr_link": { + "scope": "diagram", + "prefix": "Person with Description", + "body": [ + "Person(${1:alias}, \"${2:label}\", \"${3:description}\", \"${4:url}\")", + "$0" + ], + "description": "Add Person with Description and with a linked url to C4 diagram" + }, "C4_Person_Ext": { "scope": "diagram", "prefix": [ @@ -41,6 +50,18 @@ ], "description": "Add External Person with Description to C4 diagram" }, + "C4_Person_Ext_Descr_link": { + "scope": "diagram", + "prefix": [ + "External Person with Description", + "Person (External) with Description" + ], + "body": [ + "Person_Ext(${1:alias}, \"${2:label}\", \"${3:description}\", \"${4:url}\")", + "$0" + ], + "description": "Add External Person with Description with a linked url to C4 diagram" + }, "C4_Container": { "scope": "diagram", "prefix": "Container", @@ -59,6 +80,44 @@ ], "description": "Add Container with Description to C4 diagram" }, + "C4_Container_Descr_link": { + "scope": "diagram", + "prefix": "Container with Description", + "body": [ + "Container(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\", \"${5:url}\")", + "$0" + ], + "description": "Add Container with Description with a linked url to C4 diagram" + }, + + "C4_ContainerDb": { + "scope": "diagram", + "prefix": "ContainerDb", + "body": [ + "ContainerDb(${1:alias}, \"${2:label}\", \"${3:technology}\")", + "$0" + ], + "description": "Add ContainerDb to C4 diagram" + }, + "C4_ContainerDb_Descr": { + "scope": "diagram", + "prefix": "ContainerDb with Description", + "body": [ + "ContainerDb(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\")", + "$0" + ], + "description": "Add ContainerDb with Description to C4 diagram" + }, + "C4_ContainerDb_Descr_link": { + "scope": "diagram", + "prefix": "ContainerDb with Description", + "body": [ + "ContainerDb(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\", \"${5:url}\")", + "$0" + ], + "description": "Add ContainerDb with Description with a linked url to C4 diagram" + }, + "C4_Container_Boundary": { "scope": "diagram", "prefix": [ @@ -72,6 +131,19 @@ ], "description": "Add a Container Boundary to C4 diagram" }, + "C4_Container_Boundary_link": { + "scope": "diagram", + "prefix": [ + "Container Boundary", + "Boundary for Container" + ], + "body": [ + "Container_Boundary(${1:alias}, \"${2:label}\", \"${3:url}\"){", + "\t$0", + "}" + ], + "description": "Add a Container Boundary with a linked url to C4 diagram" + }, "C4_Component": { "scope": "diagram", "prefix": "Component", @@ -90,6 +162,44 @@ ], "description": "Add Component with Description to C4 diagram" }, + "C4_Component_Descr_link": { + "scope": "diagram", + "prefix": "Component with Description", + "body": [ + "Component(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\", \"${5:url}\")", + "$0" + ], + "description": "Add Component with Description with a linked url to C4 diagram" + }, + + "C4_ComponentDb": { + "scope": "diagram", + "prefix": "ComponentDb", + "body": [ + "ComponentDb(${1:alias}, \"${2:label}\", \"${3:technology}\")", + "$0" + ], + "description": "Add ComponentDb to C4 diagram" + }, + "C4_ComponentDb_Descr": { + "scope": "diagram", + "prefix": "ComponentDb with Description", + "body": [ + "ComponentDb(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\")", + "$0" + ], + "description": "Add ComponentDb with Description to C4 diagram" + }, + "C4_ComponentDb_Descr_link": { + "scope": "diagram", + "prefix": "ComponentDb with Description", + "body": [ + "ComponentDb(${1:alias}, \"${2:label}\", \"${3:technology}\", \"${4:description}\", \"${5:url}\")", + "$0" + ], + "description": "Add ComponentDb with Description with a linked url to C4 diagram" + }, + "C4_System": { "scope": "diagram", "prefix": "System", @@ -108,6 +218,15 @@ ], "description": "Add System with Description to C4 diagram" }, + "C4_System_Descr_link": { + "scope": "diagram", + "prefix": "System with Description", + "body": [ + "System(${1:alias}, \"${2:label}\", \"${3:description}\",\"${4:url}\")", + "$0" + ], + "description": "Add System with Description with a linked url to C4 diagram" + }, "C4_System_Ext": { "scope": "diagram", "prefix": [ @@ -132,6 +251,18 @@ ], "description": "Add External System with Description to C4 diagram" }, + "C4_System_Ext_Descr_link": { + "scope": "diagram", + "prefix": [ + "External System with Description", + "System (External) with Description" + ], + "body": [ + "System_Ext(${1:alias}, \"${2:label}\", \"${3:description}\",\"${4:url}\")", + "$0" + ], + "description": "Add External System with Description with a linked url to C4 diagram" + }, "C4_System_Boundary": { "scope": "diagram", "prefix": [ @@ -145,6 +276,19 @@ ], "description": "Add a System Boundary to C4 diagram" }, + "C4_System_Boundary_link": { + "scope": "diagram", + "prefix": [ + "System Boundary", + "Boundary for System" + ], + "body": [ + "System_Boundary(${1:alias}, \"${2:label}\",\"${3:url}\"){", + "\t$0", + "}" + ], + "description": "Add a System Boundary with a linked url to C4 diagram" + }, "C4_Enterprise_Boundary": { "scope": "diagram", "prefix": [ @@ -158,6 +302,19 @@ ], "description": "Add an Enterprise Boundary to C4 diagram" }, + "C4_Enterprise_Boundary_link": { + "scope": "diagram", + "prefix": [ + "Enterprise Boundary", + "Boundary for Enterprise" + ], + "body":[ + "Enterprise_Boundary(${1:alias}, \"${2:label}\",\"${3:url}\"){", + "\t$0", + "}" + ], + "description": "Add an Enterprise Boundary with a linked url to C4 diagram" + }, "C4_Relationship": { "scope": "diagram", "prefix": "Relationship", diff --git a/C4.puml b/C4.puml index d28711a..5b646d7 100644 --- a/C4.puml +++ b/C4.puml @@ -58,6 +58,7 @@ center footer Warning: Created for discussion, needs to b !define Boundary(e_alias, e_label) rectangle "==e_label" <> as e_alias !define Boundary(e_alias, e_label, e_type) rectangle "==e_label\n[e_type]" <> as e_alias +!define Boundary(e_alias, e_label, e_type, e_link) rectangle "==e_label\n[e_type]" <> as e_alias [[e_link]] ' Relationship ' ################################## diff --git a/C4_Component.puml b/C4_Component.puml index 40a8a24..2e32e09 100644 --- a/C4_Component.puml +++ b/C4_Component.puml @@ -50,6 +50,8 @@ endlegend !define Component(e_alias, e_label, e_techn) rectangle "==e_label\n//[e_techn]//" <> as e_alias !define Component(e_alias, e_label, e_techn, e_descr) rectangle "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias +!define Component(e_alias, e_label, e_techn, e_descr, e_link) rectangle "==e_label \n//[e_techn]//\n\n e_descr" <> as e_alias [[e_link]] !define ComponentDb(e_alias, e_label, e_techn) database "==e_label\n//[e_techn]//" <> as e_alias !define ComponentDb(e_alias, e_label, e_techn, e_descr) database "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias +!define ComponentDb(e_alias, e_label, e_techn, e_descr, e_link) database "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias [[e_link]] \ No newline at end of file diff --git a/C4_Container.puml b/C4_Container.puml index 2bc697c..a05681a 100644 --- a/C4_Container.puml +++ b/C4_Container.puml @@ -49,11 +49,14 @@ endlegend !define Container(e_alias, e_label, e_techn) rectangle "==e_label\n//[e_techn]//" <> as e_alias !define Container(e_alias, e_label, e_techn, e_descr) rectangle "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias +!define Container(e_alias, e_label, e_techn, e_descr, e_link) rectangle "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias [[e_link]] !define ContainerDb(e_alias, e_label, e_techn) database "==e_label\n//[e_techn]//" <> as e_alias !define ContainerDb(e_alias, e_label, e_techn, e_descr) database "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias +!define ContainerDb(e_alias, e_label, e_techn, e_descr, e_link) database "==e_label\n//[e_techn]//\n\n e_descr" <> as e_alias [[e_link]] ' Boundaries ' ################################## -!define Container_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Container") \ No newline at end of file +!define Container_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Container") +!define Container_Boundary(e_alias, e_label,e_link) Boundary(e_alias, e_label, "Container", e_link) \ No newline at end of file diff --git a/C4_Context.puml b/C4_Context.puml index a28a9cb..0414224 100644 --- a/C4_Context.puml +++ b/C4_Context.puml @@ -79,24 +79,33 @@ endlegend !define Person(e_alias, e_label) rectangle "==e_label" <> as e_alias !define Person(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias +!define Person(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <> as e_alias [[e_link]] !define Person_Ext(e_alias, e_label) rectangle "==e_label" <> as e_alias !define Person_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias +!define Person_Ext(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <> as e_alias [[e_link]] !define System(e_alias, e_label) rectangle "==e_label" <> as e_alias !define System(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias +!define System(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <> as e_alias [[e_link]] !define System_Ext(e_alias, e_label) rectangle "==e_label" <> as e_alias !define System_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias +!define System_Ext(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <> as e_alias [[e_link]] !define SystemDb(e_alias, e_label) database "==e_label" <> as e_alias !define SystemDb(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <> as e_alias +!define SystemDb(e_alias, e_label, e_descr, e_link) database "==e_label\n\n e_descr" <> as e_alias [[e_link]] !define SystemDb_Ext(e_alias, e_label) database "==e_label" <> as e_alias !define SystemDb_Ext(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <> as e_alias +!define SystemDb_Ext(e_alias, e_label, e_descr, e_link) database "==e_label\n\n e_descr" <> as e_alias [[e_link]] ' Boundaries ' ################################## !define Enterprise_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Enterprise") -!define System_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "System") \ No newline at end of file +!define Enterprise_Boundary(e_alias, e_label, e_link) Boundary(e_alias, e_label, "Enterprise", e_link) + +!define System_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "System") +!define System_Boundary(e_alias, e_label, e_link) Boundary(e_alias, e_label, "System", e_link) \ No newline at end of file diff --git a/samples/C4_Component Diagram Sample - bigbankplc.puml b/samples/C4_Component Diagram Sample - bigbankplc.puml index 491a725..4770af7 100644 --- a/samples/C4_Component Diagram Sample - bigbankplc.puml +++ b/samples/C4_Component Diagram Sample - bigbankplc.puml @@ -3,7 +3,7 @@ ' uncomment the following line and comment the first to use locally ' !include C4_Component.puml -LAYOUT_WITH_LEGEND +LAYOUT_WITH_LEGEND() title Component diagram for Internet Banking System - API Application diff --git a/samples/C4_Container Diagram Sample - bigbankplc.puml b/samples/C4_Container Diagram Sample - bigbankplc.puml index 56dccd9..0acd507 100644 --- a/samples/C4_Container Diagram Sample - bigbankplc.puml +++ b/samples/C4_Container Diagram Sample - bigbankplc.puml @@ -4,8 +4,8 @@ ' !include C4_Container.puml LAYOUT_TOP_DOWN -'LAYOUT_AS_SKETCH -LAYOUT_WITH_LEGEND +'LAYOUT_AS_SKETCH() +LAYOUT_WITH_LEGEND() title Container diagram for Internet Banking System diff --git a/samples/C4_Container Diagram Sample - message bus.puml b/samples/C4_Container Diagram Sample - message bus.puml index d8485ff..eef0dfd 100644 --- a/samples/C4_Container Diagram Sample - message bus.puml +++ b/samples/C4_Container Diagram Sample - message bus.puml @@ -7,8 +7,8 @@ skinparam wrapWidth 200 skinparam maxMessageSize 200 LAYOUT_TOP_DOWN -'LAYOUT_AS_SKETCH -LAYOUT_WITH_LEGEND +'LAYOUT_AS_SKETCH() +LAYOUT_WITH_LEGEND() Person(customer, Customer, "A customer") diff --git a/samples/C4_Container Diagram Sample - techtribesjs.puml b/samples/C4_Container Diagram Sample - techtribesjs.puml index dbd0569..aca31e1 100644 --- a/samples/C4_Container Diagram Sample - techtribesjs.puml +++ b/samples/C4_Container Diagram Sample - techtribesjs.puml @@ -4,8 +4,8 @@ ' !include C4_Container.puml LAYOUT_TOP_DOWN -'LAYOUT_AS_SKETCH -LAYOUT_WITH_LEGEND +'LAYOUT_AS_SKETCH() +LAYOUT_WITH_LEGEND() Person_Ext(anonymous_user, "Anonymous User") diff --git a/samples/C4_Context Diagram Sample - bigbankplc-landscape.puml b/samples/C4_Context Diagram Sample - bigbankplc-landscape.puml index a4b3f4b..ff21fa0 100644 --- a/samples/C4_Context Diagram Sample - bigbankplc-landscape.puml +++ b/samples/C4_Context Diagram Sample - bigbankplc-landscape.puml @@ -3,9 +3,9 @@ ' uncomment the following line and comment the first to use locally ' !include C4_Context.puml -'LAYOUT_TOP_DOWN -'LAYOUT_AS_SKETCH -LAYOUT_WITH_LEGEND +LAYOUT_TOP_DOWN +'LAYOUT_AS_SKETCH() +LAYOUT_WITH_LEGEND() title System Landscape diagram for Big Bank plc diff --git a/samples/C4_Context Diagram Sample - bigbankplc.puml b/samples/C4_Context Diagram Sample - bigbankplc.puml index 70778cd..06469b1 100644 --- a/samples/C4_Context Diagram Sample - bigbankplc.puml +++ b/samples/C4_Context Diagram Sample - bigbankplc.puml @@ -3,7 +3,7 @@ ' uncomment the following line and comment the first to use locally ' !include C4_Context.puml -LAYOUT_WITH_LEGEND +LAYOUT_WITH_LEGEND() title System Context diagram for Internet Banking System diff --git a/samples/C4_Context Diagram Sample - enterprise.puml b/samples/C4_Context Diagram Sample - enterprise.puml index c58f636..0b8e329 100644 --- a/samples/C4_Context Diagram Sample - enterprise.puml +++ b/samples/C4_Context Diagram Sample - enterprise.puml @@ -4,8 +4,8 @@ ' !include C4_Context.puml LAYOUT_TOP_DOWN -'LAYOUT_AS_SKETCH -LAYOUT_WITH_LEGEND +'LAYOUT_AS_SKETCH() +LAYOUT_WITH_LEGEND() Person(customer, "Customer", "A customer of Widgets Limited.")