doc2dot
v1.2.0
Published
Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc
Downloads
83
Maintainers
Readme
doc2dot
Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc
yarn global add dot2doc
# or
npm -g i dot2doc
dot2doc './test/**/*.js'
dot2doc './test/**/*.js' > file.dot
Usage
Raw DOT entry
@dot nodeA -> nodeB
DOT node type
@dot-type MyNode [color=red]
@dot {MyNode} nodeA
will result with
nodeA [color=red]
All of type rule
@dot-type MyNode [color=red]
@dot {MyNode} nodeA
@dot-rule MyNode -> foo
will result with
nodeA [color=red]
nodeA -> foo
Define cluster
@dot-subgraph Name style=whatever;color=other
@dot-rule foo in A
@dot-rule {Any} in A
@dot {Any} B
will result in
subgraph clusterName { style=whatever;color=other A B }
Example
/**
* @name abc
* @param a
* @param b
* @dot tester -> noop
* @dot {ClassA} tester
* @dot-type ClassA [color=blue]
*/
function tester(a, b) {
}
/**
* @dot {RelationB} noop -> tester
* @dot-type RelationB [shape=arrow]
*/
// @dot noop -> boop
/**
* @dot-rule ClassA <- foop
* @dot-rule ClassA -> boop
* @dot-rule ClassA eachIn A
* @dot-rule foop in A
* @dot-subgraph A style=filled;color=gray;
*/
digraph G {
graph [rankdir=LR, fontsize=10, margin=0.001];
subgraph clusterA { style=filled;color=gray; foop tester }
tester -> noop
tester [color=blue]
tester -> boop
foop -> tester
noop -> tester [shape=arrow]
noop -> boop
{ rank="max"; e; }
}
Licence
MIT