2021-08-25 11:33:29 +00:00
+++
2022-06-05 17:31:59 +00:00
description = "Generate diagrams and flowcharts from text"
2024-10-06 11:05:19 +00:00
frontmatter = ["customMermaidURL", "mermaid.force", "mermaidInitialize", "mermaidZoom"]
options = ["customMermaidURL", "mermaid.force", "mermaidInitialize", "mermaidZoom"]
2021-08-25 11:33:29 +00:00
title = "Mermaid"
+++
2017-08-20 15:10:29 +00:00
2024-10-06 13:10:39 +00:00
The `mermaid` shortcode generates diagrams and flowcharts from text in a similar manner as Markdown using the [Mermaid ](https://mermaidjs.github.io/ ) library.
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
````mermaid {align="center" zoom="true"}
2022-06-05 17:31:59 +00:00
graph LR;
2024-10-04 23:49:00 +00:00
If --> Then
Then --> Else
````
2017-08-20 15:10:29 +00:00
2021-07-26 08:10:10 +00:00
## Usage
2017-08-20 15:10:29 +00:00
2023-07-27 15:02:13 +00:00
{{< tabs groupid = "shortcode-parameter" > }}
2024-10-04 23:49:00 +00:00
{{% tab title="codefence" %}}
2017-08-20 15:10:29 +00:00
2022-07-02 12:01:24 +00:00
````md
2024-10-04 23:49:00 +00:00
```mermaid {align="center" zoom="true"}
2022-06-05 17:31:59 +00:00
graph LR;
2024-10-04 23:49:00 +00:00
If --> Then
Then --> Else
2021-07-26 08:10:10 +00:00
```
````
2017-08-20 15:10:29 +00:00
2022-06-05 17:31:59 +00:00
{{% /tab %}}
2023-06-05 21:20:37 +00:00
{{% tab title="shortcode" %}}
2022-06-05 17:31:59 +00:00
2023-07-28 19:16:37 +00:00
````go
2023-02-05 10:13:03 +00:00
{{< /* mermaid align="center" zoom="true" */>}}
2022-06-05 17:31:59 +00:00
graph LR;
2024-10-04 23:49:00 +00:00
If --> Then
Then --> Else
2022-06-05 17:31:59 +00:00
{{< /* /mermaid */>}}
2023-07-28 19:16:37 +00:00
````
2022-06-05 17:31:59 +00:00
2022-06-22 22:03:24 +00:00
{{% /tab %}}
2023-06-05 21:20:37 +00:00
{{% tab title="partial" %}}
2022-06-22 22:03:24 +00:00
2023-07-28 19:16:37 +00:00
````go
2022-06-22 22:03:24 +00:00
{{ partial "shortcodes/mermaid.html" (dict
2023-07-27 14:14:55 +00:00
"page" .
2024-10-04 23:49:00 +00:00
"content" "graph LR;\n If --> Then\n Then --> Else"
2022-10-31 10:29:05 +00:00
"align" "center"
2023-02-05 10:13:03 +00:00
"zoom" "true"
2022-06-22 22:03:24 +00:00
)}}
2023-07-28 19:16:37 +00:00
````
2022-06-22 22:03:24 +00:00
2022-06-05 17:31:59 +00:00
{{% /tab %}}
{{< / tabs > }}
2024-10-06 13:10:39 +00:00
Codefence syntax is widely available in other Markdown parsers like GitHub and therefore is the recommend syntax for generating portable Markdown.
2022-06-22 22:03:24 +00:00
2022-06-05 17:31:59 +00:00
### Parameter
2023-07-28 19:16:37 +00:00
| Name | Default | Notes |
|-----------------------|------------------|-------------|
2024-10-04 23:49:00 +00:00
| **align** | `center` | The vertical alignment.< br >< br > Allowed values are `left` , `center` or `right` . |
2024-10-06 18:52:53 +00:00
| **zoom** | see notes | Whether the graph is pan- and zoomable.< br >< br > If not set the value is determined by the [`mermaidZoom` setting ](#configuring-pan-and-zoom ) of your configurations options or the pages front matter or `false` if not set at all.< br >< br > - `false` : no pan or zoom< br > - `true` : pan and zoom active |
2023-07-28 19:16:37 +00:00
| _**<content>**_ | _<empty>_ | Your Mermaid graph. |
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
## Settings
### Configuring Pan and Zoom
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} The generated graphs can be panned by dragging them and zoomed by using the mousewheel. On mobile devices you can use finger gestures.
By default this is disabled. Set `mermaidZoom=true` to enable it.
Individual settings of a graphs [`zoom` parameter ](#parameter ) have precedence over the page's front matter and configuration options in that order.
### Providing Initialization Options for the Mermaid Library
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} The Mermaid library is configured with default settings for initialization.
You can overwrite the settings by providing a JSON object in `mermaidInitialize` . See [Mermaid's documentation ](https://mermaid-js.github.io/mermaid/#/Setup?id=mermaidapi-configuration-defaults ) for all allowed settings.
Keep in mind that initialization settings of your pages front matter overwrite all settings of your configuration options.
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
In addition, you can merge settings for each individual graph through [diagram directives ](https://mermaid-js.github.io/mermaid/#/directives?id=directives ) on top of the settings of your page's front matter or configuration options.
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
### Loading an External Version of the Mermaid Library
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} The theme uses the shipped Mermaid library by default.
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
In case you want do use a different version of the Mermaid library but don't want to override the shipped version, you can set `customMermaidURL` to the URL of the external Mermaid library.
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
#### Example
2022-06-05 17:31:59 +00:00
2024-03-02 10:04:52 +00:00
{{< multiconfig file = hugo > }}
2022-06-05 17:31:59 +00:00
[params]
2024-10-04 23:49:00 +00:00
customMermaidURL = "https://unpkg.com/mermaid/dist/mermaid.min.js"
2024-03-02 10:04:52 +00:00
{{< / multiconfig > }}
2022-06-05 17:31:59 +00:00
2024-10-04 23:49:00 +00:00
### Force Loading of the Mermaid Library
2022-06-05 17:31:59 +00:00
2024-10-06 11:05:19 +00:00
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} The Mermaid library will be loaded if the page contains an `mermaid` shortcode or codefence.
2024-10-04 23:49:00 +00:00
2024-10-06 11:05:19 +00:00
You can force loading the Mermaid library if no shortcode or codefence was used by setting `mermaid.force=true` . If a shortcode or codefence was found, this option has no effect. This comes handy in case you are using scripting to render a graph.
2024-10-04 23:49:00 +00:00
### Setting a Specific Mermaid Theme
2024-10-07 06:31:28 +00:00
While you can configure the Mermaid theme to render your graph by using one of the [initialization options ](#providing-initialization-options-for-the-mermaid-library ), the recommended way is to set the default value using the `--MERMAID-theme` variable in your [color variant stylesheet ](configuration/appearance/generator ). This allows your graphs to look pretty when the user switches the color variant.
2021-07-26 08:10:10 +00:00
## Examples
2023-06-09 19:45:57 +00:00
### Flowchart with YAML-Title
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-06-09 19:45:57 +00:00
---
title: Example Diagram
---
2017-08-20 15:10:29 +00:00
graph LR;
2024-10-04 23:49:00 +00:00
A[Hard edge] -->|Link text| B(Round edge)
B --> C{< strong > Decision< / strong > }
C -->|One| D[Result one]
C -->|Two| E[Result two]
```
2023-07-28 19:16:37 +00:00
````
2017-08-20 15:10:29 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2023-07-28 19:16:37 +00:00
---
title: Example Diagram
---
2020-09-13 10:11:31 +00:00
graph LR;
2024-10-04 23:49:00 +00:00
A[Hard edge] -->|Link text| B(Round edge)
B --> C{< strong > Decision< / strong > }
C -->|One| D[Result one]
C -->|Two| E[Result two]
````
2020-09-13 10:11:31 +00:00
2022-11-18 23:01:37 +00:00
### Sequence Diagram with Configuration Directive
2024-10-04 23:49:00 +00:00
````md
```mermaid
2022-11-18 23:01:37 +00:00
%%{init:{"fontFamily":"monospace", "sequence":{"showSequenceNumbers":true}}}%%
sequenceDiagram
2024-10-04 23:49:00 +00:00
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
```
2023-07-28 19:16:37 +00:00
````
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2022-11-18 23:01:37 +00:00
%%{init:{"fontFamily":"monospace", "sequence":{"showSequenceNumbers":true}}}%%
sequenceDiagram
2024-10-04 23:49:00 +00:00
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
````
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
### Class Diagram
2022-11-17 22:35:28 +00:00
2024-10-04 23:49:00 +00:00
````md
2022-11-17 22:35:28 +00:00
```mermaid
classDiagram
2024-10-04 23:49:00 +00:00
Animal < |-- Duck
Animal < |-- Fish
Animal < |-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
2022-11-17 22:35:28 +00:00
```
````
2023-07-28 19:16:37 +00:00
````mermaid
2022-11-17 22:35:28 +00:00
classDiagram
2024-10-04 23:49:00 +00:00
Animal < |-- Duck
Animal < |-- Fish
Animal < |-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
2023-07-28 19:16:37 +00:00
````
2022-11-17 22:35:28 +00:00
2024-10-04 23:49:00 +00:00
### State Diagram Aligned to the Right Using Shortcode Syntax
2022-11-17 22:35:28 +00:00
2023-07-28 19:16:37 +00:00
````go
2022-11-17 22:35:28 +00:00
{{< /* mermaid align="right" */>}}
stateDiagram-v2
2024-10-04 23:49:00 +00:00
open: Open Door
closed: Closed Door
locked: Locked Door
open --> closed: Close
closed --> locked: Lock
locked --> closed: Unlock
closed --> open: Open
2022-11-17 22:35:28 +00:00
{{< /* /mermaid */>}}
2023-07-28 19:16:37 +00:00
````
2022-11-17 22:35:28 +00:00
{{< mermaid align = "right" > }}
stateDiagram-v2
2023-07-28 19:16:37 +00:00
open: Open Door
closed: Closed Door
locked: Locked Door
open --> closed: Close
closed --> locked: Lock
locked --> closed: Unlock
closed --> open: Open
2022-11-17 22:35:28 +00:00
{{< / mermaid > }}
2023-06-09 19:45:57 +00:00
### Entity Relationship Model with Non-Default Mermaid Theme
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-06-09 19:45:57 +00:00
%%{init:{"theme":"forest"}}%%
2022-11-18 23:01:37 +00:00
erDiagram
2024-10-04 23:49:00 +00:00
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
```
2023-07-28 19:16:37 +00:00
````
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2023-06-09 19:45:57 +00:00
%%{init:{"theme":"forest"}}%%
2022-11-18 23:01:37 +00:00
erDiagram
2024-10-04 23:49:00 +00:00
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
````
2022-11-18 23:01:37 +00:00
### User Journey
2024-10-04 23:49:00 +00:00
````md
```mermaid
2022-11-18 23:01:37 +00:00
journey
2024-10-04 23:49:00 +00:00
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 3: Me
```
2023-07-28 19:16:37 +00:00
````
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2022-11-18 23:01:37 +00:00
journey
2024-10-04 23:49:00 +00:00
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 3: Me
````
2021-07-26 08:10:10 +00:00
2022-11-17 22:35:28 +00:00
### GANTT Chart
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2021-07-26 08:10:10 +00:00
gantt
2024-10-04 23:49:00 +00:00
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to Mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to Mermaid :1d
```
2023-07-28 19:16:37 +00:00
````
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2017-08-20 15:10:29 +00:00
gantt
2024-10-04 23:49:00 +00:00
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to Mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to Mermaid :1d
````
2021-07-26 08:10:10 +00:00
2023-02-05 10:13:03 +00:00
### Pie Chart without Zoom
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid {zoom="false"}
2022-11-18 23:01:37 +00:00
pie title Pets adopted by volunteers
2024-10-04 23:49:00 +00:00
"Dogs" : 386
"Cats" : 85
"Rats" : 15
```
2023-07-28 19:16:37 +00:00
````
2019-02-18 11:47:01 +00:00
2024-10-04 23:49:00 +00:00
````mermaid {zoom="false"}
2022-11-18 23:01:37 +00:00
pie title Pets adopted by volunteers
2024-10-04 23:49:00 +00:00
"Dogs" : 386
"Cats" : 85
"Rats" : 15
````
2017-08-20 15:10:29 +00:00
2023-08-11 17:56:41 +00:00
### Quadrant Chart
2024-10-04 23:49:00 +00:00
````md
```mermaid
quadrantChart
title Reach and engagement of campaigns
x-axis Low Reach --> High Reach
y-axis Low Engagement --> High Engagement
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]
```
2023-08-11 17:56:41 +00:00
````
2024-10-04 23:49:00 +00:00
````mermaid
2023-08-11 17:56:41 +00:00
quadrantChart
2024-10-04 23:49:00 +00:00
title Reach and engagement of campaigns
x-axis Low Reach --> High Reach
y-axis Low Engagement --> High Engagement
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]
````
2023-08-11 17:56:41 +00:00
2022-11-18 23:01:37 +00:00
### Requirement Diagram
2021-07-26 08:10:10 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
requirementDiagram
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
requirement test_req {
2022-11-18 23:01:37 +00:00
id: 1
text: the test text.
risk: high
verifymethod: test
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
element test_entity {
2022-11-18 23:01:37 +00:00
type: simulation
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
test_entity - satisfies -> test_req
```
2023-07-28 19:16:37 +00:00
````
2021-10-07 21:01:04 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
requirementDiagram
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
requirement test_req {
2022-11-18 23:01:37 +00:00
id: 1
text: the test text.
risk: high
verifymethod: test
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
element test_entity {
2022-11-18 23:01:37 +00:00
type: simulation
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
test_entity - satisfies -> test_req
````
2022-11-17 22:35:28 +00:00
### Git Graph
2024-10-04 23:49:00 +00:00
````md
```mermaid
2022-11-17 22:35:28 +00:00
gitGraph
2024-10-04 23:49:00 +00:00
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```
2023-07-28 19:16:37 +00:00
````
2022-11-17 22:35:28 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2022-11-17 22:35:28 +00:00
gitGraph
2024-10-04 23:49:00 +00:00
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
````
2022-11-17 22:35:28 +00:00
2022-11-18 23:01:37 +00:00
### C4 Diagrams
2022-11-17 22:35:28 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2022-11-18 23:01:37 +00:00
C4Context
2024-10-04 23:49:00 +00:00
title System Context diagram for Internet Banking System
Enterprise_Boundary(b0, "BankBoundary0") {
2022-11-18 23:01:37 +00:00
Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
Person(customerB, "Banking Customer B")
Person_Ext(customerC, "Banking Customer C", "desc")
Person(customerD, "Banking Customer D", "A customer of the bank, < br / > with personal bank accounts.")
System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
Enterprise_Boundary(b1, "BankBoundary") {
2024-10-04 23:49:00 +00:00
SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
System_Boundary(b2, "BankBoundary2") {
2022-11-18 23:01:37 +00:00
System(SystemA, "Banking System A")
System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.")
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
Boundary(b3, "BankBoundary3", "boundary") {
2022-11-18 23:01:37 +00:00
SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.")
SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.")
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
}
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
BiRel(customerA, SystemAA, "Uses")
BiRel(SystemAA, SystemE, "Uses")
Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
Rel(SystemC, customerA, "Sends e-mails to")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
```
2023-07-28 19:16:37 +00:00
````
2022-11-17 22:35:28 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2022-11-18 23:01:37 +00:00
C4Context
2024-10-04 23:49:00 +00:00
title System Context diagram for Internet Banking System
Enterprise_Boundary(b0, "BankBoundary0") {
2023-07-28 19:16:37 +00:00
Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
Person(customerB, "Banking Customer B")
Person_Ext(customerC, "Banking Customer C", "desc")
2022-11-18 23:01:37 +00:00
Person(customerD, "Banking Customer D", "A customer of the bank, < br / > with personal bank accounts.")
System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
Enterprise_Boundary(b1, "BankBoundary") {
2024-10-04 23:49:00 +00:00
SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
System_Boundary(b2, "BankBoundary2") {
2022-11-18 23:01:37 +00:00
System(SystemA, "Banking System A")
System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.")
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
Boundary(b3, "BankBoundary3", "boundary") {
2022-11-18 23:01:37 +00:00
SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.")
SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.")
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
}
2024-10-04 23:49:00 +00:00
}
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
BiRel(customerA, SystemAA, "Uses")
BiRel(SystemAA, SystemE, "Uses")
Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
Rel(SystemC, customerA, "Sends e-mails to")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")
2022-11-18 23:01:37 +00:00
2024-10-04 23:49:00 +00:00
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
````
2023-05-23 13:17:23 +00:00
### Mindmaps
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-05-23 13:17:23 +00:00
mindmap
root((mindmap))
Origins
Long history
::icon(fa fa-book)
Popularisation
British popular psychology author Tony Buzan
Research
On effectiveness< br / > and features
On Automatic creation
Uses
Creative techniques
Strategic planning
Argument mapping
Tools
Pen and paper
Mermaid
2024-10-04 23:49:00 +00:00
```
2023-07-28 19:16:37 +00:00
````
2023-05-23 13:17:23 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2023-05-23 13:17:23 +00:00
mindmap
2023-07-28 19:16:37 +00:00
root((mindmap))
Origins
Long history
::icon(fa fa-book)
Popularisation
British popular psychology author Tony Buzan
Research
On effectiveness< br / > and features
On Automatic creation
Uses
Creative techniques
Strategic planning
Argument mapping
Tools
Pen and paper
Mermaid
2024-10-04 23:49:00 +00:00
````
2023-05-23 13:17:23 +00:00
### Timeline
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-05-23 13:17:23 +00:00
timeline
2024-10-04 23:49:00 +00:00
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook
: Google
2005 : Youtube
2006 : Twitter
```
2023-07-28 19:16:37 +00:00
````
2023-05-23 13:17:23 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2023-05-23 13:17:23 +00:00
timeline
2024-10-04 23:49:00 +00:00
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook
: Google
2005 : Youtube
2006 : Twitter
````
2023-07-28 18:01:40 +00:00
### Sankey
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-07-28 18:01:40 +00:00
sankey-beta
2024-10-04 23:49:00 +00:00
%% source,target,value
Electricity grid,Over generation / exports,104.453
Electricity grid,Heating and cooling - homes,113.726
Electricity grid,H2 conversion,27.14
```
2023-07-28 19:16:37 +00:00
````
2023-07-28 18:01:40 +00:00
2024-10-04 23:49:00 +00:00
````mermaid
2023-07-28 18:01:40 +00:00
sankey-beta
2024-10-04 23:49:00 +00:00
%% source,target,value
Electricity grid,Over generation / exports,104.453
Electricity grid,Heating and cooling - homes,113.726
Electricity grid,H2 conversion,27.14
````
2023-10-29 17:50:50 +00:00
2024-03-11 21:30:34 +00:00
### XYChart
2023-10-29 17:50:50 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2023-10-29 17:50:50 +00:00
xychart-beta
2024-10-04 23:49:00 +00:00
title "Sales Revenue"
x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
```
2023-10-29 17:50:50 +00:00
````
2024-10-04 23:49:00 +00:00
````mermaid
2023-10-29 17:50:50 +00:00
xychart-beta
2024-10-04 23:49:00 +00:00
title "Sales Revenue"
x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
````
2024-03-11 20:56:35 +00:00
2024-03-11 21:30:34 +00:00
### Block Diagram
2024-03-11 20:56:35 +00:00
2024-10-04 23:49:00 +00:00
````md
```mermaid
2024-03-11 20:56:35 +00:00
block-beta
2024-10-04 23:49:00 +00:00
columns 1
db(("DB"))
blockArrowId6< [" "]>(down)
block:ID
A
B["A wide one in the middle"]
C
end
space
D
ID --> D
C --> D
style B fill:#969,stroke:#333,stroke-width:4px
```
2024-03-11 20:56:35 +00:00
````
2024-10-04 23:49:00 +00:00
````mermaid
2024-03-11 20:56:35 +00:00
block-beta
2024-10-04 23:49:00 +00:00
columns 1
db(("DB"))
blockArrowId6< [" "]>(down)
block:ID
A
B["A wide one in the middle"]
C
end
space
D
ID --> D
C --> D
style B fill:#969,stroke:#333,stroke-width:4px
````
2024-09-02 15:48:55 +00:00
### Packet
2024-10-04 23:49:00 +00:00
````md
```mermaid
2024-09-02 15:48:55 +00:00
---
title: "TCP Packet"
---
packet-beta
2024-10-04 23:49:00 +00:00
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-255: "Data (variable length)"
```
2024-09-02 15:48:55 +00:00
````
2024-10-04 23:49:00 +00:00
````mermaid
2024-09-02 15:48:55 +00:00
---
title: "TCP Packet"
---
packet-beta
2024-10-04 23:49:00 +00:00
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-255: "Data (variable length)"
````
2024-09-02 15:48:55 +00:00
### Architecture
2024-10-04 23:49:00 +00:00
````md
```mermaid
2024-09-02 15:48:55 +00:00
architecture-beta
2024-10-04 23:49:00 +00:00
group api(cloud)[API]
2024-09-02 15:48:55 +00:00
2024-10-04 23:49:00 +00:00
service db(database)[Database] in api
service disk1(disk)[Storage] in api
service disk2(disk)[Storage] in api
service server(server)[Server] in api
2024-09-02 15:48:55 +00:00
2024-10-04 23:49:00 +00:00
db:L -- R:server
disk1:T -- B:server
disk2:T -- B:db
```
2024-09-02 15:48:55 +00:00
````
2024-10-04 23:49:00 +00:00
````mermaid
2024-09-02 15:48:55 +00:00
architecture-beta
2024-10-04 23:49:00 +00:00
group api(cloud)[API]
2024-09-02 15:48:55 +00:00
2024-10-04 23:49:00 +00:00
service db(database)[Database] in api
service disk1(disk)[Storage] in api
service disk2(disk)[Storage] in api
service server(server)[Server] in api
2024-09-02 15:48:55 +00:00
2024-10-04 23:49:00 +00:00
db:L -- R:server
disk1:T -- B:server
disk2:T -- B:db
````