-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This reverts commit 71cfec9.
- Loading branch information
Showing
1 changed file
with
166 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,26 @@ | ||
<!-- <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> --> | ||
|
||
# Mermaid | ||
# 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) | ||
|
||
[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) | ||
[![Coverage Status](https://coveralls.io/repos/github/knsv/mermaid/badge.svg?branch=master)](https://coveralls.io/github/knsv/mermaid?branch=master) | ||
[![Join the chat at https://gitter.im/knsv/mermaid](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/knsv/mermaid?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
<!-- <Main description> --> | ||
__mermaid is a Javascript based diagramming and charting tool. It generates diagrams flowcharts and more, using markdown-inspired text for ease and speed.__ | ||
|
||
![banner](./img/header.png) | ||
# What is mermaid? | ||
Check out the list of [Integrations and Usages of Mermaid](https://github.com/mermaid-js/mermaid/blob/develop/docs/integrations.md) | ||
|
||
It is a simple markdown-inspired, script language for diagramming and charting that can be deployed via Javascipt. | ||
For more information and help in getting started, please view our [documentation](http://mermaid-js.github.io/mermaid/) and start simplifying yours. Alternatively, you can also play with our [live editor](https://mermaidjs.github.io/mermaid-live-editor/). | ||
<!-- </Main description> --> | ||
|
||
The reasoning behind it's inception was a need for simplified documentation and frustration with heavy and time consuming tools for explaining code, like Visio. | ||
|
||
Thus mermaid was created to make the process of diagramming and charting, as simple and as close to markdown, as possible. | ||
|
||
Check out the list of [Integrations and Usages of Mermaid](./integrations.md) | ||
For the uninitiated, you can also try out our [live editor](https://mermaid-js.github.io/mermaid-live-editor/) and look at our [documentation](https://mermaid-js.github.io/mermaid/#/n00b-overview) for a deeper understanding of the tool itself, more importantly don't forget to have fun. | ||
|
||
**Mermaid was nominated and won the JS Open Source Awards (2019) in the category "The most exciting use of technology"!!! Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project.** | ||
:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!! Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project.** | ||
|
||
## New diagrams in 8.4 | ||
|
||
With version 8.4 class diagrams have got some new features, bug fixes and documentation. Another new feature in 8.4 is the new diagram type, state diagrams. | ||
|
||
![Image show the two new diagram types](./img/new-diagrams.png) | ||
![Image show the two new diagram types](.docs/img/new-diagrams.png) | ||
|
||
## Special note regarding version 8.2 | ||
|
||
|
@@ -44,64 +41,82 @@ mermaidAPI.initialize({ | |
}); | ||
``` | ||
|
||
**🖖 Keep a steady pulse: mermaid needs more Collaborators [#866](https://github.com/k3nsv/mermaid/issues/866)** | ||
|
||
## The following are examples of Diagrams that mermaid can make: | ||
|
||
### Flowchart | ||
|
||
``` | ||
graph TD; | ||
A-->B; | ||
A-->C; | ||
B-->D; | ||
C-->D; | ||
``` | ||
|
||
![Flowchart](./img/flow.png) | ||
|
||
### Sequence diagram | ||
|
||
``` | ||
For more information and help in getting started, please view our [documentation](http://mermaid-js.github.io/mermaid/) and start simplifying yours. Play with 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> --> | ||
|
||
__The following are some examples of the diagrams, charts and graphs that can be made using mermaid and the Markdown-inspired text specific to it. Click here jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).__ | ||
<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"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-flow.png" /> | ||
</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> | ||
sequenceDiagram | ||
participant Alice | ||
participant Bob | ||
Alice->>John: Hello John, how are you? | ||
loop Healthcheck | ||
John->>John: Fight against hypochondria | ||
end | ||
Note right of John: Rational thoughts <br/>prevail! | ||
John-->>Alice: Great! | ||
John->>Bob: How about you? | ||
Bob-->>John: Jolly good! | ||
``` | ||
|
||
![Sequence diagram](./img/sequence.png) | ||
|
||
### Gantt diagram | ||
|
||
``` | ||
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"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-sequence.png" /> | ||
</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> | ||
gantt | ||
dateFormat YYYY-MM-DD | ||
title Adding GANTT diagram to mermaid | ||
excludes weekdays 2014-01-10 | ||
section A section | ||
Completed task :done, des1, 2014-01-06,2014-01-08 | ||
Active task :active, des2, 2014-01-09, 3d | ||
Future task : des3, after des2, 5d | ||
Future task2 : des4, after des3, 5d | ||
``` | ||
|
||
![Gantt diagram](./img/gantt.png) | ||
|
||
### Class diagram - :exclamation: experimental | ||
|
||
``` | ||
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"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-gantt.png" /> | ||
</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> | ||
classDiagram | ||
Class01 <|-- AveryLongClass : Cool | ||
Class03 *-- Class04 | ||
Class05 o-- Class06 | ||
Class07 .. Class08 | ||
Class01 <|-- AveryLongClass : Cool | ||
<<interface>> Class01 | ||
Class09 --> C2 : Where am i? | ||
Class09 --* C3 | ||
Class09 --|> Class07 | ||
|
@@ -110,129 +125,84 @@ Class07 : Object[] elementData | |
Class01 : size() | ||
Class01 : int chimp | ||
Class01 : int gorilla | ||
Class08 <--> C2: Cool label | ||
``` | ||
|
||
![Class diagram](./img/class.png) | ||
|
||
### Git graph - :exclamation: experimental | ||
|
||
``` | ||
gitGraph: | ||
options | ||
{ | ||
"nodeSpacing": 150, | ||
"nodeRadius": 10 | ||
class Class10 { | ||
<<service>> | ||
int id | ||
size() | ||
} | ||
end | ||
commit | ||
branch newbranch | ||
checkout newbranch | ||
commit | ||
commit | ||
checkout master | ||
commit | ||
commit | ||
merge newbranch | ||
``` | ||
|
||
![Git graph](./img/git.png) | ||
|
||
## Installation | ||
|
||
### CDN | ||
|
||
``` | ||
https://unpkg.com/mermaid@<version>/dist/ | ||
``` | ||
|
||
Replace `<version>` with expected version number. | ||
|
||
Example: https://unpkg.com/[email protected]/dist/ | ||
|
||
### Node.js | ||
|
||
``` | ||
yarn add mermaid | ||
``` | ||
|
||
## Documentation | ||
|
||
https://mermaidjs.github.io | ||
|
||
## Sibling projects | ||
|
||
- [mermaid CLI](https://github.com/mermaidjs/mermaid.cli) | ||
- [mermaid live editor](https://github.com/mermaidjs/mermaid-live-editor) | ||
- [mermaid webpack demo](https://github.com/mermaidjs/mermaid-webpack-demo) | ||
- [mermaid Parcel demo](https://github.com/mermaidjs/mermaid-parcel-demo) | ||
|
||
## Request for assistance | ||
|
||
Things are piling up and I have a hard time keeping up. To remedy this | ||
it would be great if we could form a core team of developers to cooperate | ||
with the future development of mermaid. | ||
|
||
As part of this team you would get write access to the repository and would | ||
represent the project when answering questions and issues. | ||
|
||
Together we could continue the work with things like: | ||
|
||
- Adding more types of diagrams like mindmaps, ert diagrams, etc. | ||
- Improving existing diagrams | ||
|
||
Don't hesitate to contact me if you want to get involved. | ||
|
||
## For contributors | ||
|
||
### Setup | ||
|
||
``` | ||
yarn install | ||
``` | ||
|
||
### Build | ||
|
||
``` | ||
yarn build:watch | ||
``` | ||
|
||
### Lint | ||
|
||
``` | ||
yarn lint | ||
``` | ||
|
||
We use [eslint](https://eslint.org/). | ||
We recommend you installing [editor plugins](https://eslint.org/docs/user-guide/integrations) so you can get real time lint result. | ||
|
||
### Test | ||
|
||
``` | ||
yarn test | ||
``` | ||
Manual test in browser: open `dist/index.html` | ||
|
||
### Release | ||
|
||
For those who have the permission to do so: | ||
|
||
Update version number in `package.json`. | ||
|
||
``` | ||
npm publish | ||
``` | ||
|
||
Command above generates files into the `dist` folder and publishes them to npmjs.org. | ||
|
||
## Credits | ||
|
||
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. | ||
|
||
_Mermaid was created by Knut Sveidqvist for easier documentation._ | ||
|
||
_[Tyler Long](https://github.com/tylerlong) has became a collaborator since April 2017._ | ||
|
||
Here is the full list of the projects [contributors](https://github.com/knsv/mermaid/graphs/contributors). | ||
</pre></td> | ||
<td align="center"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-class.png" /> | ||
</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"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-state.png" /> | ||
</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"> | ||
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-pie.png" /> | ||
</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!* | ||
--- | ||
|
||
*Mermaid was created by Knut Sveidqvist for easier documentation.* |