https://github.com/sielay/doc2dot
Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc
https://github.com/sielay/doc2dot
cli graphviz graphviz-dot javadoc jsdoc nodejs phpdoc typedoc
Last synced: 4 months ago
JSON representation
Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc
- Host: GitHub
- URL: https://github.com/sielay/doc2dot
- Owner: sielay
- License: mit
- Created: 2017-12-01T17:12:01.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-03T23:01:44.000Z (about 8 years ago)
- Last Synced: 2025-08-23T04:29:20.106Z (5 months ago)
- Topics: cli, graphviz, graphviz-dot, javadoc, jsdoc, nodejs, phpdoc, typedoc
- Language: JavaScript
- Size: 28.3 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# doc2dot
Generates dot (graphviz) document from code documentation comments like JSDoc, JavaDoc, PHPDoc
```bash
yarn global add dot2doc
# or
npm -g i dot2doc
```
```bash
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
```javascript
/**
* @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;
*/
```
```dot
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