Craftdot
Get pretty diagram for your architecture/services with an easy way.
Features
- nest group
- custom attributes with list or key/vaule
- include from file
- custom style
- support wildcards *
Install
$ npm install craftdot
Usage
Render crafdot file and open it on browser by default.
$ craftdot example/example.craftdot
rebuilding...
server listening on http://127.0.0.1:3200
Example
// this is a comment
Node
single node
node1
node with attributes
the attributes is compatible with Graphviz, so you can use any attribute exist in Graphviz.
node1[fillcolor: skyblue, style:filled]
node with details
list {
hosts:
- 172.16.1.4
- 172.16.1.5
}
key-vaule {
domain: "https://service.localdomain"
}
both {
hosts:
- 172.16.1.10
- 172.16.1.11
domain: "https://service.localdomain"
}
with-attributes [fillcolor: skyblue, style:filled]{
domain: "https://service.localdomain"
}
apply attributes to mutiple nodes with wildcrads *
node1
node2
other
node*[fillcolor: skyblue, style:filled]
group
one group must contain at least one node or one group.
group cluster1 {
node1
node2
}
nest groups
group cluster1 {
node1
node2
group sub-cluster1 {
node1
node2
}
}
edge
node1
node2
node1 -> node2
mutiple edge in one line
node1
node2
node3
node1 -> node2,node3
edge with attributes
same as node, the attributes is compatible with Graphviz, so you can use any attribute exist in Graphviz.
node1
node2
node1 -> node2 [label: "hi", color: "red"]
apply attributes to mutiple edges with wildcrads *
node1
node2
node3
db
node1,node2,node3 -> db
* -> db [color: red]
include
// node.craftdot
node1
node2
// edge.craftdot
node1 -> node2
// include.craftdot
include {"node.craftdot"}
include {"edge.craftdot"}