/doc2dot

Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc

Primary LanguageJavaScriptMIT LicenseMIT

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