Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable hyperlinks in C4 elements and fix samples #72

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
157 changes: 157 additions & 0 deletions .vscode/C4.code-snippets
Expand Up @@ -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": [
Expand All @@ -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",
Expand All @@ -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": [
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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": [
Expand All @@ -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": [
Expand All @@ -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": [
Expand All @@ -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",
Expand Down
1 change: 1 addition & 0 deletions C4.puml
Expand Up @@ -58,6 +58,7 @@ center footer <font color=red>Warning:</font> Created for discussion, needs to b

!define Boundary(e_alias, e_label) rectangle "==e_label" <<boundary>> as e_alias
!define Boundary(e_alias, e_label, e_type) rectangle "==e_label\n<size:TECHN_FONT_SIZE>[e_type]</size>" <<boundary>> as e_alias
!define Boundary(e_alias, e_label, e_type, e_link) rectangle "==e_label\n<size:TECHN_FONT_SIZE>[e_type]</size>" <<boundary>> as e_alias [[e_link]]

' Relationship
' ##################################
Expand Down
2 changes: 2 additions & 0 deletions C4_Component.puml
Expand Up @@ -50,6 +50,8 @@ endlegend

!define Component(e_alias, e_label, e_techn) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<component>> as e_alias
!define Component(e_alias, e_label, e_techn, e_descr) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias
!define Component(e_alias, e_label, e_techn, e_descr, e_link) rectangle "==e_label \n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias [[e_link]]

!define ComponentDb(e_alias, e_label, e_techn) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<component>> as e_alias
!define ComponentDb(e_alias, e_label, e_techn, e_descr) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias
!define ComponentDb(e_alias, e_label, e_techn, e_descr, e_link) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias [[e_link]]
5 changes: 4 additions & 1 deletion C4_Container.puml
Expand Up @@ -49,11 +49,14 @@ endlegend

!define Container(e_alias, e_label, e_techn) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<container>> as e_alias
!define Container(e_alias, e_label, e_techn, e_descr) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<container>> as e_alias
!define Container(e_alias, e_label, e_techn, e_descr, e_link) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<container>> as e_alias [[e_link]]

!define ContainerDb(e_alias, e_label, e_techn) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<container>> as e_alias
!define ContainerDb(e_alias, e_label, e_techn, e_descr) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<container>> as e_alias
!define ContainerDb(e_alias, e_label, e_techn, e_descr, e_link) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<container>> as e_alias [[e_link]]

' Boundaries
' ##################################

!define Container_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Container")
!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)
11 changes: 10 additions & 1 deletion C4_Context.puml
Expand Up @@ -79,24 +79,33 @@ endlegend

!define Person(e_alias, e_label) rectangle "==e_label" <<person>> as e_alias
!define Person(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <<person>> as e_alias
!define Person(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <<person>> as e_alias [[e_link]]

!define Person_Ext(e_alias, e_label) rectangle "==e_label" <<external_person>> as e_alias
!define Person_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <<external_person>> as e_alias
!define Person_Ext(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <<external_person>> as e_alias [[e_link]]

!define System(e_alias, e_label) rectangle "==e_label" <<system>> as e_alias
!define System(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <<system>> as e_alias
!define System(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <<system>> as e_alias [[e_link]]

!define System_Ext(e_alias, e_label) rectangle "==e_label" <<external_system>> as e_alias
!define System_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <<external_system>> as e_alias
!define System_Ext(e_alias, e_label, e_descr, e_link) rectangle "==e_label\n\n e_descr" <<external_system>> as e_alias [[e_link]]

!define SystemDb(e_alias, e_label) database "==e_label" <<system>> as e_alias
!define SystemDb(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <<system>> as e_alias
!define SystemDb(e_alias, e_label, e_descr, e_link) database "==e_label\n\n e_descr" <<system>> as e_alias [[e_link]]

!define SystemDb_Ext(e_alias, e_label) database "==e_label" <<external_system>> as e_alias
!define SystemDb_Ext(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <<external_system>> as e_alias
!define SystemDb_Ext(e_alias, e_label, e_descr, e_link) database "==e_label\n\n e_descr" <<external_system>> 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")
!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)
2 changes: 1 addition & 1 deletion samples/C4_Component Diagram Sample - bigbankplc.puml
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions samples/C4_Container Diagram Sample - bigbankplc.puml
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions samples/C4_Container Diagram Sample - message bus.puml
Expand Up @@ -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")
Expand Down
4 changes: 2 additions & 2 deletions samples/C4_Container Diagram Sample - techtribesjs.puml
Expand Up @@ -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")
Expand Down
6 changes: 3 additions & 3 deletions samples/C4_Context Diagram Sample - bigbankplc-landscape.puml
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion samples/C4_Context Diagram Sample - bigbankplc.puml
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions samples/C4_Context Diagram Sample - enterprise.puml
Expand Up @@ -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.")

Expand Down