6.9 KB257 lines
Blame
1<!doctype html>
2<html lang="en">
3 <head>
4 <meta charset="utf-8" />
5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
6 <title>Architecture Mermaid Quick Test Page</title>
7 <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
8 <style>
9 div.mermaid {
10 /* font-family: 'trebuchet ms', verdana, arial; */
11 font-family: 'Courier New', Courier, monospace !important;
12 }
13 </style>
14 </head>
15
16 <body>
17 <h1>Architecture diagram demo</h1>
18 <h2>Simple diagram with groups</h2>
19 <pre class="mermaid">
20 architecture-beta
21 group api(cloud)[API]
22
23 service db(database)[Database] in api
24 service disk1(disk)[Storage] in api
25 service disk2(disk)[Storage] in api
26 service server(server)[Server] in api
27 service gateway(internet)[Gateway]
28
29 db:L -- R:server
30 disk1:T -- B:server
31 disk2:T -- B:db
32 server:T -- B:gateway
33 </pre>
34 <hr />
35
36 <h2>Groups within groups</h2>
37 <pre class="mermaid">
38 architecture-beta
39 group api[API]
40 group public[Public API] in api
41 group private[Private API] in api
42
43
44 service serv1(server)[Server] in public
45
46
47 service serv2(server)[Server] in private
48 service db(database)[Database] in private
49
50 service gateway(internet)[Gateway] in api
51
52 serv1:B -- T:serv2
53
54 serv2:L -- R:db
55
56 serv1:L -- R:gateway
57 </pre>
58 <hr />
59
60 <h2>Default icon (?) from unknown icon name</h2>
61 <pre class="mermaid">
62 architecture-beta
63 service unknown(iconnamedoesntexist)[Unknown Icon]
64 </pre>
65 <hr />
66
67 <h2>Split Direction</h2>
68 <pre class="mermaid">
69 architecture-beta
70 service db(database)[Database]
71 service s3(disk)[Storage]
72 service serv1(server)[Server 1]
73 service serv2(server)[Server 2]
74 service disk(disk)[Disk]
75
76 db:L -- R:s3
77 serv1:L -- T:s3
78 serv2:L -- B:s3
79 serv1:T -- B:disk
80 </pre>
81 <hr />
82
83 <h2>Arrow Tests</h2>
84 <pre class="mermaid">
85 architecture-beta
86 service servC(server)[Server 1]
87 service servL(server)[Server 2]
88 service servR(server)[Server 3]
89 service servT(server)[Server 4]
90 service servB(server)[Server 5]
91
92 servC:L <--> R:servL
93 servC:R <--> L:servR
94 servC:T <--> B:servT
95 servC:B <--> T:servB
96
97 servL:T <--> L:servT
98 servL:B <--> L:servB
99 servR:T <--> R:servT
100 servR:B <--> R:servB
101 </pre>
102 <pre class="mermaid">
103 architecture-beta
104 service servC(server)[Server 1]
105 service servL(server)[Server 2]
106 service servR(server)[Server 3]
107 service servT(server)[Server 4]
108 service servB(server)[Server 5]
109
110 servC:L <--> R:servL
111 servC:R <--> L:servR
112 servC:T <--> B:servT
113 servC:B <--> T:servB
114
115 servT:L <--> T:servL
116 servB:L <--> B:servL
117 servT:R <--> T:servR
118 servB:R <--> B:servR
119 </pre>
120 <hr />
121
122 <h2>Group Edges</h2>
123 <pre class="mermaid">
124 architecture-beta
125 group left_group(cloud)[Left]
126 group right_group(cloud)[Right]
127 group top_group(cloud)[Top]
128 group bottom_group(cloud)[Bottom]
129 group center_group(cloud)[Center]
130
131 service left_disk(disk)[Disk] in left_group
132 service right_disk(disk)[Disk] in right_group
133 service top_disk(disk)[Disk] in top_group
134 service bottom_disk(disk)[Disk] in bottom_group
135 service center_disk(disk)[Disk] in center_group
136
137 left_disk{group}:R <--> L:center_disk{group}
138 right_disk{group}:L <--> R:center_disk{group}
139 top_disk{group}:B <--> T:center_disk{group}
140 bottom_disk{group}:T <--> B:center_disk{group}
141 </pre
142 >
143 <hr />
144
145 <h2>Edge Label Test</h2>
146 <pre class="mermaid">
147 architecture-beta
148 service servC(server)[Server 1]
149 service servL(server)[Server 2]
150 service servR(server)[Server 3]
151 service servT(server)[Server 4]
152 service servB(server)[Server 5]
153
154 servC:L -[Label]- R:servL
155 servC:R -[Label]- L:servR
156 servC:T -[Label]- B:servT
157 servC:B -[Label]- T:servB
158
159 servL:T -[Label]- L:servT
160 servL:B -[Label]- L:servB
161 servR:T -[Label]- R:servT
162 servR:B -[Label]- R:servB
163 </pre>
164 <pre class="mermaid">
165 architecture-beta
166 service servC(server)[Server 1]
167 service servL(server)[Server 2]
168 service servR(server)[Server 3]
169 service servT(server)[Server 4]
170 service servB(server)[Server 5]
171
172 servC:L -[Label that is Long]- R:servL
173 servC:R -[Label that is Long]- L:servR
174 servC:T -[Label that is Long]- B:servT
175 servC:B -[Label that is Long]- T:servB
176
177 servL:T -[Label that is Long]- L:servT
178 servL:B -[Label that is Long]- L:servB
179 servR:T -[Label that is Long]- R:servT
180 servR:B -[Label that is Long]- R:servB
181 </pre>
182
183 <hr />
184 <h2>Junction Demo</h2>
185 <pre class="mermaid">
186 architecture-beta
187 service left_disk(disk)[Disk]
188 service top_disk(disk)[Disk]
189 service bottom_disk(disk)[Disk]
190 service top_gateway(internet)[Gateway]
191 service bottom_gateway(internet)[Gateway]
192 junction juncC
193 junction juncR
194
195 left_disk:R -- L:juncC
196 top_disk:B -- T:juncC
197 bottom_disk:T -- B:juncC
198 juncC:R -- L:juncR
199 top_gateway:B -- T:juncR
200 bottom_gateway:T -- B:juncR
201 </pre>
202 <hr />
203
204 <h2>Junction Demo Groups</h2>
205 <pre class="mermaid">
206 architecture-beta
207 group left
208 group right
209 service left_disk(disk)[Disk] in left
210 service top_disk(disk)[Disk] in left
211 service bottom_disk(disk)[Disk] in left
212 service top_gateway(internet)[Gateway] in right
213 service bottom_gateway(internet)[Gateway] in right
214 junction juncC in left
215 junction juncR in right
216
217 left_disk:R -- L:juncC
218 top_disk:B -- T:juncC
219 bottom_disk:T -- B:juncC
220
221
222 top_gateway:B <-- T:juncR
223 bottom_gateway:T <-- B:juncR
224
225 juncC{group}:R --> L:juncR{group}
226 </pre>
227 <hr />
228
229 <h2>External Icons Demo</h2>
230 <pre class="mermaid">
231 architecture-beta
232 service s3(logos:aws-s3)[Cloud Store]
233 service ec2(logos:aws-ec2)[Server]
234 service api(logos:aws-api-gateway)[Api Gateway]
235 service fa(fa:image)[Font Awesome Icon]
236 </pre>
237
238 <script type="module">
239 import mermaid from './mermaid.esm.mjs';
240 mermaid.registerIconPacks([
241 {
242 name: 'logos',
243 loader: () =>
244 fetch('https://unpkg.com/@iconify-json/logos/icons.json').then((res) => res.json()),
245 },
246 {
247 name: 'fa',
248 loader: () =>
249 fetch('https://unpkg.com/@iconify-json/fa6-regular/icons.json').then((res) =>
250 res.json()
251 ),
252 },
253 ]);
254 </script>
255 </body>
256</html>
257