Please read in detail about how to contribute documentation and code on the Mermaid documentation site.
If you don't have direct access to push to mermaid repositories, make a fork first. Then clone. Or clone directly from mermaid-js:
git clone git@github.com:mermaid-js/mermaid.git
cd mermaid
Install required packages:
# npx is required for first install as volta support for pnpm is not added yet.
npx pnpm install
pnpm test # run unit tests
pnpm dev # starts a dev server
Open http://localhost:9000 in your browser after starting the dev server.
You can also duplicate the example.html
file in demos/dev
, rename it and add your own mermaid code to it.
That will be served at http://localhost:9000/dev/your-file-name.html.
If you are using docker and docker-compose, you have self-documented run
bash script, which is a convenient alias for docker-compose commands:
./run install # npx pnpm install
./run test # pnpm test
# Run unit test
pnpm test
# Run unit test in watch mode
pnpm test:watch
# Run E2E test
pnpm e2e
# Debug E2E tests
pnpm dev
pnpm cypress:open # in another terminal
[feature | bug | chore | docs]/[issue number]_[short description using dashes ('-') or underscores ('_') instead of spaces]
eg: feature/2945_state-diagram-new-arrow-florbs
, bug/1123_fix_random_ugly_red_text
Documentation is necessary for all non bugfix/refactoring changes.
Only make changes to files that are in /packages/mermaid/src/docs
DO NOT CHANGE FILES IN /docs
MANUALLY
The /docs
folder will be rebuilt and committed as part of a pre-commit hook.