mermaid/docs
Neil Cuzon 005defbb5c
Add files via upload
2020-03-07 16:17:03 -08:00
..
img Add files via upload 2020-03-07 16:17:03 -08:00
.nojekyll Adding docs into core repo again 2019-07-12 20:40:54 +02:00
CHANGELOG.md Updated docs with working code examples 2019-07-16 12:13:40 -07:00
README.md Update README.md 2020-02-29 00:07:47 -08:00
SUMMARY.md Update SUMMARY.md 2020-03-02 16:47:08 -08:00
_navbar.md Adding docs into core repo again 2019-07-12 20:40:54 +02:00
_sidebar.md Added syntax reference link 2019-11-28 12:53:33 +01:00
breakingChanges.md Adding docs into core repo again 2019-07-12 20:40:54 +02:00
classDiagram.md 1179 Add ability to use generics for members 2020-01-24 16:01:04 -08:00
development.md Removed GitBook, add howto contribute docs. 2020-02-23 10:47:51 +01:00
examples.md Updated Examples for Pie Chart 2019-10-30 18:30:14 +01:00
faq.md Adding docs into core repo again 2019-07-12 20:40:54 +02:00
flowchart.md #962 Set text color for flowchart link labels according to linkStyle definitions 2020-02-02 22:59:59 +01:00
gantt.md Update gantt.md 2020-03-07 00:59:39 -08:00
index.html Upgarding version in docs 2020-02-16 14:19:27 +01:00
integrations.md 1264-Update documentation 2020-02-25 13:11:08 -08:00
liveEditorOptions.png Add files via upload 2020-02-22 23:04:33 -08:00
mermaidAPI.md Update mermaidAPI.md 2020-03-05 17:34:06 -08:00
mermaidCLI.md Adding docs into core repo again 2019-07-12 20:40:54 +02:00
n00b-advanced.md Better header 2019-11-28 13:01:24 +01:00
n00b-gettingStarted.md Update n00b-gettingStarted.md 2020-02-27 01:07:25 -08:00
n00b-overview.md Update n00b-overview.md 2020-02-27 00:53:20 -08:00
n00b-syntaxReference.md polish 2019-11-28 13:00:12 +01:00
pie.md Updated documentation for Pie Chart 2019-10-30 18:32:07 +01:00
sequenceDiagram.md docs: Fix typo "possiebl" 2020-02-24 13:51:15 +09:00
stateDiagram.md Updated documentation with comment syntax 2019-11-26 15:34:52 -08:00
upgrading.md Adding docs into core repo again 2019-07-12 20:40:54 +02:00
usage.md Readded call to mermaidAPI in docs 2019-12-12 22:25:07 -05:00

README.md

Mermaid

Build Status Coverage Status Join the chat at https://gitter.im/knsv/mermaid

banner

What is mermaid?

It is a simple markdown-inspired, script language for diagramming and charting that can be deployed via Javascipt.

The reasoning behind it's inception was a need for simplified documentation and frustration with heavy and time consuming tools like Visio, for explaining code.

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 For the uninitiated, you can also try out our live editor and look at our documentation 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.

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

Special note regarding version 8.2

In version 8.2 a security improvement was introduced. A securityLevel configuration was introduced which sets the level of trust to be used on the parsed diagrams.

  • true: (default) tags in text are encoded, click functionality is disabled
  • false: tags in text are allowed, click functionality is enabled

Closed issues:

⚠️ Note : This changes the default behaviour of mermaid so that after upgrade to 8.2, if the securityLevel is not configured, tags in flowcharts are encoded as tags and clicking is prohibited.

If your application is taking resposibility for the diagram source security you can set the securityLevel accordingly. By doing this clicks and tags are again allowed.

mermaidAPI.initialize({
    securityLevel: 'loose'
});

🖖 Keep a steady pulse: mermaid needs more Collaborators #866

The following are examples of Diagrams that mermaid can make:

Flowchart

graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;

Flowchart

Sequence diagram

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

Gantt diagram

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

Class diagram - experimental

classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label

Class diagram

Git graph - experimental

gitGraph:
options
{
    "nodeSpacing": 150,
    "nodeRadius": 10
}
end
commit
branch newbranch
checkout newbranch
commit
commit
checkout master
commit
commit
merge newbranch

Git graph

Installation

CDN

https://unpkg.com/mermaid@<version>/dist/

Replace <version> with expected version number.

Example: https://unpkg.com/mermaid@7.1.0/dist/

Node.js

yarn add mermaid

Documentation

https://mermaidjs.github.io

Sibling projects

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. We recommend you installing editor plugins 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 and dagre-d3 projects for providing the graphical layout and drawing libraries!

Thanks also to the js-sequence-diagram 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 has became a collaborator since April 2017.

Here is the full list of the projects contributors.