mermaid/demos/architecture.html
2024-03-31 13:54:06 -05:00

164 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Architecture Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Architecture diagram demo</h1>
<h2>Simple diagram with groups</h2>
<pre class="mermaid">
architecture
group api[API]
service db(database)[Database] in api
service disk1(disk)[Storage] in api
service disk2(disk)[Storage] in api
service server(server)[Server] in api
service gateway(internet)[Gateway]
db L--R server
disk1 T--B server
disk2 T--B db
server T--B gateway
</pre>
<hr />
<h2>Groups within groups</h2>
<pre class="mermaid">
architecture
group api[API]
group public[Public API] in api
group private[Private API] in api
service serv1(server)[Server] in public
service serv2(server)[Server] in private
service db(database)[Database] in private
service gateway(internet)[Gateway] in api
serv1 B--T serv2
serv2 L--R db
serv1 L--R gateway
</pre>
<hr />
<h2>Default icon (?) from uknown icon name</h2>
<pre class="mermaid">
architecture
service unknown(iconnamedoesntexist)[Uknown Icon]
</pre>
<hr />
<pre class="mermaid">
architecture
group vpc[Private VPC]
group vpc2[Public VPC]
service s3(s3)[S3 Bucket]
service rds(database)[RDS DB]
service ddb(dynamodb)[DynamoDB]
service ec2(ec2)[EC2 Server] in vpc
service gateway(api_gateway)[API Gateway] in vpc
service docdb(documentdb)[DocumentDB]
service lambda(lambda)[Lambda] in vpc
service serv1(ec2)[Public Server] in vpc2
service serv2(ec2)[Private Server] in vpc2
serv1 L--R serv2
s3 L--R rds
s3 B--T ddb
s3 R--L docdb
gateway L--R ec2
gateway T--B rds
gateway B--T lambda
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
const ALLOWED_TAGS = [
'a',
'b',
'blockquote',
'br',
'dd',
'div',
'dl',
'dt',
'em',
'foreignObject',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'h7',
'h8',
'hr',
'i',
'li',
'ul',
'ol',
'p',
'pre',
'span',
'strike',
'strong',
'table',
'tbody',
'td',
'tfoot',
'th',
'thead',
'tr',
];
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'base',
startOnLoad: true,
logLevel: 0,
flowchart: {
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
architecture: {
iconSize: 80
},
useMaxWidth: false,
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>