Generate Flowcharts, Network Sequence, Dot, and Railroad Diagrams
npm install diagramsAlso see Atom Diagrams Plugin that integrates this into the Atom IDE




``bash`
npm install -g diagrams
command that will automatically generate the .svg visualization of each diagram file format it supports. Run the following:Generates all of the .svg files, then starts watching the current directory and regenerates any diagram file that changes.
`
diagrams watch
`Generates all .svg files, but don't start watching after.
`
diagrams build
`To provide the target directory to watch just pass it as an argument right after the
watch command.
`
diagrams watch somedirectory --build
`$3
#### flowchart
Documentation: Flowchart.js .
To generate flowcharts, run:
diagrams flowchart input.flowchart flowchart.svg
input.flowchart
flowchart.svg
st=>start: Start
e=>end
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes
or No?:>http://www.google.com
io=>inputoutput: catch somethingst->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1

#### sequence
Documentation: Network Sequence Diagram Syntax .
To generate Network Sequence Diagrams, run:
diagrams sequence input.sequence sequence.svg
input.sequence
sequence.svg
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!

#### dot
Documentation on the dot file format:
- Read dotguide.pdf.
- See the online generator.
To generate diagrams from Graphviz's .dot file format, run:
diagrams dot input.dot dot.svg
input.dot
dot.svg
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf
init -> make_string;
main -> printf;
execute -> compare;
}

#### railroad
Documentation see railroad-diagrams's documentation':
- NOTE: There is no real documentation for the input file syntax (PRs welcome), but the examples
should help you figure it out a bit
- Examples
- Online Generator
To generate Railroad Diagrams, run:
diagrams railroad input.railroad railroad.svg
input.railroad
railroad.svg
Diagram(
Optional('+', 'skip'),
Choice(0,
NonTerminal('name-start char'),
NonTerminal('escape')),
ZeroOrMore(
Choice(0,
NonTerminal('name char'),
NonTerminal('escape'))))

Contributing
$3
`
git clone git@github.com:francoislaberge/diagrams.git
cd diagrams
`$3
`
npm test
`$3
Do the usual npm version bump then publish.
`
npm version
git push; git push --tags
npm publish
``All tests are run automatically on push via our travis-ci integration.
- flowchart.js for the flowchart diagrams
- js-sequence-diagrams for the sequence diagrams
- viz.js for getting Graphviz compiled to js
- railroad-diagrams for the railroad diagrams
- electron for headless browsing to wrap above libraries that don't work without a browser environment