2019-11-01 13:38:00 -04:00
<!-- <Remove this in the future> -->
| :mega: :mega: :mega: |
| :----: |
| * If you're upgrading from a version __ < v8.2.0__ , there are [non-backward-compatible changes ](http://mermaid-js.github.io/mermaid/#/usage?id=to-enable-click-event-and-tags-in-nodes ) related to security issues . Default behaviour of the library might have changed for your implementation .|
<!-- </Remove this in the future> -->
2019-10-18 09:55:46 -04:00
2019-11-03 16:18:43 +01:00
# mermaid [![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid)
2019-11-01 13:38:00 -04:00
<!-- <Main description> -->
__Generate diagrams, charts, graphs or flows from markdown-like text via javascript.__
See our [documentation ](http://mermaid-js.github.io/mermaid/ ) and start simplifying yours. Play in our [live editor ](https://mermaidjs.github.io/mermaid-live-editor/ ) or jump straight to the [installation and usage ](http://mermaid-js.github.io/mermaid/#/usage ).
<!-- </Main description> -->
:trophy: _"The most exciting use of technology"_ - [JS Open Source Awards (2019) ](https://osawards.com/javascript/#nominees )
< table >
<!-- <Flowchart> -->
< tr > < td colspan = 2 align = "center" >
< b > Flow< / b > < / br >
[< a href = "http://mermaid-js.github.io/mermaid/ #/flowchart " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0 -IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ" > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-flow.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </Flowchart> -->
<!-- <Sequence> -->
< tr > < td colspan = 2 align = "center" >
< b > Sequence< / b > < br / >
[< a href = "http://mermaid-js.github.io/mermaid/ #/sequenceDiagram " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0 -PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0" > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
2016-07-27 19:31:21 +08:00
sequenceDiagram
2019-11-01 13:38:00 -04:00
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-sequence.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </Sequence> -->
<!-- <Gantt> -->
< tr > < td colspan = 2 align = "center" >
< b > Gantt< / b > < br / >
[< a href = "http://mermaid-js.github.io/mermaid/ #/gantt " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0 " > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
2017-09-01 16:01:03 +08:00
gantt
2019-11-01 13:38:00 -04:00
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-gantt.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </Gantt> -->
<!-- <Class> -->
< tr > < td colspan = 2 align = "center" >
< b > Class< / b > < br / >
[< a href = "http://mermaid-js.github.io/mermaid/ #/classDiagram " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4 -IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ" > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
2016-07-27 19:31:21 +08:00
classDiagram
2019-11-01 13:38:00 -04:00
Class01 < |-- AveryLongClass : Cool
< < interface>> Class01
2017-09-16 10:27:17 +08:00
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
2019-10-04 23:49:58 +02:00
class Class10 {
2019-11-01 13:38:00 -04:00
< < service>>
2019-10-04 23:49:58 +02:00
int id
size()
}
2019-11-01 13:38:00 -04:00
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-class.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </Class> -->
<!-- <State> -->
< tr > < td colspan = 2 align = "center" >
< b > State< / b > < br / >
[< a href = "http://mermaid-js.github.io/mermaid/ #/stateDiagram " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0 " > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
stateDiagram
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-state.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </State> -->
<!-- <Pie> -->
< tr > < td colspan = 2 align = "center" >
< b > Pie< / b > < br / >
[< a href = "http://mermaid-js.github.io/mermaid/ #/pie " > docs</ a > - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0 " > live editor</ a > ]
< / td > < / tr >
< tr >
< td > < pre >
pie
"Dogs" : 386
"Cats" : 85
"Rats" : 15
< / pre > < / td >
< td align = "center" >
2019-11-27 14:12:34 -05:00
< img src = "https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-pie.png" / >
2019-11-01 13:38:00 -04:00
< / td >
< / tr >
<!-- </Pie> -->
<!-- <Git> -->
< tr > < td colspan = 2 align = "center" >
< b > Git< / b > < br / >
[experimental - < a href = "https://mermaidjs.github.io/mermaid-live-editor/ #/edit/eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ " > live editor</ a > ]
< / td > < / tr >
< tr >
< td colspan = "2" align = "center" > < i > Coming soon!< / i > < / td >
< / tr >
<!-- </Git> -->
< / table >
## Related projects
- [Command Line Interface ](https://github.com/mermaid-js/mermaid.cli )
- [Live Editor ](https://github.com/mermaid-js/mermaid-live-editor )
# Contributors [![Help wanted](https://img.shields.io/github/labels/mermaid-js/mermaid/Help%20wanted!)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue ](https://github.com/mermaid-js/mermaid/issues/866 ) if you want to know where to start helping out.
Detailed information about how to contribute can be found in the [contribution guide ](CONTRIBUTING.md )
# Appreciation
A quick note from Knut Sveidqvist:
>*Many thanks to the [d3 ](http://d3js.org/ ) and [dagre-d3 ](https://github.com/cpettitt/dagre-d3 ) projects for providing the graphical layout and drawing libraries!*
>*Thanks also to the [js-sequence-diagram ](http://bramp.github.io/js-sequence-diagrams ) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering.*
>*Thank you to [Tyler Long ](https://github.com/tylerlong ) who has been a collaborator since April 2017.*
>
>*Thank you to the ever-growing list of [contributors ](https://github.com/knsv/mermaid/graphs/contributors ) that brought the project this far!*
---
2014-12-12 19:05:27 +01:00
*Mermaid was created by Knut Sveidqvist for easier documentation.*