Compare commits

..

687 Commits

Author SHA1 Message Date
Sidharth Vinod
f85f4bb661 Use undefined instead of null 2023-01-17 14:06:50 +05:30
sidharthv96
01a535b8e0 Update docs 2023-01-16 09:52:48 +00:00
Sidharth Vinod
3c12e66f73 Merge pull request #3988 from cakemanny/docs/correct-arrow-type-display
docs(sequenceDiagram): subvert prettification of arrow types
2023-01-16 15:18:59 +05:30
Sidharth Vinod
f0e3bcc37b Merge pull request #3997 from mermaid-js/renovate/all-minor-patch
chore(deps): update all non-major dependencies (minor)
2023-01-16 13:18:56 +05:30
renovate[bot]
376d1a583c chore(deps): update all non-major dependencies 2023-01-16 05:22:19 +00:00
renovate[bot]
ea3d7bc594 fix(deps): update dependency dagre-d3-es to v7.0.6 2023-01-16 05:18:31 +00:00
Daniel Golding
0a4a3bda16 docs(sequenceDiagram): subvert prettification of arrow types
The rendering of the arrows becomes prettified using some sort of font library on mermaid.js.org .
Quote in backticks to indicate these are code.
2023-01-13 17:05:53 +01:00
sidharthv96
874f4c0641 Update docs 2023-01-13 14:17:17 +00:00
Sidharth Vinod
60175cd84f Merge pull request #3986 from LiHowe/patch-1
Docs: Too many `primaryBorderColor` field
2023-01-13 19:43:45 +05:30
renovate[bot]
ac6d325a00 chore(deps): update all non-major dependencies 2023-01-13 10:02:07 +00:00
Howard He
e44e1210e2 Fix: Too many primaryBorderColor
Only keep one `primaryBorderColor` field in Theme Variables part.
before:
![before](https://s2.loli.net/2023/01/13/I657QWjsAlVokfE.png)
after:
![after](https://s2.loli.net/2023/01/13/ZQ7PSfcdIKBtGsm.png)
2023-01-13 17:13:56 +08:00
Sidharth Vinod
075f55418b Merge pull request #3985 from aloisklink/test/fix-docs-semantic-merge-conflict
Fix failing tests due to semantic merge conflict
2023-01-13 10:20:33 +05:30
Alois Klink
164b9bc2cb test(sequenceDiagram): mock more d3 curve* types
vitest is throwing an error, since these types are used in
packages/mermaid/src/utils.ts, but are not being mocked.

I've added all the curve types I needed to make Vitest happy.
At some point, we may need to improve these mocks, since in d3,
they have the type CurveFactory, not string.
2023-01-13 00:27:48 +00:00
Alois Klink
16540f3005 test(docs): fix test failure due to bad merge
Fixes a semantic merge conflict due to the PRs:
  - https://github.com/mermaid-js/mermaid/pull/3954
    Changed `docs.mts` to use a remark object created by `remark()`
  - https://github.com/mermaid-js/mermaid/pull/3946
    Added test code that mocked the frozen remark object
    (e.g. `remark` not `remark()`).

To fix this issue, we can mock `remark()` so that it always returns
the same remark object, which can then be used the `docs.mts` script,
as well as spied on in the `docs.spec.ts` test file.

Reported-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-01-13 00:17:17 +00:00
Alois Klink
6c862565aa chore(dev-deps): update vitest to ^0.27.1
Updates vitest to `^0.27.1`.

We want to add `importOriginal` feature added in Vitest [v0.26.3][1],
see commit
853eeddba8

[1]: https://github.com/vitest-dev/vitest/releases/tag/v0.26.3
2023-01-12 23:52:16 +00:00
sidharthv96
9ca2e0c5fc Update docs 2023-01-12 07:21:20 +00:00
Sidharth Vinod
9acd562b9e Merge pull request #3954 from aloisklink/build/support-GFM-in-markdown-documentation
Support GitHub Flavored Markdown in markdown documentation
2023-01-12 12:47:07 +05:30
Sidharth Vinod
3238ee4c2e Merge pull request #3972 from atmikeguo/develop
Fix nonstandard syntax
2023-01-12 12:44:03 +05:30
Ashish Jain
b67c023b0a Merge pull request #3938 from mermaid-js/layout-v3-continued
Layout v3 continued
2023-01-11 20:01:24 +01:00
Knut Sveidqvist
e28a766e7d Cleanup, updating the module name and description for flowchart in package.json 2023-01-11 19:56:04 +01:00
Knut Sveidqvist
3f7f04e02f Adjusted as per @ashishjain0512 review comments 2023-01-11 19:40:25 +01:00
Knut Sveidqvist
ce6f62e24e Merge pull request #3946 from weedySeaDragon/chore/3922_doc-diagram-only
(chore) Docs: add tag to produce only a diagram, not code example
2023-01-11 18:04:41 +01:00
Knut Sveidqvist
094b97de12 Merge branch 'develop' into layout-v3-continued 2023-01-11 18:03:09 +01:00
Knut Sveidqvist
0e3dadc53c Updated as per the suggestions from @weedySeaDragon 2023-01-11 17:58:05 +01:00
Knut Sveidqvist
1fca5131c3 Merge pull request #3947 from nekikara/bug/3865_c4_context_border_color
Bug/3865 C4Context: $borderColor has no effect
2023-01-11 17:56:00 +01:00
Sidharth Vinod
fcb41e4579 Merge pull request #3973 from mermaid-js/chore/disable-checking-twitter-links
ci: disable checking twitter links
2023-01-11 14:23:21 +05:30
renovate[bot]
a56d0bc36b fix(deps): update dependency dompurify to v2.4.3 2023-01-09 02:52:02 +00:00
Alois Klink
e6fd3bfb28 ci: disable checking twitter links
The [lycheeverse/lychee-action][1] GitHub action keeps timing
out when trying to check any of the links from twitter.com

My guess is maybe Twitter has anti-bot measures active
against GitHub's CI servers.

[1]: https://github.com/lycheeverse/lychee-action
2023-01-07 23:49:25 +00:00
Chidozie Nnachor
568a3329e1 docs: update sequenceDiagram.md to include line break (#3960)
Included an example for adding a line break to notes. It seems like an issue irking a lot of (new) users

Co-authored-by: Alois Klink <alois@aloisklink.com>
Co-authored-by: Chidozie Nnachor <Chidozie.Nnachor@keylane.com>
2023-01-07 23:39:36 +00:00
atmikeguo
1968d1bb28 Fix nonstandard syntax 2023-01-07 20:05:57 +08:00
Alois Klink
ae7833bdfa Merge pull request #3964 from guilhermgonzaga/docs/remove-duplicate-erdiagram
docs: Remove duplicate example in ER-diagram documentation
2023-01-05 23:56:58 +00:00
Guilherme Gonzaga
412eec06d4 Update docs 2023-01-05 21:50:37 +00:00
Guilherme Gonzaga
10cb3e26d5 docs: Remove duplicate in ER-diagram documentation 2023-01-03 14:49:20 -04:00
Alois Klink
75b19eaa0c chore(docs): run pnpm run docs:build with GFM
Rebuild docs with `remark-gfm` GitHub-Flavored-Markdown parser.
2023-01-01 21:28:03 +00:00
Alois Klink
ef51111b86 build(docs): support GFM in markdown docs
Support using GFM in markdown documentation.

GitHub has some custom features in their Markdown documentation.
For example, they support using tables, footnotes, and task lists.
Vitepress supports tables too.

However, remark sometimes throws an error when parsing tables,
so we should use `remark-gfm` to handle them.
2023-01-01 21:28:03 +00:00
Ashley Engelund (weedySeaDragon @ github)
36c0a30c50 Merge remote-tracking branch 'MERMAID/develop' into chore/3922_doc-diagram-only 2022-12-28 12:10:20 -08:00
nekikara
f233ce1fed add double quote 2022-12-27 20:43:33 +01:00
nekikara
d13c1bce47 fix the way to set stroke and stroke-width properties 2022-12-27 19:49:18 +01:00
Sidharth Vinod
967d3bbb60 Disable link checker on develop PRs
Runs link checker every day to keep cache warm.
2022-12-27 10:35:07 +05:30
Sidharth Vinod
06c357916e Merge pull request #3943 from nekikara/bug/3876_fix_typo_in_c4_svg-draw
fix typos accessing techn property in drawC4Shape function
2022-12-27 10:33:09 +05:30
Sidharth Vinod
406d663bff Merge pull request #3945 from huynhicode/website/homepage-updates
Website/homepage updates
2022-12-27 10:31:53 +05:30
Ashley Engelund (weedySeaDragon @ github)
78443861a6 test/spec for some of docs.mts 2022-12-26 13:13:47 -08:00
Ashley Engelund (weedySeaDragon @ github)
34aef1a6f5 refactor: transformBlocks(); + MERMAID_DIAGRAM_ONLY behavior; comments, constants 2022-12-26 13:13:02 -08:00
steph
7d0cec0a49 add margin to left and right side of team cards 2022-12-26 12:48:36 -08:00
steph
d8c3f8fc16 updates to the homepage 2022-12-26 12:04:58 -08:00
nekikara
d8aa44f0c5 fix typos accessing techn property in drawC4Shape function 2022-12-24 20:25:59 +01:00
Sidharth Vinod
2c88c6b526 Merge pull request #3921 from tomperr/fix/3795_class_tilde_visibility
fix(generic): fix generic type detection
2022-12-24 00:33:39 +05:30
Sidharth Vinod
8ed1ad5a8e Merge pull request #3907 from huynhicode/docs/formatting
docs: fix text overflow
2022-12-24 00:30:31 +05:30
Sidharth Vinod
c23cd49322 Merge pull request #3859 from aloisklink/fix/3706_support-indented-yaml-only-in-html
Support parsing indented mermaid/YAML only from HTML
2022-12-24 00:27:44 +05:30
Alois Klink
a58b41a38e Merge branch 'develop' into fix/3706_support-indented-yaml-only-in-html 2022-12-22 19:24:33 +00:00
Alois Klink
03c5bc1129 Merge pull request #3936 from Omerr/patch-2
Add Swimm to the list of integrations
2022-12-22 19:13:19 +00:00
Tom PERRILLAT-COLLOMB
df42f96b5a docs(classDiagram): add nested generic type example in docs 2022-12-22 11:17:44 +01:00
Knut Sveidqvist
c535b10534 Adding info in the docs for enabling elk flowcharts. 2022-12-22 11:00:30 +01:00
Omer Rosenbaum
d75f70f808 Rebuild the docs -> update integrations with swimm 2022-12-22 11:41:54 +02:00
Omer Rosenbaum
1da20d7aa5 Added swimm to cSpell 2022-12-22 11:39:21 +02:00
Knut Sveidqvist
913ba34386 #815 Adding possibility to configure elk as renderer for flowcharts 2022-12-22 10:33:41 +01:00
steph
dbfb29de27 Merge branch 'develop' into docs/formatting 2022-12-21 14:43:56 -08:00
steph
69928e3ede retrigger CI 2022-12-21 14:21:47 -08:00
steph
22b66193dc update outdate format info formatting 2022-12-21 11:24:48 -08:00
Omer Rosenbaum
895c16a793 Add Swimm to the list of integrations 2022-12-21 10:56:09 +02:00
Sidharth Vinod
b375f79b9c Merge pull request #3935 from tomperr/chore/pr_template_documentation_task
chore(pr): add documentation task in PR template
2022-12-21 10:22:53 +05:30
Steph
b220718b96 Update packages/mermaid/src/docs/syntax/gantt.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-20 09:37:42 -08:00
Steph
0f337d654f Update packages/mermaid/src/docs/syntax/gantt.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-20 09:37:26 -08:00
Tom PERRILLAT-COLLOMB
3beb828988 chore(pr): add task in PR template 2022-12-20 18:35:03 +01:00
steph
469bdcef2f add support for vitepress blocks 2022-12-19 21:14:39 -08:00
sidharthv96
72d9e87284 Update docs 2022-12-20 05:14:37 +00:00
Sidharth Vinod
2baa36fd1f Merge pull request #3930 from Frank-Mayer/patch-1
fixed Composition arrow
2022-12-20 10:40:54 +05:30
Sidharth Vinod
4859947eab Merge pull request #3906 from huynhicode/docs/navbar
docs: update navbar
2022-12-20 10:22:07 +05:30
steph
fca58f5942 remove text and add social icons 2022-12-19 17:45:25 -08:00
Steph
f17f81d12c Merge branch 'develop' into docs/navbar 2022-12-19 12:16:06 -08:00
Frank Mayer
86946c9bfd fixed Composition arrow
Composition arrow was displayed as \*-- but should be *--
2022-12-19 15:38:52 +01:00
Sidharth Vinod
95e4443ff2 Merge branch 'master' into develop
* master:
  Revert "Add CNAME"
  fix Redirect
  fix: Remove basepath from docs
2022-12-19 14:26:54 +05:30
Sidharth Vinod
81aee3554e Revert "Add CNAME"
This reverts commit 7670ada9ac.
2022-12-19 14:26:20 +05:30
Sidharth Vinod
fd5780d5a1 fix Redirect 2022-12-19 13:51:05 +05:30
Sidharth Vinod
8e7dd1d148 fix: Remove basepath from docs 2022-12-19 13:29:09 +05:30
Sidharth Vinod
14ea1430d8 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid:
  chore(deps): update pnpm to v7.18.2
  docs: fix typo
  fix dev server watch mode
2022-12-19 13:13:42 +05:30
renovate[bot]
e46e918b23 chore(deps): update pnpm to v7.18.2 2022-12-19 03:46:30 +00:00
Alois Klink
61fdca58a1 Merge pull request #3925 from Foo-x/docs/fix-typo
docs: fix typo
2022-12-18 15:58:01 +00:00
Foo-x
a6ea439ef3 docs: fix typo 2022-12-18 23:44:14 +09:00
Alois Klink
5a8975a4dd Merge pull request #3904 from huynhicode/fix/watch
fix: dev server watch mode
2022-12-17 23:38:48 +00:00
Tom PERRILLAT-COLLOMB
56e28a7f40 test(generic): add generic type unit test 2022-12-16 22:35:20 +00:00
Tom PERRILLAT-COLLOMB
5705515483 fix(generic): fix generic type regex
instead of looking for single tildes, we are now looking for pairs, which avoid bugs when there is an odd number of tildes
2022-12-16 22:17:39 +00:00
Sidharth Vinod
612f9327e9 Merge branch 'master' into develop
* master:
  Add CNAME
2022-12-17 00:34:07 +05:30
Sidharth Vinod
24bd36b087 Merge pull request #3920 from aloisklink/docs/fix-book-image-in-README.zh-CN.md
docs(README.zh-CN): fix book image src
2022-12-17 00:18:42 +05:30
Alois Klink
1e3d76a0aa docs(README.zh-CN): fix book image src
Copied from ec026eaf82
2022-12-16 18:31:25 +00:00
Sidharth Vinod
7670ada9ac Add CNAME 2022-12-16 21:59:44 +05:30
Knut Sveidqvist
bb9b0b015e #815 Styling subgraphs with color shades 2022-12-16 16:28:24 +01:00
Knut Sveidqvist
3e64b439ce Merge pull request #3917 from tomperr/feature/3910_er_unique_key
feat(er): add unique key
2022-12-16 13:03:30 +01:00
Knut Sveidqvist
1bf636d697 Merge pull request #3892 from mahomedalid/feature/3771_string_length
Adding support for parenthesis in the er diagram attribute types.
2022-12-16 12:58:30 +01:00
Sidharth Vinod
f019250494 Merge pull request #3916 from aloisklink/fix/use-determenistic-uuids-for-er-diagrams
fix(er): switch to deterministic UUIDs in ER
2022-12-16 12:44:12 +05:30
steph
528facf88d minor syntax update 2022-12-15 13:11:07 -08:00
Alois Klink
7855edae6b perf(er): pre-calculcate er UUID namespace
Pre-calculate the entity-relationship diagram namespace UUID.

This UUID is always constant, so we can pre-calculate it to save a
bit of processing power on the client.

Co-authored-by: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com>
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-12-15 20:22:39 +00:00
Sidharth Vinod
33f78a5429 Merge branch 'master' into develop
* master:
  Fix book link
  Add book landing page back
2022-12-16 01:28:42 +05:30
Sidharth Vinod
60d0185698 Fix book link 2022-12-16 01:27:15 +05:30
Sidharth Vinod
2743b72a87 Add book landing page back 2022-12-16 01:12:50 +05:30
Sidharth Vinod
7b13b489c2 Merge branch 'master' into develop
* master: (23 commits)
  Update vitepress
  fix: Add icon css
  fix Top level await
  v9.3.0
  bump dagre-es 7.0.6
  Bump mermaid version
  Update dagre-es
  Bump mermaid version
  fix: Incorrect removal of existing elements
  fix: add .js to external imports.
  fix: add .js to external imports.
  Bump mermaid version
  fix: add .js to external imports.
  Bump mermaid version
  fix: Throw correct errors when parsing diagrams with errors
  Update url snapshot test for external diagrams
  Update url snapshot test for external diagrams
  Updated package number
  Updated package number
  Updated package number to 9.3.0-rc1
  ...
2022-12-16 00:51:16 +05:30
Sidharth Vinod
d6ddf9568e Fix theming doc 2022-12-16 00:49:35 +05:30
Sidharth Vinod
ec026eaf82 Fix book link 2022-12-16 00:37:37 +05:30
Tom PERRILLAT-COLLOMB
c7f085a138 doc(er): add documentation on UK constraint 2022-12-15 19:03:00 +00:00
Tom PERRILLAT-COLLOMB
32a8061cc2 feat(er): add UK attribute constraint
Any attribute can now be PK, FK or UK
2022-12-15 18:55:08 +00:00
Sidharth Vinod
d6fad1bbd8 Merge pull request #3890 from BD103/patch-1
Add links to theme listing
2022-12-16 00:24:15 +05:30
BD103
e2b05d3cf6 Update docs 2022-12-15 18:24:23 +00:00
BD103
1495baac2c Merge branch 'develop' into patch-1 2022-12-15 13:20:45 -05:00
Alois Klink
ac5a1b4501 fix(er): switch to deterministic uuids in ER
The entity relation diagram uses uuid v4, which is randomly generated.

uuid v5 uses a SHA-1 hash, which makes the uuid deterministic.

The input strings are unique for each diagram, so this should be
okay.
2022-12-15 18:00:48 +00:00
Sidharth Vinod
ff7ed7f49f Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid: (40 commits)
  lint
  fix typescript error
  fix(docs): build the docs
  fix(docs): remove duplicate section
  chore(deps): update all non-major dependencies
  Update docs/misc/integrations.md
  Add links to github atom add-ons
  remove links from atom.io; add note Atom has been archived
  set svg role to 'graphics-document document'
  common function for a11y; add to renderAsync; + renderAsync spec
  fix cspell
  fix cspell
  fix lint
  refactor theming doc
  remove typeof
  use camelCase
  make test title clearer
  update /docs
  add test for multi-line accDescr
  use MockedD3, spies in util insertTitle spec (remove MockD3)
  ...
2022-12-15 21:50:06 +05:30
Sidharth Vinod
333b974f10 Add workflow_dispatch to lint.yml 2022-12-15 21:50:00 +05:30
Sidharth Vinod
01039c574c Merge pull request #3914 from tommoor/patch-1
fix: Typescript error in usage
2022-12-15 21:45:06 +05:30
Sidharth Vinod
4e70f327c4 Merge pull request #3897 from weedySeaDragon/feat/3896_a11y-svg-role-graphics-doc-doc
feat: Set svg role to 'graphics-document document'
2022-12-15 21:42:08 +05:30
Sidharth Vinod
54bb2ef00e Merge pull request #3908 from Joxtacy/patch-1
fix(docs): remove duplicate section
2022-12-15 20:39:52 +05:30
BD103
992d1623a7 chore: update docs folder 2022-12-15 09:46:00 -05:00
Tom Moor
78dd03dcdb lint 2022-12-15 09:29:30 -05:00
Tom Moor
9f2d29b68b fix typescript error 2022-12-15 06:09:22 -08:00
Sidharth Vinod
d841ad8f3e Update vitepress 2022-12-15 17:09:24 +05:30
Sidharth Vinod
3fb0b2792e fix: Add icon css 2022-12-15 15:33:51 +05:30
Sidharth Vinod
bbc4e90c89 fix Top level await 2022-12-15 14:57:08 +05:30
Knut Sveidqvist
5735efacbe Merge pull request #3911 from mermaid-js/release/9.3.0
Release/9.3.0
2022-12-15 10:16:12 +01:00
Sidharth Vinod
774512df57 v9.3.0 2022-12-15 14:18:54 +05:30
Sidharth Vinod
152994047e bump dagre-es 7.0.6 2022-12-15 09:12:08 +05:30
Sidharth Vinod
d194e78677 Bump mermaid version 2022-12-14 09:45:34 +05:30
Sidharth Vinod
16b51800d0 Update dagre-es 2022-12-14 09:45:18 +05:30
Sidharth Vinod
2176bef537 Bump mermaid version 2022-12-13 13:44:03 +05:30
Sidharth Vinod
9f9c95b0b3 fix: Incorrect removal of existing elements 2022-12-13 13:42:07 +05:30
Sidharth Vinod
3f0b13a131 fix: add .js to external imports. 2022-12-13 00:38:54 +05:30
Sidharth Vinod
3c44379af9 fix: add .js to external imports. 2022-12-13 00:34:31 +05:30
Sidharth Vinod
1d529d80d1 Bump mermaid version 2022-12-13 00:23:41 +05:30
Sidharth Vinod
89451ca640 fix: add .js to external imports. 2022-12-13 00:22:57 +05:30
Sidharth Vinod
fac3a4d29b Bump mermaid version 2022-12-12 23:52:48 +05:30
Sidharth Vinod
d7610dda8f fix: Throw correct errors when parsing diagrams with errors 2022-12-12 23:51:46 +05:30
Jesper Hasselquist
dfa1d26952 fix(docs): build the docs 2022-12-12 22:32:50 +09:00
Jesper Hasselquist
32fcea3bdd fix(docs): remove duplicate section
Remove duplicate `Return Type` section
2022-12-12 21:39:19 +09:00
renovate[bot]
a975c8c9cd chore(deps): update all non-major dependencies 2022-12-12 04:57:37 +00:00
steph
e4622ba06e fix text overflow 2022-12-11 20:53:14 -08:00
Maho Pacheco
6fb9b3b353 Adding UTs for attributes with variable length in er diagram 2022-12-11 19:45:05 -08:00
Maho Pacheco
07d8684fc7 Adding size to postal code 2022-12-11 19:34:25 -08:00
steph
1b0ea981f9 update navbar 2022-12-11 18:59:01 -08:00
steph
72a3cff13e fix dev server watch mode 2022-12-11 14:04:41 -08:00
Knut Sveidqvist
14f7756fdb #815 Adding labels to edges 2022-12-11 09:24:05 +01:00
Alois Klink
e97bef2ff7 Merge pull request #3899 from weedySeaDragon/docs/remove-atom-links
doc: remove links from atom.io; add note Atom has been archived
2022-12-11 00:12:59 +00:00
Ashley Engelund
e4c9aa198e Update docs/misc/integrations.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:47:01 -08:00
Ashley Engelund
76e9e07370 Add links to github atom add-ons
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:46:24 -08:00
Ashley Engelund (weedySeaDragon @ github)
de795a915e remove links from atom.io; add note Atom has been archived 2022-12-09 04:56:55 -08:00
Ashley Engelund (weedySeaDragon @ github)
e59b830d74 set svg role to 'graphics-document document' 2022-12-08 11:25:04 -08:00
Knut Sveidqvist
0b01c3376d #815 Adding labels to subgraphs 2022-12-08 19:41:17 +01:00
Knut Sveidqvist
6c2647e8cf Update url snapshot test for external diagrams 2022-12-08 16:39:21 +01:00
Knut Sveidqvist
e1a501c66b Update url snapshot test for external diagrams 2022-12-08 16:38:47 +01:00
Per Brolin
4f169dd2b8 Updated package number 2022-12-08 15:16:13 +01:00
Per Brolin
23a44952ac Updated package number 2022-12-08 15:09:49 +01:00
Per Brolin
7656916cef Updated package number to 9.3.0-rc1 2022-12-08 15:03:51 +01:00
Per Brolin
88357ba751 Merge branch 'release/9.3.0' of github.com:mermaid-js/mermaid into release/9.3.0 2022-12-08 14:17:11 +01:00
Per Brolin
98fc866444 Minor change of test code 2022-12-08 14:16:25 +01:00
Knut Sveidqvist
c6fce2431b Fixes for tests 2022-12-08 14:14:31 +01:00
Knut Sveidqvist
9b27396344 Small fix 2022-12-08 13:21:56 +01:00
Knut Sveidqvist
90d9724d1a Merge pull request #3808 from weedySeaDragon/feat/3626-aria-descBy-roledescription-mocks
Feat: Add aria-describedby, aria-roledescription
2022-12-08 10:44:31 +01:00
Ashley Engelund (weedySeaDragon @ github)
1c9a559362 common function for a11y; add to renderAsync; + renderAsync spec 2022-12-07 10:19:30 -08:00
Ashley Engelund (weedySeaDragon @ github)
b1dd0008bc Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-12-07 09:31:20 -08:00
Knut Sveidqvist
ebf76e3d1f #815 Using elk for flowchart layouts 2022-12-07 09:37:27 +01:00
Knut Sveidqvist
033201ff1f Merge pull request #3889 from huynhicode/docs/theming
docs: refactor Theming doc
2022-12-07 08:55:00 +01:00
Sidharth Vinod
af212331ef Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  fix: Fail docs:verify on non push events
2022-12-07 11:58:33 +05:30
Sidharth Vinod
59fdaa3b53 fix: Fail docs:verify on non push events 2022-12-07 11:58:09 +05:30
Sidharth Vinod
f2a85eafac Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  chore: Update cspell
  Update docs
  fix: docs build command
  chore: Rebuild docs if linting fails
  chore: Format Mermaid.vue
  Made mermaidConfig a local variable so that it cannot be shared cross rendering.
  Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
  Fixed the issue that theme-switch does not work on docs.
  Get base sha from PR
  Run doc lint only if files changed
  Run doc lint only if files changed
  Run doc lint only if files changed
  split lint docs action
  split lint docs action
  fix: File location
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  chore: Update docs path
  chore: Auto build docs if only src/docs is changed
2022-12-07 11:50:45 +05:30
Sidharth Vinod
9b547edbe9 Merge pull request #3547 from mermaid-js/sidv/autoBuildDocs
chore(docs): Auto build docs
2022-12-07 11:49:29 +05:30
Sidharth Vinod
48518a56c7 Merge branch 'sidv/autoBuildDocs' of https://github.com/mermaid-js/mermaid into sidv/autoBuildDocs
* 'sidv/autoBuildDocs' of https://github.com/mermaid-js/mermaid:
  Update docs
2022-12-07 11:48:56 +05:30
Sidharth Vinod
1a767ee492 chore: Update cspell 2022-12-07 11:48:51 +05:30
sidharthv96
b2489523f2 Update docs 2022-12-07 06:13:07 +00:00
Sidharth Vinod
7553827985 fix: docs build command 2022-12-07 11:40:17 +05:30
Sidharth Vinod
792c1a8320 chore: Rebuild docs if linting fails 2022-12-07 11:19:44 +05:30
Sidharth Vinod
963a1f1eb1 Merge remote-tracking branch 'origin/develop' into sidv/autoBuildDocs
* origin/develop: (564 commits)
  chore: Format Mermaid.vue
  Made mermaidConfig a local variable so that it cannot be shared cross rendering.
  Fix for issue #3882 moving the label when the path has been modified
  Small fix for issue #3881
  Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
  Fixed the issue that theme-switch does not work on docs.
  chore: Fix mindmap link
  chore: Switch back from unpkg to jsdelivr
  delete functions not used in diagrams/c4 code (dead code)
  Minor change
  feat: Add @include support to docs
  feat: Add @include example to docs
  feat: Add @include support to docs
  cleanup
  fix lines
  fix Async rendering
  Revert "sync"
  chore(deps): update pnpm to v7.17.1
  chore(deps): remove dependency on `graphlib`
  test(e2e): make gitgraph snapshots consistent
  ...
2022-12-07 11:11:45 +05:30
Maho Pacheco
4dadf8a72d Adding support for parentheses 2022-12-06 10:38:21 -08:00
Sidharth Vinod
fdf261bda3 chore: Format Mermaid.vue 2022-12-06 15:53:36 +05:30
Sidharth Vinod
f2ee20fdf5 Merge pull request #3880 from ZenUml/defects/issue-3878
Defects/issue 3878
2022-12-06 15:52:15 +05:30
MrCoder
7a086890fd Made mermaidConfig a local variable so that it cannot be shared cross rendering. 2022-12-06 19:44:14 +11:00
BD103
49ca2e3588 feat: add links to theme listing 2022-12-05 17:41:30 -05:00
Knut Sveidqvist
c5653156d9 Merge pull request #3883 from mermaid-js/3882_edge_labels
3882 edge labels
2022-12-05 08:15:15 +01:00
steph
2cce562bc4 fix cspell 2022-12-04 22:10:33 -08:00
steph
f0aea0e6af fix cspell 2022-12-04 22:04:20 -08:00
steph
24560b7d13 fix lint 2022-12-04 21:51:29 -08:00
steph
d451a0c508 refactor theming doc 2022-12-04 21:20:09 -08:00
Ashley Engelund (weedySeaDragon @ github)
96996d0fba Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-12-03 12:13:12 -08:00
Knut Sveidqvist
4124d186d0 Fix for issue #3882 moving the label when the path has been modified 2022-12-03 13:21:10 +01:00
Knut Sveidqvist
b68fee7e65 Small fix for issue #3881 2022-12-03 11:41:29 +01:00
Knut Sveidqvist
4863d0d29d Adding new flowchart renderer using elk 2022-12-03 09:47:01 +01:00
MrCoder
a1e4ffb3f0 Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages 2022-12-03 19:30:09 +11:00
MrCoder
c7471f1755 Fixed the issue that theme-switch does not work on docs. 2022-12-03 19:10:05 +11:00
Sidharth Vinod
abc6ee049d Merge pull request #3873 from mermaid-js/sidv/jsdelivr
Switch back to jsdelivr
2022-12-02 13:31:22 +05:30
Knut Sveidqvist
4f1b26fd76 Adding new flowchart renderer using cytoscape 2022-12-02 08:06:16 +01:00
Alois Klink
accba3f408 chore: improve errors for bad YAML frontmatter
Adds a custom error message for any mermaid diagram that starts with
a `---`. Normally, these are expected to be part of a YAML front-matter
block, but indentation issues or a missing closing `---` may cause
these to be not parsed correctly.
2022-12-01 22:43:03 +00:00
Ashley Engelund (weedySeaDragon @ github)
bfe3f309d2 remove typeof 2022-12-01 10:09:43 -08:00
Ashley Engelund (weedySeaDragon @ github)
f036d58ec3 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks
# Conflicts:
#	cypress/integration/rendering/gantt.spec.js
#	cypress/integration/rendering/requirement.spec.js
#	docs/config/setup/modules/mermaidAPI.md
#	packages/mermaid/src/accessibility.js
2022-12-01 10:08:44 -08:00
Sidharth Vinod
bcbf68b7e1 Merge pull request #3871 from weedySeaDragon/chore/c4-remove-unused-code
chore: delete functions not used in diagrams/c4 code (dead code)
2022-12-01 23:07:29 +05:30
Sidharth Vinod
1e30e33ad3 chore: Fix mindmap link 2022-12-01 13:51:50 +05:30
Sidharth Vinod
4b5021c0cc Merge branch 'develop' into sidv/jsdelivr
* develop:
2022-12-01 11:39:52 +05:30
Sidharth Vinod
41033008ec Merge branch 'master' into develop
* master:
  doc: Add mindmap integration docs
  fix: Fetch depth
  fix: Fetch depth
  fix: Fetch depth
  fix: Add commit count to release preview
  fix: Add commit count to release preview
  chore: Add working directory
  fix: release-preview-publish.yml
  Fix #3799: Remove `type` from package.json
2022-12-01 11:39:28 +05:30
Sidharth Vinod
cd0eae2807 chore: Switch back from unpkg to jsdelivr 2022-12-01 11:23:50 +05:30
Sidharth Vinod
8cb6fbfab0 Merge branch 'master' into sidv/jsdelivr
* master:
  doc: Add mindmap integration docs
  fix: Fetch depth
  fix: Fetch depth
  fix: Fetch depth
  fix: Add commit count to release preview
  fix: Add commit count to release preview
  chore: Add working directory
  fix: release-preview-publish.yml
  Fix #3799: Remove `type` from package.json
2022-12-01 11:20:16 +05:30
Alois Klink
f884b745dc Merge branch 'develop' into fix/3706_support-indented-yaml-only-in-html
Conflicts:
 - pnpm-lock.yaml
2022-11-30 21:11:48 +00:00
Ashley Engelund (weedySeaDragon @ github)
6f2b0c43cb delete functions not used in diagrams/c4 code (dead code) 2022-11-30 12:43:27 -08:00
Knut Sveidqvist
650ee31cd1 Merge pull request #3845 from mermaid-js/sidv/eslintCleanup
Housekeeping with eslint-unicorn
2022-11-30 11:53:16 +01:00
Knut Sveidqvist
931d56947a Minor change 2022-11-30 11:27:13 +01:00
Sidharth Vinod
36cf7e0601 Merge pull request #3863 from mermaid-js/sidv/includeMD
Add support for @include in docs
2022-11-30 00:51:29 +05:30
Knut Sveidqvist
ff1d56e9b5 Merge pull request #3846 from mermaid-js/sidv/mermaidDocs
Use current mermaid version in docs.
2022-11-29 17:13:52 +01:00
Knut Sveidqvist
5e98e99f86 Merge pull request #3829 from DanInProgress/fix/stylis-add-idselector
Use stylis to prepend idSelector
2022-11-29 17:10:27 +01:00
Sidharth Vinod
316f612bde feat: Add @include support to docs 2022-11-29 00:54:01 +05:30
Sidharth Vinod
2a5c2b58de feat: Add @include example to docs 2022-11-29 00:34:57 +05:30
Sidharth Vinod
e8703a59ec feat: Add @include support to docs 2022-11-29 00:34:29 +05:30
Sidharth Vinod
3a6dd61f65 cleanup 2022-11-28 16:26:10 +05:30
Sidharth Vinod
bfbb7996e9 fix lines 2022-11-28 16:21:05 +05:30
Sidharth Vinod
1f147b6b63 Merge branch 'develop' into sidv/mermaidDocs
* develop:
  chore(deps): update pnpm to v7.17.1
  chore(deps): remove dependency on `graphlib`
  test(e2e): make gitgraph snapshots consistent
2022-11-28 16:13:27 +05:30
Sidharth Vinod
e302ee383a fix Async rendering 2022-11-28 16:11:24 +05:30
Sidharth Vinod
527a3df083 Revert "sync"
This reverts commit a88a467d45.
2022-11-28 15:44:19 +05:30
Sidharth Vinod
b949da9ae4 Merge pull request #3860 from aloisklink/test/make-git-graph-test-consistent
Make gitgraph snapshots consistent in E2E tests
2022-11-28 15:42:20 +05:30
renovate[bot]
2984e4fc57 chore(deps): update pnpm to v7.17.1 2022-11-28 07:35:36 +00:00
Ashley Engelund (weedySeaDragon @ github)
2bf753a769 use camelCase 2022-11-27 19:17:37 -08:00
Ashley Engelund (weedySeaDragon @ github)
6044e9e9e8 make test title clearer 2022-11-27 19:17:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
e9d4372c41 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-11-27 19:10:28 -08:00
Sidharth Vinod
3b91846d0c Merge pull request #3861 from aloisklink/chore/remove-dependency-on-graphlib
chore(deps): remove dependency on `graphlib`
2022-11-28 07:41:50 +05:30
Alois Klink
05b25db5eb chore(deps): remove dependency on graphlib
`graphlib` has recently been replaced with the ESM version of
graphlib bundled with
[`dagre-d3-es`](https://www.npmjs.com/package/dagre-d3-es), in commit
f687abb1 (chore: Use `graphlib` from `dagre-d3-es`, 2022-11-20)

This means we can safely remove it from our dependencies list.

Fixes: f687abb165
2022-11-27 19:13:53 +00:00
Alois Klink
51119f22df test(e2e): make gitgraph snapshots consistent
Add a commit id to 'should render a simple gitgraph with a title',
as otherwise the gitgraph renderer picks a random commit ID, and so
image snapshots will be different.
2022-11-27 18:54:41 +00:00
Ashley Engelund (weedySeaDragon @ github)
2030885fd3 update /docs 2022-11-27 10:46:43 -08:00
Ashley Engelund (weedySeaDragon @ github)
6e486d3c49 add test for multi-line accDescr 2022-11-27 10:32:25 -08:00
Alois Klink
4cc3b17d36 docs(demos): fix indentation of YAML front-matter
Mermaid diagrams that have YAML front-matter can now be indented in
HTML code, see commit:
5cfa9196 (fix: support parsing indented mmd YAML from HTML, 2022-11-27)

Some diagrams previously had a mix of tabs/spaces for indentation.
In order for `dedent` to work, these diagrams had to be converted to
using a consistent indentation.
2022-11-27 18:29:28 +00:00
Alois Klink
5cfa919672 fix: support parsing indented mmd YAML from HTML
In order to parse the YAML front-matter in a Mermaid diagram, the
YAML seperators **MUST NOT** be indented, e.g.:

````markdown
```mermaid
---
title: This is fine.
---
```

```mermaid
  ---
  title: This is not fine, because the `---` are indented.
  ---
```
````

However, this makes it very difficult to write nice Mermaid diagrams in
HTML code-blocks.

This commit uses [`ts-dedent`](https://www.npmjs.com/package/ts-dedent)
to automatically remove the indentation from Mermaid diagrams when
parsed from HTML. Mermaid diagrams from mermaidAPI.render() are **NOT**
dedented, as that API is called from JavaScript code, and therefore
users can easily `dedent` their own diagrams.
2022-11-27 18:19:13 +00:00
Ashley Engelund (weedySeaDragon @ github)
f1bc2deafd use MockedD3, spies in util insertTitle spec (remove MockD3) 2022-11-27 10:14:11 -08:00
Ashley Engelund (weedySeaDragon @ github)
7508cd796d (minor) fix comment, comment typo 2022-11-27 10:13:32 -08:00
Ashley Engelund (weedySeaDragon @ github)
626a4741c0 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-11-25 11:30:44 -08:00
Sidharth Vinod
f425a02cf9 Merge branch 'develop' into sidv/mermaidDocs
* develop:
  chore: Fix lint
  test: Update vitest
  Add official vim plugin to list in integrations
  chore: Add lodash-eslint rule
  chore: Add lodash-eslint rule
  feat: Spellcheck docs when building
  fix: Enable extending lintstagedrc.
  fix: lintstagedrc `lint:jison`
  Fix lodash import
  Formatting
  Update .vite/build.ts
  fix Lint
  Add docs back
  fix: Core build externals
  chore: Update dagre-d3-es
  chore: Use `graphlib` from `dagre-d3-es`
  fix: Add types to memoized functions
  chore: Replace lodash with lodash-es
  Cleanup
2022-11-25 16:21:05 +05:30
Sidharth Vinod
3e4dc306d4 Merge pull request #3847 from craigmac/patch-1
Add official vim plugin to list in integrations
2022-11-25 12:01:32 +05:30
Sidharth Vinod
4a4eff55c1 chore: Fix lint 2022-11-25 12:00:31 +05:30
Sidharth Vinod
5e330a6d78 test: Update vitest 2022-11-24 16:33:42 +05:30
C.D. MacEachern
ecf1273c82 Add official vim plugin to list in integrations
364438d1e8 added recognition of Mermaid files to Vim. Link here is to the upstream source from which it comes.
2022-11-23 15:25:06 -05:00
Sidharth Vinod
a4fec411bd Merge branch 'develop' into sidv/eslintCleanup
* develop:
  chore: Add lodash-eslint rule
  chore: Add lodash-eslint rule
  feat: Spellcheck docs when building
  fix: Enable extending lintstagedrc.
  fix: lintstagedrc `lint:jison`
2022-11-23 20:52:36 +05:30
Knut Sveidqvist
50aab56177 Merge pull request #3844 from mermaid-js/sidv/fixLintStaged
fix: LintStaged
2022-11-23 13:52:40 +01:00
Knut Sveidqvist
79c63e9ff4 Merge pull request #3825 from mermaid-js/sidv/optimizeSize
Reduce mermaid size by 31%
2022-11-23 13:52:24 +01:00
Sidharth Vinod
7201c014e3 chore: Cleanup package.json 2022-11-23 16:10:36 +05:30
Sidharth Vinod
cc1c98325c chore: Cleanup package.json 2022-11-23 16:08:41 +05:30
Sidharth Vinod
f8b05f7d75 chore: Cleanup package.json 2022-11-23 16:07:58 +05:30
Sidharth Vinod
6faf54cf6f fix lock 2022-11-23 16:04:38 +05:30
Sidharth Vinod
01a24296b6 Docs 2022-11-23 15:57:50 +05:30
Sidharth Vinod
ab81b508ce Merge branch 'develop' into sidv/mermaidDocs
* develop: (79 commits)
  chore: docs:build
  chore: docs:build
  tiny fix and change: "The/y cannot" -> "Cannot..."
  remove 'horz' from  cSpell.json
  update demos/state.html to includ examples; formatting
  add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
  refine - what is not done yet
  remove 'horz' from  cSpell.json
  Revert "Added pie"
  chore: Fix cSpell in pieRenderer
  update demos/state.html to includ examples; formatting
  add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
  refine - what is not done yet
  remove console stmt
  #3831 Re-enabling themes for er diagrams
  #3835 Adding path to list of elements to be styled
  #3882 fix for issues with mindmaps  with only a single node
  chore(deps): update pnpm to v7.17.0
  docs: Remove warning in readme
  chore(deps): update lycheeverse/lychee-action action to v1.5.4
  ...
2022-11-23 15:57:06 +05:30
Sidharth Vinod
ed6fb15c38 Fix: array concat 2022-11-23 13:39:15 +05:30
Sidharth Vinod
2cefb0fb8f chore: Add lodash-eslint rule 2022-11-23 03:03:19 +05:30
Sidharth Vinod
1dae3a000d chore: Add lodash-eslint rule 2022-11-23 03:03:14 +05:30
Sidharth Vinod
7f4368415d chore: Add eslint-unicorn & fix 2022-11-23 01:05:08 +05:30
Sidharth Vinod
8116c8b40d chore: Add lodash-eslint rule 2022-11-23 00:26:50 +05:30
Sidharth Vinod
32cf349d12 chore: Add lodash-eslint rule 2022-11-23 00:26:37 +05:30
Sidharth Vinod
9da29da63b Merge branch 'develop' into sidv/optimizeSize
* develop: (21 commits)
  chore: docs:build
  chore: docs:build
  tiny fix and change: "The/y cannot" -> "Cannot..."
  remove 'horz' from  cSpell.json
  update demos/state.html to includ examples; formatting
  add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
  refine - what is not done yet
  remove 'horz' from  cSpell.json
  Revert "Added pie"
  chore: Fix cSpell in pieRenderer
  update demos/state.html to includ examples; formatting
  add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
  refine - what is not done yet
  remove console stmt
  #3831 Re-enabling themes for er diagrams
  #3835 Adding path to list of elements to be styled
  #3882 fix for issues with mindmaps  with only a single node
  Integrations added - Visual Studio Code [Polyglot Interactive Notebooks]
  Fix typos
  #3778 Adding a hexgon shape
  ...
2022-11-22 23:49:39 +05:30
Sidharth Vinod
f2ed255137 Merge pull request #3821 from dfinke/develop
Integrations added - Visual Studio Code [Polyglot Interactive Notebooks]
2022-11-22 23:22:19 +05:30
Sidharth Vinod
49348a82e0 chore: docs:build 2022-11-22 23:21:27 +05:30
Sidharth Vinod
d81a922a4f Merge pull request #3841 from weedySeaDragon/feat/1952-state--classDef-documentation
(feat) state  classDef documentation
2022-11-22 23:19:15 +05:30
Sidharth Vinod
1ca49c696a Merge branch 'develop' into feat/1952-state--classDef-documentation
* develop:
  chore: docs:build
  Fix typos
2022-11-22 23:17:33 +05:30
Sidharth Vinod
8e8259934e Merge pull request #3820 from endolith/typos
Fix typos
2022-11-22 23:17:11 +05:30
Sidharth Vinod
66bb19f91a chore: docs:build 2022-11-22 23:17:00 +05:30
Sidharth Vinod
183dee89c2 feat: Spellcheck docs when building
docs.yml is removed as `docs:verify` will cover spellchecks now.
2022-11-22 23:06:12 +05:30
Sidharth Vinod
009a32d20b fix: Enable extending lintstagedrc. 2022-11-22 23:05:27 +05:30
Ashley Engelund (weedySeaDragon @ github)
338d83d4a5 Merge branch 'feat/1952-state--classDef-documentation' of github.com:weedySeaDragon/mermaid into feat/1952-state--classDef-documentation
 Conflicts:
	docs/syntax/stateDiagram.md
	packages/mermaid/src/diagrams/pie/pieDetector.ts
	packages/mermaid/src/docs/syntax/stateDiagram.md
2022-11-22 09:09:40 -08:00
Ashley Engelund (weedySeaDragon @ github)
c3e054c155 tiny fix and change: "The/y cannot" -> "Cannot..." 2022-11-22 08:58:55 -08:00
Ashley Engelund
a09ec69a96 remove 'horz' from cSpell.json
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-11-22 08:56:04 -08:00
Ashley Engelund (weedySeaDragon @ github)
7f5b48920c update demos/state.html to includ examples; formatting 2022-11-22 08:56:04 -08:00
Ashley Engelund (weedySeaDragon @ github)
4703523d6b add 'horz' to cSpell (in pieDetector.ts commented out barChart work) 2022-11-22 08:56:04 -08:00
Ashley Engelund (weedySeaDragon @ github)
8066aaeeb0 refine - what is not done yet 2022-11-22 08:55:56 -08:00
Ashley Engelund
828e99d4b9 remove 'horz' from cSpell.json
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-11-22 08:49:08 -08:00
Sidharth Vinod
5967289172 fix: lintstagedrc lint:jison 2022-11-22 14:47:49 +05:30
Sidharth Vinod
4143032b66 Merge pull request #3842 from mermaid-js/per/revert-1d9fefe7ac65990e4dd06a7e0e29976a873db844
Revert "Added pie"
2022-11-22 14:39:51 +05:30
Per Brolin
9eb506f6c5 Revert "Added pie"
This reverts commit 1d9fefe7ac.
2022-11-22 10:04:28 +01:00
Sidharth Vinod
231965d36c Merge pull request #3840 from weedySeaDragon/chore/fix-lint-pie-console-stmt
(chore) remove console stmt in pieDetector
2022-11-22 10:53:06 +05:30
Sidharth Vinod
31380368e1 chore: Fix cSpell in pieRenderer 2022-11-22 10:49:45 +05:30
Ashley Engelund (weedySeaDragon @ github)
e2e604a76a update demos/state.html to includ examples; formatting 2022-11-21 17:00:54 -08:00
Ashley Engelund (weedySeaDragon @ github)
98e4b6f338 add 'horz' to cSpell (in pieDetector.ts commented out barChart work) 2022-11-21 17:00:54 -08:00
Ashley Engelund (weedySeaDragon @ github)
e1c2b1ddb5 refine - what is not done yet 2022-11-21 17:00:54 -08:00
Ashley Engelund (weedySeaDragon @ github)
22993e8b6c remove console stmt 2022-11-21 16:35:02 -08:00
Per Brolin
fdbc4ce0ed Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2022-11-21 14:45:25 +01:00
pbrolin47
96d7666d8e Merge pull request #3837 from mermaid-js/3831_er_theme
#3831 Re-enabling themes for er diagrams
2022-11-21 14:43:41 +01:00
pbrolin47
0e3a558b02 Merge pull request #3836 from mermaid-js/3835_handling_classes_to_paths
Fix for #3835, makes it possible to style path elements
2022-11-21 14:40:10 +01:00
Knut Sveidqvist
f9222a3bf4 #3831 Re-enabling themes for er diagrams 2022-11-21 14:30:06 +01:00
Knut Sveidqvist
78b7941f2d #3835 Adding path to list of elements to be styled 2022-11-21 14:06:09 +01:00
pbrolin47
0d27b1aa65 Merge pull request #3834 from mermaid-js/3778_adding_more_mindmap_shapes
#3778 Adding a hexgon shape
2022-11-21 13:50:53 +01:00
Sidharth Vinod
9b01a07b9d Fix lodash import 2022-11-21 18:13:35 +05:30
pbrolin47
32db43069d Merge pull request #3833 from mermaid-js/3832_mindmaps_single_node
#3882 fix for issues with mindmaps  with only a single node
2022-11-21 13:39:16 +01:00
Sidharth Vinod
89488b60a4 Formatting 2022-11-21 18:06:53 +05:30
Sidharth Vinod
a686255d9e Merge branch 'develop' into sidv/optimizeSize
* develop:
  chore(deps): update pnpm to v7.17.0
  docs: Remove warning in readme
  chore(deps): update lycheeverse/lychee-action action to v1.5.4
  chore: Add size shield in readme
  Fix example for Git diagrams
  Fix TS errors
  Add interface for DiagramDb and other minor changes
  Disallow leading whitespace before delimiter
  Add title support using YAML frontmatter
2022-11-21 18:06:30 +05:30
Knut Sveidqvist
ffb95b4fa9 Merge pull request #3823 from mermaid-js/sidv/viz
Add package visualizations
2022-11-21 13:32:19 +01:00
Knut Sveidqvist
29a02d1ab5 Merge pull request #3809 from aloisklink/use-dagre-d3-es
Replace `dagre`/`dagre-d3` with `dagre-d3-es`
2022-11-21 13:31:35 +01:00
Knut Sveidqvist
564414ecac #3882 fix for issues with mindmaps with only a single node 2022-11-21 13:23:25 +01:00
Knut Sveidqvist
050574f60f Merge pull request #3706 from MasonM/feature/1433_title_support
feat: Title support via front matter for ER, state, class, git, and graph diagrams
2022-11-21 11:44:26 +01:00
renovate[bot]
b9f0c7c807 chore(deps): update pnpm to v7.17.0 2022-11-21 10:05:15 +00:00
Sidharth Vinod
ed6ad77fd9 docs: Remove warning in readme 2022-11-21 11:52:57 +05:30
Dan Fallon
1f64302ae2 Use stylis to prepend idSelector
code previously manually inserted idSelector before the generated CSS.
This could produce incorrect CSS.

Adding & in front of rules will ensure that it behaves properly.
Stylis seems permissive about the lack of nesting selector, but fails
if there is no selector at all. (e.g. "{...props...}")

We should probably do this for each diagram's style.ts files as well
2022-11-20 23:11:05 -06:00
renovate[bot]
a8c5f6d517 chore(deps): update lycheeverse/lychee-action action to v1.5.4 2022-11-21 04:51:51 +00:00
Sidharth Vinod
de99cdfb4c chore: Add size shield in readme
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-11-21 08:22:10 +05:30
Sidharth Vinod
b75ce7af45 Update .vite/build.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-11-21 08:18:08 +05:30
Sidharth Vinod
de8ce77f37 fix Lint 2022-11-21 08:16:16 +05:30
Sidharth Vinod
bdace6a4d6 Add docs back 2022-11-21 08:16:16 +05:30
Sidharth Vinod
0e34caa1b0 fix: Core build externals 2022-11-21 08:16:15 +05:30
Sidharth Vinod
13ef403921 chore: Update dagre-d3-es 2022-11-21 08:16:15 +05:30
Sidharth Vinod
f687abb165 chore: Use graphlib from dagre-d3-es 2022-11-21 08:16:08 +05:30
Sidharth Vinod
931661ed67 fix: Add types to memoized functions 2022-11-21 08:13:44 +05:30
Sidharth Vinod
7d3a0577d2 chore: Replace lodash with lodash-es 2022-11-21 08:13:44 +05:30
Sidharth Vinod
4411aa9905 Cleanup 2022-11-21 08:13:44 +05:30
Sidharth Vinod
4890999206 Merge branch 'sidv/viz' into sidv/dagre-es-viz
* sidv/viz:
  Fix Lodash import
  fix: Viz build
  feat: Add package visualization
  Ignore stats.html
  feat: Add bundle visualization
  style(docs): use `github-dark` hightlight theme
  refactor(docs): use default vitepress highlighter
  fix: Move redirection to router
  chore: Add docs to redirect.ts
  feat: Redirect old documentation links.
  comments in states are skipped now
  Remove extra arrow and adjust cross position
2022-11-21 08:13:43 +05:30
Ashley Engelund (weedySeaDragon @ github)
a9c337302a export D3Element from mermaidAPI; use in accessibility 2022-11-20 12:27:29 -08:00
Ashley Engelund
2a98791ec9 use optional chaining check for get acc title and get acc description
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-11-20 12:17:21 -08:00
Sidharth Vinod
8a2d3a400c Fix Lodash import 2022-11-20 19:12:52 +05:30
Sidharth Vinod
29342ea726 fix: Viz build 2022-11-20 17:16:09 +05:30
Sidharth Vinod
4ad99a25d0 feat: Add package visualization 2022-11-20 14:16:22 +05:30
Sidharth Vinod
fc859528e4 Ignore stats.html 2022-11-20 12:13:03 +05:30
Sidharth Vinod
49a931f712 feat: Add bundle visualization 2022-11-20 12:13:00 +05:30
Mason Malone
bdf8b01185 Fix example for Git diagrams 2022-11-19 13:20:12 -08:00
Mason Malone
1b201bf462 Fix TS errors 2022-11-19 13:01:21 -08:00
Mason Malone
3316aa5f4f Add interface for DiagramDb and other minor changes 2022-11-19 12:52:49 -08:00
Mason Malone
a11ab3d5ea Disallow leading whitespace before delimiter 2022-11-19 12:52:49 -08:00
Doug Finke
2a0f6d4cc9 Integrations added - Visual Studio Code [Polyglot Interactive Notebooks] 2022-11-19 11:20:13 -05:00
endolith
e3b9dbdf13 Fix typos 2022-11-19 09:33:01 -05:00
Mason Malone
70f024735b Add title support using YAML frontmatter 2022-11-18 20:42:54 -08:00
Alois Klink
fd76e0e270 chore: replace dagre/dagre-d3 with dagre-d3-es
Replace the dagre and dagre-d3 libraries with dagre-d3-es.

Both dagre and dagre-d3 are deprecated and unmaintained,
and haven't been updated for more than 3 years.

Since dagre-d3 still requires an old version of d3, this causes
a bunch of security warnings,
e.g. https://github.com/advisories/GHSA-36jr-mh4h-2g58

The [dagre-d3-es](https://github.com/tbo47/dagre-es) package is a fork
that contains support for `"d3": "^7.6.1"`. Also, it's ESM, so we will
hopefully get smaller bundle sizes too. The only issue is that this
fork isn't very well used (only has 3000 weekly downloads),
compared to `dagre-d3`'s 250,000 weekly downloads.

(although to be fair, a large proportion of dagre-d3's downloads
 probably come from mermaid)

Since it's is a less popular package,
**I've pinned `dagre-d3-es` to `"7.0.2"` instead of `"^7.0.2"`**.
This does mean if there is a bug in `dagre-d3-es`, we will have to
manually bump it ourselves, but it also means we won't accidentally
be sending a buggy version of `dagre-d3-es` out to users in cases
something changes (it might be worth disabling renovate for this
if we're feeling paranoid!)
2022-11-18 18:33:05 +00:00
Alois Klink
537a627b75 test(e2e): test for mindmap before snapshot
Sometimes, the mindmap e2e tests take a snapshot when the mindmap
SVG has been created, but hasn't yet been fully rendered.

This adds a quick check for a mindmap section root, so that the
snapshot is only taken after the mindmap diagram has started
rendering.

I was also running into JSDoc ESLint warnings, so I moved the file
into a TypeScript file to fix those warnings.
2022-11-18 18:31:14 +00:00
Alois Klink
57edcfe87d test(e2e): remove unused mermaid.spec.js file
All tests have been moved to `mindmap.spec.js` in a previous commit.
2022-11-18 18:07:40 +00:00
Alois Klink
b9dcdb00a5 test(e2e): move mindmap tests to mindmap.spec.js
Currently, we have mindmap tests in the
cypress/integration/rendering/mermaid.spec.js which is a bit
odd. They should probably all be in the mindmap.spec.js file.
2022-11-18 17:58:17 +00:00
Sidharth Vinod
09ed41b7d2 Merge pull request #3807 from aloisklink/docs/update-code-highlighting-theme
Use `github-dark` to highlight fence blocks in vitepress docs
2022-11-18 23:09:59 +05:30
Alois Klink
6e234f135d docs: create some basic mermaid mindmap demos 2022-11-18 17:32:23 +00:00
pbrolin47
e2a0c434cc Merge pull request #3810 from mermaid-js/sidv/doc/mindmap
Mindmap integration docs
2022-11-18 11:01:38 +01:00
pbrolin47
804a23595d Merge pull request #3797 from mermaid-js/sidv/redirectOldDocs
feat: Redirect old documentation links.
2022-11-18 10:46:34 +01:00
Knut Sveidqvist
8655db371e Merge pull request #3762 from avijit1258/bug/3728_comments_not_ignored_composite_states
comments in states are skipped now
2022-11-18 10:45:01 +01:00
Knut Sveidqvist
9b8d5c1b3b Merge pull request #3641 from ishuen/bug/3637_extra_arrow
Remove extra arrow and adjust cross position
2022-11-18 10:38:57 +01:00
Sidharth Vinod
e9f8ba6915 doc: Add mindmap integration docs 2022-11-18 11:28:29 +05:30
Ashley Engelund (weedySeaDragon @ github)
67a015c71d re-re-fixed the contributing doc 2022-11-17 16:58:18 -08:00
Ashley Engelund (weedySeaDragon @ github)
69526402e2 format .md files 2022-11-17 16:51:23 -08:00
Ashley Engelund (weedySeaDragon @ github)
b51759d36e set describeby to accessible description element id 2022-11-17 15:50:52 -08:00
Ashley Engelund (weedySeaDragon @ github)
68b1805c40 (minor) fix typo, whitespace formatting 2022-11-17 15:49:37 -08:00
Ashley Engelund (weedySeaDragon @ github)
9cc862b951 doc: adding diagrams: revise a11y section 2022-11-17 15:48:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
4fb4aa417c doc: revise A11y: fix multi-line ex, +describedby, alpha sort examples 2022-11-17 15:47:22 -08:00
Ashley Engelund (weedySeaDragon @ github)
0adc6a6112 remove a11y from individual diagrams; now happens in mermaidAPI render 2022-11-17 12:28:11 -08:00
Ashley Engelund (weedySeaDragon @ github)
29efc116f3 put a11y into mermaidAPI render; add render spec (mock diagram renderers etc) 2022-11-17 12:27:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
f62c5d9698 add diagram renderer mocks 2022-11-17 12:25:14 -08:00
Ashley Engelund (weedySeaDragon @ github)
1ad537bc4d d3 mock: use MockedD3; remove sequence specific mock code 2022-11-17 12:24:58 -08:00
Ashley Engelund (weedySeaDragon @ github)
1fc02940ae move mocks specific to only seq spec files out of global d3 mock 2022-11-17 12:24:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
8a3c4f64b2 MockedD3: node() return Element; add selectAll() 2022-11-17 12:23:01 -08:00
Ashley Engelund (weedySeaDragon @ github)
4d7496b8dd add error checking (empty diagramType, title, desc) to a11y methods 2022-11-17 12:21:45 -08:00
Ashley Engelund (weedySeaDragon @ github)
03a11e103e (minor) fix typo 2022-11-17 12:19:31 -08:00
Ashley Engelund (weedySeaDragon @ github)
c3313050ce Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-roledescription-for-svg 2022-11-17 11:17:18 -08:00
Alois Klink
c30aa6f9cf style(docs): use github-dark hightlight theme
Use the `github-dark` highlight theme for fence blocks in vitepress,
instead of the default `material-palenight` theme.

This increases the contrast ratio of `#comments` from 2.75:1 to 4.43:1,
which is a lot more visible.

It still doesn't reach WCAG 2.0 level AA contrast standards,
which requires 4.5:1 as a minimum constrast ratio, but 4.43:1 is
pretty close, and we don't need to manually modify the theme's colours.
2022-11-17 19:05:41 +00:00
Alois Klink
6da6edfc01 refactor(docs): use default vitepress highlighter
Use the default vitepress highlighter instead of making our own
highlighter using shiki.

The benefits are:
  - We don't need to directly depend on shiki
  - `mermaid-example` code-blocks will use the same highlighting
    as other languages (e.g. `html`/`js`).
  - We can control the theme from the global `vitepress` config.
  - Darkmode/lightmode themes are supported
  - Escaping is already handled by the default highlight function
2022-11-17 19:05:38 +00:00
Sidharth Vinod
461236030c Merge pull request #3798 from weedySeaDragon/bug/1952-stateDiagram--classDef-fix-classes-type
bug: State diagram  fix classes type
2022-11-17 22:01:09 +05:30
Sidharth Vinod
8cc291162f Merge pull request #3735 from aloisklink/ci/disable-pinning-dependencies
CI: disable pinning dependencies
2022-11-17 21:59:06 +05:30
Sidharth Vinod
b83ba4d293 fix: Move redirection to router 2022-11-17 11:14:15 +05:30
Alois Klink
c2bd6a490f ci(renovate): disable pinning dependencies
We shouldn't pin dependencies unless we have to.

This is for two reasons:

- If a dependency has a security issue, users should be able to
  easily update the dependency, before `mermaid` makes a new release
- If using `mermaid.core.js` in an app, using a dependency range
  means that users can bundle less dependencies.
  E.g. they won't need to bundle `lodash@4.17.y` just becasue mermaid
  needs `lodash@4.17.x`.

For development/CI, our dependencies are pinned by pnpm-lock.yaml
file anyway.
2022-11-16 20:00:17 +00:00
Alois Klink
476917bda9 Revert "chore(deps): pin dependencies"
This reverts commit 17b72d565d.
2022-11-16 20:00:16 +00:00
pbrolin47
432d4f41f6 Merge pull request #3802 from mermaid-js/release/9.2.3
Fix #3799: Remove `type` from package.json
2022-11-16 09:29:03 +01:00
Sidharth Vinod
2092330eec fix: Fetch depth 2022-11-16 11:30:58 +05:30
Sidharth Vinod
e05e0f8ae3 fix: Fetch depth 2022-11-16 10:31:49 +05:30
Sidharth Vinod
52ee234c0f fix: Fetch depth 2022-11-16 10:31:07 +05:30
Sidharth Vinod
1d828fe8be fix: Add commit count to release preview 2022-11-16 10:27:42 +05:30
Sidharth Vinod
503114c0eb fix: Add commit count to release preview 2022-11-16 10:22:37 +05:30
Sidharth Vinod
653682a4b8 Merge pull request #3804 from weedySeaDragon/bug/3803_vitepress-config-shiki-import-fix
bug: change shiki getHighlighter import
2022-11-16 10:16:04 +05:30
Sidharth Vinod
1ad63d5b0b chore: Add working directory 2022-11-16 09:49:41 +05:30
Ashley Engelund (weedySeaDragon @ github)
d99707641b add "roledescription" to cSpell list of words (as in 'aria-roledescription') 2022-11-15 13:49:05 -08:00
Ashley Engelund (weedySeaDragon @ github)
0d9566dd71 diagrams: use a11y title,desc specific method (was renamed) 2022-11-15 13:48:35 -08:00
Ashley Engelund (weedySeaDragon @ github)
8d96518092 accessibility.js -> ts; + set aria-roledescription; add spec 2022-11-15 13:47:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
717aca6824 change shiki getHighlighter import 2022-11-15 13:09:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
2cbf6110a6 create separate spec for stateRenderer-v2 2022-11-15 12:30:10 -08:00
Sidharth Vinod
3358406e68 fix: release-preview-publish.yml 2022-11-16 00:06:47 +05:30
Sidharth Vinod
d05fd25339 Fix #3799: Remove type from package.json 2022-11-15 23:59:17 +05:30
Ashley Engelund (weedySeaDragon @ github)
fcec9adbcd diagramStates should not be global; pass it into functions; minor comment fixes 2022-11-15 09:19:27 -08:00
Ashley Engelund (weedySeaDragon @ github)
13f3008f82 diagramClasses no longer needs to be cached; mermaidAPI no longer calls it repeatedly 2022-11-15 09:18:10 -08:00
Ashley Engelund (weedySeaDragon @ github)
6090a1f65a (minor) import expectTypeOf in spec 2022-11-15 09:14:00 -08:00
Ashley Engelund (weedySeaDragon @ github)
1ecd4a551d (minor) fix JSdoc tag 2022-11-15 09:13:27 -08:00
Ashley Engelund (weedySeaDragon @ github)
c6db0524bd + spec stateRenderer-v2.js getClasses() to verify it returns a {} 2022-11-15 09:01:34 -08:00
Ashley Engelund (weedySeaDragon @ github)
d3f5474f38 (minor) fix JSdoc types in comments 2022-11-15 08:59:01 -08:00
Ashley Engelund (weedySeaDragon @ github)
9996e53e24 (minor) add comments, remove duplicated line 2022-11-15 08:50:20 -08:00
Knut Sveidqvist
3b79ee35e0 Merge pull request #3780 from mermaid-js/sidv/mergeMaster
chore: Merge master to develop
2022-11-15 12:47:32 +01:00
Sidharth Vinod
b202b539bf Merge pull request #3765 from spier/feature/check-links-in-docs
Add GHA that will check links + Fix broken links
2022-11-15 14:17:18 +05:30
Sidharth Vinod
e27966c15f chore: Add master to link checker 2022-11-15 14:16:41 +05:30
Sidharth Vinod
18c27c6f1d chore: Add docs to redirect.ts 2022-11-15 11:13:54 +05:30
Ashley Engelund (weedySeaDragon @ github)
345eaade22 stateDB classes must be a {} not [] 2022-11-14 11:39:58 -08:00
Sidharth Vinod
82f63b056f feat: Redirect old documentation links. 2022-11-15 01:06:04 +05:30
Ashley Engelund (weedySeaDragon @ github)
ccd55a0bde add stateDiagram-v2 to list of graphs with classDefs 2022-11-14 11:24:59 -08:00
Sidharth Vinod
846a03663c fix(docs): ClassDiagram table 2022-11-14 22:15:34 +05:30
Sidharth Vinod
a88a467d45 sync 2022-11-14 22:14:27 +05:30
Sidharth Vinod
beab2278d8 feat: Async mermaid docs 2022-11-14 22:06:26 +05:30
Per Brolin
51a84eeb90 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2022-11-14 16:34:57 +01:00
Sidharth Vinod
ad6eba452c Merge branch 'develop' into sidv/mergeMaster
* develop:
  fix(deps): update dependency rollup to v3
2022-11-14 16:44:57 +05:30
Sidharth Vinod
eae88c51d2 Cleanup 2022-11-14 16:42:08 +05:30
Sidharth Vinod
752cc3a527 Merge pull request #3674 from mermaid-js/renovate/rollup-3.x
fix(deps): update dependency rollup to v3
2022-11-14 16:41:09 +05:30
Sidharth Vinod
051b4271d3 Cleanup docs 2022-11-14 15:24:47 +05:30
Sidharth Vinod
4decaf0308 chore: Fix tsdoc 2022-11-14 15:17:13 +05:30
Sidharth Vinod
9144fa390f cleanup 2022-11-14 15:05:58 +05:30
Sidharth Vinod
c354d9e1e3 Merge remote-tracking branch 'origin/master' into sidv/mergeMaster
* origin/master: (76 commits)
  fix: `use-inline-specifiers-lockfile-format` to pnpm
  Hacky fix for pnpm issue
  chore: Cleanup pakage.json, fix jisonLint
  feat: Switch CDN
  Updated README-files
  Updated URL
  Updated release
  Increased package version to 9.2.2
  Added registerExternalDiagram for Mindmap
  fix: Remove registerDiagram export
  fix versions
  feat: Add config validator MVP
  Apply suggestions from code review
  fix: Import path in viewer.js
  Cleanup package.json
  Restore package and lock from master
  fix pnpm lock
  Fix pnpm-lock
  Fixing applitools batches
  Fix pnpm
  ...
2022-11-14 14:57:08 +05:30
Sidharth Vinod
77a326dedf Merge Master 2022-11-14 14:51:23 +05:30
Sidharth Vinod
2d9bdedaf5 Merge branch 'develop' into sidv/mergeMaster
* develop:
  chore(deps): update all non-major dependencies
  fix(deps): update all non-major dependencies
  fix: `sourceLinkTemplate` in typedoc
  only call getClasses if the diagram renderer supports it
  fix typo
  merge fix: get classDefs only if diagram is in CLASSDEF_DIAGRAMS
  use lodash isEmpty instead of method defined in utils
  chore: Fix cspell
  fix: Type of DiagramStyleClassDef, general cleanup
  change spec descriptions to active voice (= shorter b/c 'should' isn't needed)
  functions and specs: removeExistingElements
  functions and specs: createUserstyles; minor changes
  functions and specs: createCssStyles, appendDivSvgG,cleanUpSvgCode, putIntoIFrame [for render]
  add MockedD3.ts
  const isSandboxed, isLooseSecurityLevel, fontFamily; a few more CONSTs
  more meaningful var names; move related lines together; const idSelector
  comment the main steps (prepare to break into functions that can be tested)
  render: define const iFrameId, enclosingDivID and _selector to use in function
  specs: encodeEntities, decodeEntities
  render: constants
2022-11-14 13:57:09 +05:30
renovate[bot]
04a99a7cd3 fix(deps): update dependency rollup to v3 2022-11-14 07:51:09 +00:00
Sidharth Vinod
0763590c24 Merge pull request #3791 from mermaid-js/renovate/all-minor-patch
chore(deps): update all non-major dependencies (minor)
2022-11-14 13:18:10 +05:30
Knut Sveidqvist
dfb1440ae0 Merge pull request #3684 from weedySeaDragon/chore/3648-mermaidAPI-render--dry-cleanup-specs
chore: clean up code in mermaidAPI render() and write specs/tests
2022-11-14 08:42:25 +01:00
renovate[bot]
a1e2df8466 chore(deps): update all non-major dependencies 2022-11-14 05:28:23 +00:00
renovate[bot]
20613beb8a fix(deps): update all non-major dependencies 2022-11-14 05:25:07 +00:00
Knut Sveidqvist
292cbd75a8 Merge pull request #3783 from mermaid-js/sidv/cleanupPackage.json
chore: Housekeeping
2022-11-11 09:21:43 +01:00
Sidharth Vinod
88d3fdfb8f fix: use-inline-specifiers-lockfile-format to pnpm 2022-11-11 13:29:59 +05:30
Sidharth Vinod
1f68ea4058 Hacky fix for pnpm issue 2022-11-11 02:41:03 +05:30
Sidharth Vinod
ab92b5c100 chore: Cleanup pakage.json, fix jisonLint 2022-11-11 01:54:29 +05:30
Alois Klink
195f3a5feb ci(lint-checker): lock down permissions
Lock down the GITHUB_TOKEN permissions.

lychee only needs `GITHUB_TOKEN` to read public
data without hitting rate-limits, so having read-only
access to contents should be fine.
2022-11-10 18:23:03 +00:00
Knut Sveidqvist
dcab2c552f Merge pull request #3777 from mermaid-js/sidv/fixCDN
Switch CDN to unpkg.com
2022-11-10 09:58:58 +01:00
Sidharth Vinod
a83f88bdf1 chore: Merge master to develop 2022-11-10 13:51:53 +05:30
Knut Sveidqvist
c781545a40 #3778 Adding a hexgon shape 2022-11-09 20:10:31 +01:00
Sidharth Vinod
791dbe01a2 fix: sourceLinkTemplate in typedoc 2022-11-09 23:48:26 +05:30
Alois Klink
fcd93794ce chore(docs): sync generated markdown docs
Sync generated markdown docs by running
`pnpm --filter mermaid run docs:build`
2022-11-09 17:12:36 +00:00
Sidharth Vinod
0af36f12b7 feat: Switch CDN 2022-11-09 22:38:21 +05:30
Per Brolin
dd5d99eacc Merge branch 'release/9.2.2' 2022-11-09 16:46:44 +01:00
Ashley Engelund (weedySeaDragon @ github)
750029f557 merge MERMAID/develop 2022-11-09 07:45:22 -08:00
Per Brolin
ccfaea8e3f Updated README-files 2022-11-09 16:34:31 +01:00
Per Brolin
0b9b2cfadc Updated URL 2022-11-09 16:26:53 +01:00
Per Brolin
526113517b Updated release 2022-11-09 16:20:28 +01:00
Per Brolin
fb8149b2ca Increased package version to 9.2.2 2022-11-09 16:02:49 +01:00
Sebastian Spier
7350b63e40 Remove unnecesary comment 2022-11-08 13:53:41 +01:00
Sebastian Spier
6543ece92c Fix display label/path for explaining where the docs are located 2022-11-08 13:53:18 +01:00
Sebastian Spier
62f3c4baa6 Revert "Running 'pnpm --filter mermaid run docs:build' as suggested by the previously failing 'lint' GHA"
This reverts commit 66c543cb8f.
2022-11-07 23:07:04 +01:00
Sebastian Spier
66c543cb8f Running 'pnpm --filter mermaid run docs:build' as suggested by the previously failing 'lint' GHA 2022-11-07 23:00:40 +01:00
Sebastian Spier
a19622c807 Revert content of /docs to what is on the develop branch 2022-11-07 22:48:44 +01:00
Sebastian Spier
013ff182c9 Run Prettier 2022-11-07 20:35:00 +01:00
Sebastian Spier
b5d335711f Fixing link to d3 time formatting 2022-11-07 20:23:24 +01:00
Sebastian Spier
5e41b68a3a Remove link to chrome web store app that doesn't exist any more 2022-11-07 17:46:26 +01:00
Sebastian Spier
3b901c4459 More consistent linking: Use the full filename README.md (in config/setup) 2022-11-07 17:00:54 +01:00
Sebastian Spier
f8234369c7 Don't check files that are generated during the build via 'pnpm docs:code' 2022-11-07 16:59:11 +01:00
Sidharth Vinod
0d8f09cec5 Merge pull request #3755 from mermaid-js/sidv/docsDev
Live edits for Docs
2022-11-07 21:22:25 +05:30
Sebastian Spier
23fe5ebddb [docs] To run the docs locally I needed to cd into packages/mermaid. 'docs:dev' is defined in packages/mermaid/package.json 2022-11-07 11:05:02 +01:00
Sebastian Spier
4a45112344 Replace links to '_sidebar.md' with '.vitepress/config.ts' 2022-11-07 10:43:46 +01:00
Sidharth Vinod
91bbab9e2d Lint 2022-11-07 14:30:20 +05:30
Sidharth Vinod
c6287b640d Merge remote-tracking branch 'origin/develop' into sidv/docsDev
* origin/develop:
  chore(deps): update all non-major dependencies
  chore(deps): update all non-major dependencies
  docs: Fix relative links to documentation files
  docs: Update references to default config in directives page
  Fixing applitools batches
  chore: Sync docs
  Fix link to CSS classes
2022-11-07 14:11:06 +05:30
Knut Sveidqvist
c5fe23c26f Merge pull request #3753 from mermaid-js/sidv/cspell
Fix CSpell
2022-11-07 09:40:23 +01:00
Sidharth Vinod
1304e8b00b chore: Move from bin to scripts. 2022-11-07 14:06:35 +05:30
renovate[bot]
603b537ee1 chore(deps): update all non-major dependencies 2022-11-07 07:48:40 +00:00
renovate[bot]
2a45d71efd chore(deps): update all non-major dependencies 2022-11-07 05:36:39 +00:00
Sebastian Spier
5d935c44e7 Add newline 2022-11-06 22:48:31 +01:00
Sebastian Spier
e653d656b3 Fix links that the link checker could not test (for various reasons) 2022-11-06 22:37:47 +01:00
Sebastian Spier
46fc13a5bc Add GHA that checks links (using lychee). Incl list of links to ignore. 2022-11-06 22:35:45 +01:00
Alois Klink
f3d8ada0ca Merge pull request #3760 from spier/patch-1
Fix link relative links to documentation files
2022-11-06 16:28:02 +00:00
Sebastian Spier
705d88360e docs: Fix relative links to documentation files
I noticed that the link to `Tutorials.md` was broken in this README.
While fixing this I found some other broken links in the same section
of the README, that I tried to fix as well.
(I suspect these files were moved at some point)
2022-11-06 16:21:23 +00:00
avijit1258
9e3601ae48 comments in states are skipped now 2022-11-06 01:50:29 -07:00
Sidharth Vinod
3aa2885692 Merge pull request #3738 from raptor0929/patch-1
docs: Update references to default config in directives page
2022-11-04 23:19:27 +05:30
flaura
c56854941e docs: Update references to default config in directives page 2022-11-04 12:54:29 -04:00
Knut Sveidqvist
357a928cce Fixing applitools batches 2022-11-04 13:05:46 +01:00
Per Brolin
1d9fefe7ac Added pie 2022-11-04 12:44:13 +01:00
Sidharth Vinod
d4cc366e86 chore: fix lint 2022-11-04 11:46:48 +05:30
Sidharth Vinod
3d7883f021 Merge pull request #3752 from hugovk/patch-1
Fix link to CSS classes
2022-11-04 11:46:04 +05:30
Sidharth Vinod
41f228c3ff chore: Sync docs 2022-11-04 11:45:20 +05:30
Sidharth Vinod
da447ae5d0 Merge remote-tracking branch 'origin/develop' into sidv/docsDev
* origin/develop: (24 commits)
  chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" (#3751)
  chore: Remove Security from config
  Add Security Policy
  chore: cSpell
  Update contributors
  chore(docs): Update live editor links
  update user story link
  chore: lint
  feat(gantt): Add option 'tickInterval' for custom tick interval
  Convert attr to classed
  Convert attr to style
  Discussions are now available
  Make colors required
  make setup not required
  Update theme_proposal.yml
  Update syntaxt_proposal.yml
  Update diagram_proposal.yml
  Update bug_report.yml
  Delete question.md
  Create syntaxt_proposal.yml
  ...
2022-11-04 11:29:49 +05:30
Sidharth Vinod
f295424087 Merge remote-tracking branch 'origin/develop' into sidv/cspell
* origin/develop:
  chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" (#3751)
2022-11-04 02:13:28 +05:30
Sidharth Vinod
daa85b4279 rename file 2022-11-04 02:09:14 +05:30
Sidharth Vinod
e7369acaea jq -> node 2022-11-04 02:05:50 +05:30
Sidharth Vinod
3ad17b79a6 CSpell format 2022-11-04 01:41:03 +05:30
Hugo van Kemenade
6879a15834 Fix link to CSS classes 2022-11-03 21:48:49 +02:00
Ashley Engelund (weedySeaDragon @ github)
607fe88d43 Merge remote-tracking branch 'MERMAID/develop' into chore/3648-mermaidAPI-render--dry-cleanup-specs
# Conflicts:
#	cSpell.json
2022-11-03 12:15:22 -07:00
Ashley Engelund
b63828f88d chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" (#3751)
* fix misspelled "mermiad" -> 'mermaid' in cSpell.json

* correct misspelled word caught by cspell
2022-11-03 20:03:52 +01:00
Ashley Engelund (weedySeaDragon @ github)
794b642ff8 merge develop into branch. update cSpell.json; run pnpm install 2022-11-03 10:44:04 -07:00
Sidharth Vinod
4870d37027 chore: Remove Security from config 2022-11-03 11:17:24 +05:30
Sidharth Vinod
fb855bfcfa Merge branch 'pr/Andre601/2739' into develop
* pr/Andre601/2739:
  Add Security Policy
  chore: lint
  Discussions are now available
  Make colors required
  make setup not required
  Update theme_proposal.yml
  Update syntaxt_proposal.yml
  Update diagram_proposal.yml
  Update bug_report.yml
  Delete question.md
  Create syntaxt_proposal.yml
  Create theme_proposal.yml
  Create diagram_proposal.yml
  Switch to bug_report.yml
  Create config.yml
2022-11-03 11:15:35 +05:30
Sidharth Vinod
c46a3b09b1 Add Security Policy 2022-11-03 10:53:15 +05:30
Sidharth Vinod
549c2b8d04 Merge pull request #3678 from emersonbottero/develop
Improved New Documentation
2022-11-02 14:27:16 +05:30
Sidharth Vinod
05fd856d62 chore: cSpell 2022-11-02 13:47:42 +05:30
Ashley Engelund (weedySeaDragon @ github)
6d2441dff6 only call getClasses if the diagram renderer supports it 2022-11-01 12:08:59 -07:00
Ashley Engelund (weedySeaDragon @ github)
46ee4e426f fix typo 2022-11-01 10:19:17 -07:00
Ashley Engelund (weedySeaDragon @ github)
469d0f87be merge fix: get classDefs only if diagram is in CLASSDEF_DIAGRAMS 2022-11-01 10:12:48 -07:00
Ashley Engelund (weedySeaDragon @ github)
b20602672e use lodash isEmpty instead of method defined in utils 2022-11-01 10:12:08 -07:00
Ashley Engelund (weedySeaDragon @ github)
6563c0292a merge upstream/develop into branch 2022-11-01 09:53:41 -07:00
Sidharth Vinod
86f835cfc8 Merge branch 'develop' into pr/emersonbottero/3678
* develop:
  chore(docs): Update live editor links
  update user story link
  feat(gantt): Add option 'tickInterval' for custom tick interval
  Convert attr to classed
  Convert attr to style
2022-11-01 21:01:58 +05:30
Sidharth Vinod
4699ba3e71 Update contributors 2022-11-01 20:59:35 +05:30
Sidharth Vinod
7c07bc02af Merge pull request #3741 from 6footGeek/bug/3740_update_user_story_link_in_readme
update user story link for #3740
2022-11-01 19:08:56 +05:30
Sidharth Vinod
1a0d333e2c chore(docs): Update live editor links 2022-11-01 19:07:13 +05:30
Knut Sveidqvist
cd9fac78b8 Merge pull request #3722 from CalebUsadi/fix/convert_attr_to_style
Fix/convert attr to style in er graph
2022-11-01 13:55:27 +01:00
Knut Sveidqvist
4c779beda9 Merge pull request #3729 from DarkNami/feature/1598_add_tick_interval
feat(gantt): Add option 'tickInterval' for custom tick interval
2022-11-01 13:50:38 +01:00
Andy Barlow
114262d353 update user story link 2022-11-01 11:31:10 +00:00
Sidharth Vinod
015e22acf8 feat: Add live updates to docs. 2022-11-01 12:04:34 +05:30
Sidharth Vinod
70ec91d0db docs: Change yarn to pnpm 2022-11-01 10:34:45 +05:30
Sidharth Vinod
61b7033c65 fix: Lint 2022-10-31 22:18:57 +05:30
Sidharth Vinod
a9234785ab chore: Configure typedoc source links 2022-10-31 22:15:07 +05:30
Sidharth Vinod
b735c21a33 chore: Remove test branch 2022-10-31 22:08:04 +05:30
Sidharth Vinod
83fb0f446f Fix base 2022-10-31 22:02:47 +05:30
Sidharth Vinod
78565d16c1 Add pnpm 2022-10-31 21:54:57 +05:30
Sidharth Vinod
2c5a2072b8 Fix lint 2022-10-31 21:51:56 +05:30
Sidharth Vinod
56c2fe3eb1 Publish 2022-10-31 21:46:48 +05:30
Sidharth Vinod
f36e0ef941 chore: Add actions deploy 2022-10-31 21:44:09 +05:30
Sidharth Vinod
c72bdc83c8 chore: Cleanup lintStaged 2022-10-31 20:30:05 +05:30
Sidharth Vinod
3b7463e5ed Precommit Test 2022-10-31 20:27:43 +05:30
Sidharth Vinod
1e410de4cd Precommit Test 2022-10-31 19:54:30 +05:30
Sidharth Vinod
d08701e5c4 Precommit Test 2022-10-31 19:52:57 +05:30
Sidharth Vinod
359a570d77 Precommit Test 2022-10-31 19:51:41 +05:30
Sidharth Vinod
24198ed63e Merge remote-tracking branch 'origin/develop' into pr/emersonbottero/3678
* origin/develop:
  chore(deps): update all non-major dependencies
  chore(deps): update all non-major dependencies
  chore: Update bug report template
2022-10-31 19:43:53 +05:30
renovate[bot]
77782fdbc7 chore(deps): update all non-major dependencies 2022-10-31 12:56:18 +00:00
renovate[bot]
a15b228d3f chore(deps): update all non-major dependencies 2022-10-31 06:48:56 +00:00
Sidharth Vinod
450c308e4f Update packages/mermaid/.lintstagedrc.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-10-31 12:04:01 +05:30
Sidharth Vinod
d1e235a08b chore: Ignore packages/mermaid/src/docs/config/setup 2022-10-31 12:01:56 +05:30
Sidharth Vinod
85444dbee9 Merge branch 'develop' of https://github.com/emersonbottero/mermaid into pr/emersonbottero/3678
* 'develop' of https://github.com/emersonbottero/mermaid:
  Apply suggestions from code review
2022-10-31 11:57:58 +05:30
Sidharth Vinod
01ac770037 chore: Review comments 2022-10-31 11:57:50 +05:30
Sidharth Vinod
3675682674 Apply suggestions from code review
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-10-31 11:56:17 +05:30
Sidharth Vinod
a7c9fe77c5 Update packages/mermaid/src/docs.mts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-10-31 11:50:03 +05:30
Emerson Bottero
f87d1630d1 chore: fix most of aloisklink reviews 2022-10-30 21:22:38 -03:00
Sidharth Vinod
ec10316346 chore: lint 2022-10-30 00:07:12 +05:30
Sidharth Vinod
449dfe8b8e Merge remote-tracking branch 'origin/develop' into pr/Andre601/2739
* origin/develop: (1249 commits)
  docs(git): Regenerate
  docs(git): Add a quoted branch name example
  chore: Update bug report template
  fix(git): Support quoted branch names
  Ensure example code and rendered output are synced
  Change fill attribute to style.
  chore(deps): update all non-major dependencies
  chore(deps): pin dependencies
  fix typo
  Update sequenceDiagram.md
  style: fix eslint-plugin-tsdoc linting issues
  style: lint typescript with eslint-plugin-tsdoc
  ran linter
  Update packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js
  Ran linter (npm run lint:fix)
  added curly rule to eslintrc
  fix: Add default arg to options
  Theme update from release 9.2
  testcode
  Delete dependabot.yml
  ...
2022-10-30 00:03:33 +05:30
Sidharth Vinod
4adf79451e Merge remote-tracking branch 'origin/master' into develop
* origin/master:
  chore: Update bug report template
2022-10-29 23:54:05 +05:30
Sidharth Vinod
fed32607de chore: Update docs build vitepress command 2022-10-29 01:14:11 +05:30
Sidharth Vinod
8f5fe38212 chore: format blockquote 2022-10-29 00:56:01 +05:30
Sidharth Vinod
f3cf6d638d chore: Add prettier to docs:code 2022-10-29 00:49:18 +05:30
Sidharth Vinod
e1d9d0b990 chore: Fix doc links 2022-10-29 00:46:25 +05:30
Sidharth Vinod
6e5adbf0ba Merge remote-tracking branch 'origin/develop' into pr/emersonbottero/3678
* origin/develop:
  fix: relative paths
  Update packages/mermaid/src/docs.mts
  docs: Fix docs path in Contributing.md
  docs: Add link to docs source
2022-10-29 00:46:10 +05:30
Sidharth Vinod
38fb926ea8 Merge pull request #3612 from mermaid-js/sidv/linkDocsSource
docs: Add link to docs source
2022-10-29 00:23:12 +05:30
Sidharth Vinod
61e20ce48a chore: update cspell.json 2022-10-29 00:20:54 +05:30
Sidharth Vinod
b0b4cccc96 fix: Team members 2022-10-29 00:16:59 +05:30
Sidharth Vinod
13e5c5ba72 chore: Fix vitepress build 2022-10-28 23:33:57 +05:30
ishuen
81d1dd7465 Remove extra arrow and adjust cross position 2022-10-28 17:01:57 +08:00
Sidharth Vinod
b7d24c8325 chore: Fix favicon 2022-10-28 14:28:57 +05:30
Sidharth Vinod
d7bf92b39f fix: Use AST to replace notes & warnings. 2022-10-28 14:13:24 +05:30
Sidharth Vinod
6b3892baf1 Merge remote-tracking branch 'origin/develop' into pr/emersonbottero/3678
* origin/develop:
  docs(git): Regenerate
  docs(git): Add a quoted branch name example
  fix(git): Support quoted branch names
  Ensure example code and rendered output are synced
  Fill inheritance arrow with background color
2022-10-28 13:02:52 +05:30
Sidharth Vinod
c1529bb7fc Merge pull request #3726 from gibson042/gh-3725-gitgraph-quoted-branch-names
fix(git): Support quoted branch names
2022-10-28 12:44:03 +05:30
Richard Gibson
033f88e8bb docs(git): Regenerate 2022-10-27 23:41:07 -04:00
Richard Gibson
6293a583a4 docs(git): Add a quoted branch name example 2022-10-27 23:35:25 -04:00
Emerson Bottero
ec5568b943 chore: more revision fixes 2022-10-27 19:58:39 -03:00
Sidharth Vinod
f1bfdd4506 Merge pull request #3721 from marcjansen/patch-1
Ensure example code and rendered output are synced
2022-10-27 23:25:11 +05:30
DarkNami
3166f689f9 feat(gantt): Add option 'tickInterval' for custom tick interval
See issue #1598
2022-10-27 16:47:42 +08:00
Ashish Jain
264edddc71 Merge pull request #3543 from vallsv/empty-aroow-for-inheritance
Fill inheritance arrow with background color
2022-10-26 23:13:38 +02:00
Richard Gibson
caf95dec86 fix(git): Support quoted branch names
Fixes #3725
2022-10-26 16:58:09 -04:00
Emerson Bottero
289ac52900 fix : CQ 2022-10-26 17:51:54 -03:00
Emerson Bottero
455839c0b9 fix: Merge conflicts 2022-10-26 16:51:22 -03:00
Emerson Bottero
47e1f611d8 fix: lint and spell errors 2022-10-26 16:24:06 -03:00
Knut Sveidqvist
fb9127ecc6 Merge pull request #3644 from weedySeaDragon/feat/1952-state--classDef-states
feat: [State diagram] Add classDefs and classes to states
2022-10-26 21:22:58 +02:00
Caleb Usadi
a59f49c04f Convert attr to classed 2022-10-26 00:17:20 -04:00
Caleb Usadi
58d692e6f5 Convert attr to style 2022-10-26 00:16:43 -04:00
Emerson Bottero
b62873a195 sync last changes 2022-10-25 17:54:07 -03:00
Marc Jansen
6eb2ce2706 Ensure example code and rendered output are synced 2022-10-25 21:14:13 +02:00
Ashley Engelund (weedySeaDragon @ github)
c413119064 merge MERMAID/develop into branch; fix ts/es lint errors 2022-10-25 08:38:57 -07:00
Ashley Engelund (weedySeaDragon @ github)
599d035daf merge MERMAID/develop into branch 2022-10-25 07:42:57 -07:00
Knut Sveidqvist
10ba3b612e Merge pull request #3719 from CalebUsadi/fix/3711_er_fill_attribute
Change fill attribute to style
2022-10-25 15:01:35 +02:00
Knut Sveidqvist
3dca7d10d5 Merge pull request #3668 from mermaid-js/3659_height_handling
#3659 Adding height when not using maxWidth
2022-10-25 14:48:50 +02:00
Knut Sveidqvist
84628134ed Merge pull request #3652 from uttk/bug/3651_git_graph_option
fix: Fix useMaxWidth option for git graph
2022-10-25 14:48:18 +02:00
Knut Sveidqvist
f4bb978a87 Merge pull request #3649 from DKurilo/feat/3247-statements-aliases
add statement aliases for ER diagram
2022-10-25 14:46:29 +02:00
Knut Sveidqvist
27a68819bc Merge pull request #3647 from DKurilo/feat/1414-notes-to-class-diagram
add the way to add notes to class diagram
2022-10-25 14:45:03 +02:00
Knut Sveidqvist
427eaebd79 Merge pull request #3636 from maiermic/bug/3263-border_attribute_does_not_work_in_a_certain_writing_style
fix: border attribute does not work in a certain writing style
2022-10-25 14:30:29 +02:00
Knut Sveidqvist
3603cc883c Merge pull request #3609 from jasmaa/feature/3593_pie_slice_ordering
Order pie chart slices clockwise by order of entries
2022-10-25 14:24:44 +02:00
Caleb Usadi
fc24373667 Change fill attribute to style. 2022-10-24 23:41:34 -04:00
Knut Sveidqvist
2e571a18bd Merge remote-tracking branch 'origin/develop' into develop 2022-10-24 10:38:45 +02:00
renovate[bot]
728d022f52 chore(deps): update all non-major dependencies 2022-10-24 07:36:58 +00:00
Knut Sveidqvist
fc829a4bde Merge branch 'release_9.2.0_buggfixes' into develop 2022-10-24 08:43:01 +02:00
renovate[bot]
663edabb14 chore(deps): pin dependencies 2022-10-24 04:32:21 +00:00
Sidharth Vinod
22587b9959 Merge pull request #3708 from aloisklink/style/use-eslint-plugin-tsdoc
Use `eslint-plugin-tsdoc` for TypeScript files instead of `eslint-plugin-jsdoc`
2022-10-23 18:16:42 +05:30
Alois Klink
b9f0fb9cd2 Merge pull request #3707 from imgss/patch-1
Update sequenceDiagram.md
2022-10-23 12:59:32 +01:00
shuaisguo
f788ab54f3 fix typo 2022-10-23 10:34:26 +08:00
IMGSS
a1c6d76a15 Update sequenceDiagram.md 2022-10-22 22:43:53 +08:00
Alois Klink
7e5689d0b9 style: fix eslint-plugin-tsdoc linting issues
Mostly, fixing these eslint-plugin-tsdoc style issues involved:
- Moving types from JSDoc to TypeScript types
- Making sure that all `@param paramName - description`
  had both a `-` and a description.

Occasionally, for some functions, if the JSDoc was completely
empty, I just deleted it, since there was no point in keeping it.
2022-10-22 13:30:50 +01:00
Emerson Bottero
563aff2d72 fix: gh pages workflow 2022-10-20 23:03:17 -03:00
Alois Klink
e6f19ff461 style: lint typescript with eslint-plugin-tsdoc 2022-10-20 20:23:28 +01:00
Knut Sveidqvist
f2279d48d8 Merge pull request #3698 from jeroenekkelkamp/chore/3697-eslint-curly
Chore/3697 eslint curly
2022-10-20 13:06:38 +02:00
Jeroen Ekkelkamp
52c5ae6d8e ran linter 2022-10-20 09:14:38 +02:00
Emerson Bottero
870cfdc44c docs: transform custom blocks, warning notes jison 2022-10-20 02:13:18 -03:00
Emerson Bottero
4b64775fde docs: small fixes 2022-10-20 00:13:46 -03:00
Emerson Bottero
4cd1e9a462 docs: contribute with vitepress 2022-10-20 00:06:46 -03:00
Jeroen Ekkelkamp
55d2c928ee Update packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-10-19 21:00:40 +02:00
Jeroen Ekkelkamp
0c4edd332c Ran linter (npm run lint:fix) 2022-10-19 20:06:54 +02:00
Jeroen Ekkelkamp
3d140a7411 added curly rule to eslintrc 2022-10-19 20:04:45 +02:00
Sidharth Vinod
2d11192c3a Merge pull request #3688 from isinek/bug/3655_gantt_demo_diagrams_fail
fix: gantt demo diagrams (#3655)
2022-10-19 23:04:52 +05:30
Sidharth Vinod
3e76edcbac chore: Fix cspell 2022-10-19 22:55:19 +05:30
Sidharth Vinod
f4fa68031e Merge branch 'develop' into pr/weedySeaDragon/3684
* develop: (21 commits)
  Theme update from release 9.2
  testcode
  Delete dependabot.yml
  changed cspell config in eslint from warn to error
  Update .eslintrc.json
  fix cypress tests for erDiagram, add eslint-plugin-no-only-tests plugin because of this comment: https://github.com/mermaid-js/mermaid/pull/3647#issuecomment-1281163858
  chore: Add CORS to vite dev
  configured 3 more words in cspell.json
  removed eslint-ignore statements
  chore(deps): pin dependencies
  chore(deps): update all non-major dependencies (#3671)
  style(sequence): rename lineStarty to lineStartY
  style: fix @cspell/eslint warnings
  test(gantt): remove incorrect comment
  added words to cspell ignore words list, removed mywords.txt
  update: open graph image
  fix: prettier
  remove id attribute
  feat(issue#3675): added open graph meta tags
  updated eslint config and fixed cspell warnings
  ...
2022-10-19 22:48:57 +05:30
Sidharth Vinod
377b22e82b fix: Type of DiagramStyleClassDef, general cleanup 2022-10-19 22:31:37 +05:30
Knut Sveidqvist
4838d63455 Theme update from release 9.2 2022-10-19 14:37:48 +02:00
Knut Sveidqvist
904c011baf Merge remote-tracking branch 'origin/develop' into develop 2022-10-19 14:33:55 +02:00
Knut Sveidqvist
352dd5dcf7 testcode 2022-10-19 14:32:28 +02:00
Sidharth Vinod
c1f51175a1 Delete dependabot.yml 2022-10-19 00:21:52 +05:30
Sidharth Vinod
06b5c192b4 Merge pull request #3604 from devcer/feat/3601-cspell-configuration
Added and configured cspell plugin to eslint
2022-10-19 00:18:06 +05:30
devcer
6f19af2371 changed cspell config in eslint from warn to error 2022-10-18 23:38:30 +05:30
Santosh Viswanatham
c230ff04cb Update .eslintrc.json 2022-10-18 21:03:18 +05:30
Santosh Viswanatham
c71b6e31f7 Merge branch 'develop' into feat/3601-cspell-configuration 2022-10-18 21:02:38 +05:30
Sidharth Vinod
017fc483e7 Merge branch 'develop' of https://github.com/emersonbottero/mermaid into pr/emersonbottero/3678
* 'develop' of https://github.com/emersonbottero/mermaid:
  docs: fix layout problem
  docs: added warning and notes
  docs: added warning and notes
  docs: added warning and notes
  docs: small improvements
2022-10-18 12:29:03 +05:30
Sidharth Vinod
f2571e9930 fix: Live editor links 2022-10-18 12:28:48 +05:30
Sidharth Vinod
111354dd10 Merge pull request #3690 from DKurilo/test-it-only-rule
add eslint-plugin-no-only-tests plugin
2022-10-18 09:26:24 +05:30
Emerson Bottero
66ea491aff docs: fix layout problem 2022-10-18 00:26:36 -03:00
Emerson Bottero
e95eaddf8a docs: added warning and notes 2022-10-18 00:07:14 -03:00
Emerson Bottero
d296049d19 docs: added warning and notes 2022-10-18 00:05:27 -03:00
Emerson Bottero
c45bf055b6 docs: added warning and notes 2022-10-17 23:58:51 -03:00
Emerson Bottero
c8b377bf74 docs: small improvements 2022-10-17 19:32:47 -03:00
Dima Kurilo
20751a6496 fix cypress tests for erDiagram, add eslint-plugin-no-only-tests plugin because of this comment: https://github.com/mermaid-js/mermaid/pull/3647#issuecomment-1281163858 2022-10-17 13:20:17 -04:00
Sidharth Vinod
f6c167db84 Merge pull request #3679 from danangtomo/feat/3675_added_opengraph_meta
Added Open Graph meta tags
2022-10-17 22:15:35 +05:30
Dima Kurilo
75e11b1fde add basic render (cypress) test for classDiagram-v2 too 2022-10-17 12:33:23 -04:00
Dima Kurilo
cead1f36f4 add basic render (cypress test for notes 2022-10-17 12:13:22 -04:00
Dima Kurilo
3108e896b6 add renedering (cypress) tests 2022-10-17 12:03:51 -04:00
Dima Kurilo
d41efa413c add more docs 2022-10-17 09:58:04 -04:00
Dima Kurilo
5803d0abaf update docs 2022-10-17 09:46:10 -04:00
Ivan Sinek
53bc747e9d fix: gantt demo diagrams (#3655) 2022-10-17 14:42:48 +02:00
Sidharth Vinod
2fd94db686 chore: Add CORS to vite dev 2022-10-17 14:01:44 +05:30
devcer
8b64ad971a configured 3 more words in cspell.json 2022-10-17 09:41:59 +05:30
devcer
338e7e83cd removed eslint-ignore statements 2022-10-17 09:33:01 +05:30
devcer
fde3964b50 removed eslint-ignore statements 2022-10-17 09:31:58 +05:30
devcer
aad53f9e61 merged with master 2022-10-17 09:27:42 +05:30
renovate[bot]
17b72d565d chore(deps): pin dependencies 2022-10-17 03:12:28 +00:00
uttk
319f925bdd fix: Fixed git graph to use global setting if useMaxWidth option is not set 2022-10-17 03:07:10 +00:00
renovate[bot]
541de12690 chore(deps): update all non-major dependencies (#3671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-16 22:58:11 +02:00
Ashley Engelund (weedySeaDragon @ github)
ea86ef3995 change spec descriptions to active voice (= shorter b/c 'should' isn't needed) 2022-10-16 11:14:57 -07:00
Ashley Engelund (weedySeaDragon @ github)
fcba29f774 functions and specs: removeExistingElements 2022-10-16 11:08:01 -07:00
Ashley Engelund (weedySeaDragon @ github)
166dca55f2 functions and specs: createUserstyles; minor changes 2022-10-16 09:39:31 -07:00
Alois Klink
aa43cfb5ac style(sequence): rename lineStarty to lineStartY
Fixes @cspell/eslint warnings.
2022-10-16 10:24:36 +01:00
Alois Klink
989d716c36 style: fix @cspell/eslint warnings
Ignores some names of contributors, and adjusts some capitilization
spacing to fix all cspell warnings.
2022-10-16 10:23:23 +01:00
Alois Klink
720849a55e test(gantt): remove incorrect comment
This comment seems to have been accidentally added 7 years ago
in 6f96b5dd14
2022-10-16 10:01:36 +01:00
Ashley Engelund (weedySeaDragon @ github)
a3b8c301e2 functions and specs: createCssStyles, appendDivSvgG,cleanUpSvgCode, putIntoIFrame [for render] 2022-10-15 19:15:59 -07:00
Ashley Engelund (weedySeaDragon @ github)
d106d3d1b1 add MockedD3.ts 2022-10-15 19:14:56 -07:00
Ashley Engelund (weedySeaDragon @ github)
a26673c59a const isSandboxed, isLooseSecurityLevel, fontFamily; a few more CONSTs 2022-10-15 13:58:24 -07:00
Ashley Engelund (weedySeaDragon @ github)
5aff154740 more meaningful var names; move related lines together; const idSelector 2022-10-15 13:43:40 -07:00
Ashley Engelund (weedySeaDragon @ github)
2e86031f00 comment the main steps (prepare to break into functions that can be tested) 2022-10-15 13:27:15 -07:00
Ashley Engelund (weedySeaDragon @ github)
978bf4e0ff render: define const iFrameId, enclosingDivID and _selector to use in function 2022-10-15 13:19:58 -07:00
Ashley Engelund (weedySeaDragon @ github)
8aaa7b1ba3 specs: encodeEntities, decodeEntities 2022-10-15 13:14:01 -07:00
Ashley Engelund (weedySeaDragon @ github)
d248952d9e render: constants 2022-10-15 11:11:54 -07:00
Santosh Viswanatham
1f642ca9b6 Merge branch 'develop' into feat/3601-cspell-configuration 2022-10-15 19:48:08 +05:30
devcer
478c387491 added words to cspell ignore words list, removed mywords.txt 2022-10-15 19:43:07 +05:30
Danang Estutomoaji
f532843665 update: open graph image 2022-10-15 17:13:36 +07:00
Danang Estutomoaji
9ba1f7c1f6 fix: prettier 2022-10-15 17:04:12 +07:00
Danang Estutomoaji
b78dc246ec remove id attribute 2022-10-15 11:56:50 +07:00
Danang Estutomoaji
9251176f5e feat(issue#3675): added open graph meta tags 2022-10-15 11:48:02 +07:00
Emerson Bottero
0da56a1249 docs: new Documentation 2022-10-15 00:50:57 -03:00
Emerson Bottero
cbcf7f8a11 docs: new Documentation 2022-10-15 00:50:11 -03:00
renovate[bot]
9ac3992fd2 chore(deps): update all non-major dependencies (minor) (#3632)
* chore(deps): update all non-major dependencies

* chore: add `auto-install-peers` to `.npmrc`

* chore: Update lockfile

* Update docs/index.html

Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com>

* Update packages/mermaid/src/docs/index.html

Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com>

* Define integrity, crossorigin and referrerpolicy

* Define integrity, crossorigin and referrerpolicy

* chore: format

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2022-10-14 13:18:19 +02:00
Sidharth Vinod
069951a748 fix: docs 2022-10-14 13:03:27 +05:30
Sidharth Vinod
c913fc8407 Merge pull request #3643 from Some-Dood/refactor-handle-error
feat: make `parseError` function more type-safe
2022-10-14 10:02:23 +05:30
Knut Sveidqvist
4be66554b3 #3659 Adding height when not using maxWidth 2022-10-13 14:26:05 +02:00
Sidharth Vinod
d62c2d1e22 fix: relative paths 2022-10-13 13:51:27 +05:30
Sidharth Vinod
30a3a9ee53 Merge branch 'sidv/linkDocsSource' of https://github.com/mermaid-js/mermaid into sidv/linkDocsSource
* 'sidv/linkDocsSource' of https://github.com/mermaid-js/mermaid:
  Update packages/mermaid/src/docs.mts
2022-10-13 13:49:27 +05:30
Sidharth Vinod
0d5664cc9b Merge branch 'develop' into sidv/linkDocsSource
* develop: (36 commits)
  chore(deps): update actions/setup-node action to v3
  Remove inconsistent and deprecated semicolons
  chore(deps): update actions/checkout action to v3
  docs: Fix initial install step
  docs: Update twitter link
  chore: renovate lint
  Update renovate.json
  chore: Bump node to v18
  chore: Set node v16
  chore: Add volta
  chore(deps): add renovate.json
  Contrbution steps updated
  refactor: use `posix.join()` instead of replacing `\`
  Link added for local setup
  contribution.md updated
  fix: Fix eslint warnings
  fix: docs path in windows
  docs: Add twitter
  docs: Add version to doc index.html
  Update packages/mermaid/src/docs/n00b-gettingStarted.md
  ...
2022-10-13 13:48:36 +05:30
Sidharth Vinod
d03fdfdbca Update packages/mermaid/src/docs.mts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-10-13 13:48:00 +05:30
Sidharth Vinod
57b883c7dd Merge pull request #3605 from arpansaha13/sidv/fixWindowsPath
Fix windows paths for `docs:build`
2022-10-13 12:59:07 +05:30
Sidharth Vinod
af0f0ca526 Merge pull request #3657 from revolter/patch-1
Remove inconsistent and deprecated semicolons
2022-10-13 11:29:43 +05:30
Alois Klink
bc9ed8e1bd Merge pull request #3646 from mermaid-js/renovate/actions-setup-node-3.x
chore(deps): update actions/setup-node action to v3
2022-10-13 00:00:09 +01:00
renovate[bot]
673a2e8228 chore(deps): update actions/setup-node action to v3 2022-10-12 22:52:41 +00:00
Alois Klink
75c67ed948 Merge pull request #3645 from mermaid-js/renovate/actions-checkout-3.x
chore(deps): update actions/checkout action to v3
2022-10-12 23:51:51 +01:00
Iulian Onofrei
353895dceb Remove inconsistent and deprecated semicolons 2022-10-12 23:01:29 +03:00
uttk
627ddc0774 fix: Fix useMaxWidth option for git graph 2022-10-12 02:14:56 +00:00
Dima Kurilo
4fc3cc7aff add aliases '0+', '1+' and '1' 2022-10-11 21:57:00 -04:00
Dima Kurilo
3e1b235055 add tests 2022-10-11 19:37:05 -04:00
Dima Kurilo
44706bc32e add statement aliases for ER diagram 2022-10-11 19:02:43 -04:00
renovate[bot]
e5c85cbc64 chore(deps): update actions/checkout action to v3 2022-10-11 20:56:31 +00:00
Ashley Engelund (weedySeaDragon @ github)
589dd70356 common consts; add consts in stateRenderer-v2 (will esp. make theme usage easier) 2022-10-11 13:03:55 -07:00
Ashley Engelund (weedySeaDragon @ github)
85ba4549fb (minor) add "V2" to top level of v2 diagram spec 2022-10-11 13:02:49 -07:00
devcer
adf7702211 updated eslint config and fixed cspell warnings 2022-10-11 22:52:49 +05:30
Ashley Engelund (weedySeaDragon @ github)
ba71afcce5 diagram-v2: store results of stateDb.extract(), apply class to state; code cleanup 2022-10-11 10:19:28 -07:00
Ashley Engelund (weedySeaDragon @ github)
3c0727c744 diagram-v2 spec: added tests for labels, composite; fix typos, 2022-10-11 10:16:57 -07:00
Basti Ortiz
7391baae34 fix: ensure that ParseErrorFunction type alias is compile-time only 2022-10-12 01:14:09 +08:00
Basti Ortiz
4b31112bcb fix: apply new types to the Mermaid API 2022-10-12 01:07:17 +08:00
Basti Ortiz
17ff584d15 feat: account for the fact that an error may be a DetailedError 2022-10-12 01:06:31 +08:00
Ashley Engelund (weedySeaDragon @ github)
79f4eb2e32 stateDb: methods for classDef, (style) classes; update extract(); code cleanup + DRY 2022-10-11 09:53:45 -07:00
Basti Ortiz
e8cd3c0baf fix: use ParseErrorFunction alias for mocks 2022-10-12 00:53:10 +08:00
Basti Ortiz
15f31f9d95 feat: make parseError function more type-safe 2022-10-12 00:32:41 +08:00
Ashley Engelund (weedySeaDragon @ github)
370806365f parser: idStatement returns stmt: 'state'...; add classDef, class statements 2022-10-11 08:36:04 -07:00
Ashley Engelund (weedySeaDragon @ github)
15dd60ab85 state demo: add more diagrams, add explanatory text 2022-10-11 08:34:30 -07:00
Ashley Engelund (weedySeaDragon @ github)
d1f3b889d6 add cypress tests for classDefs and applying classes to states 2022-10-11 08:33:43 -07:00
Ashley Engelund (weedySeaDragon @ github)
7b7db4f60e (minor) API: removed unused flowRenderer import; add comment 2022-10-11 08:33:43 -07:00
Ashley Engelund (weedySeaDragon @ github)
965eae5f45 add spec for stateDB addStyleClass 2022-10-11 08:33:43 -07:00
Ashley Engelund (weedySeaDragon @ github)
278a19f87a state demo add classDefs to example with explanations; add some headers; update composite from docs 2022-10-11 08:33:43 -07:00
Ashley Engelund (weedySeaDragon @ github)
56f3fa6495 API: getClasses() with the diagram renderer (not flowchart renderer); add const 2022-10-11 08:33:43 -07:00
Dima Kurilo
f05f07e44f add the way to add notes to class diagram 2022-10-10 20:53:09 -04:00
Michael Maier
7e8631dd19 fix: vertex property props is overwritten instead of being merged with new value
Fixes #3263
2022-10-10 17:59:29 +02:00
jasmaa
98f4c2d3ae Update pie docs to reflect label order change 2022-10-09 22:20:59 -04:00
lemontreejs
2bb0cf17d1 refactor: use posix.join() instead of replacing \ 2022-10-09 21:03:57 +05:30
Sidharth Vinod
d3de78ffce Merge branch 'develop' into sidv/linkDocsSource
* develop:
  docs: Fix docs path in Contributing.md
2022-10-09 22:30:04 +08:00
Sidharth Vinod
8e93ffffc6 docs: Fix docs path in Contributing.md 2022-10-09 21:11:22 +08:00
Sidharth Vinod
c55add73f6 docs: Add link to docs source 2022-10-09 21:00:02 +08:00
jasmaa
053c966d5f Order pie chart slices clockwise by order of entries 2022-10-08 16:51:11 -04:00
Valentin Valls
1fa84a30c9 Fill inheritance arrow with background color 2022-10-08 19:05:27 +02:00
lemontreejs
622b441eb0 fix: docs path in windows 2022-10-08 20:06:57 +05:30
devcer
4d0da7fba0 Added and configured cspell plugin to eslint 2022-10-08 14:38:41 +05:30
Sidharth Vinod
6f05d4b05a fix: docs path in windows 2022-10-08 12:16:39 +08:00
Sidharth Vinod
ab5111e84f fix: Remove hard coded Path separator 2022-10-08 12:16:24 +08:00
Sidharth Vinod
563c51d431 Get base sha from PR 2022-10-03 14:49:35 +08:00
Sidharth Vinod
455c61b2cf Run doc lint only if files changed 2022-10-03 14:41:52 +08:00
Sidharth Vinod
0a547e524e Run doc lint only if files changed 2022-10-03 14:30:46 +08:00
Sidharth Vinod
9c5c85d34a Run doc lint only if files changed 2022-10-03 14:24:51 +08:00
Sidharth Vinod
8d6af3dfed split lint docs action 2022-10-03 14:21:54 +08:00
Sidharth Vinod
3bae25fe6b split lint docs action 2022-10-03 14:15:28 +08:00
Sidharth Vinod
1d8d677d81 fix: File location 2022-10-03 14:03:44 +08:00
Sidharth Vinod
75db08a60c fix(docs): Test auto commit 2022-10-03 12:05:48 +08:00
Sidharth Vinod
d367e832be fix(docs): Test auto commit 2022-10-03 12:00:59 +08:00
Sidharth Vinod
8d9800c727 fix(docs): Test auto commit 2022-10-03 11:57:19 +08:00
Sidharth Vinod
058f1c2edf chore: Update docs path 2022-10-03 11:55:33 +08:00
Sidharth Vinod
9425b8adc2 Merge remote-tracking branch 'upstream/develop' into sidv/autoBuildDocs
* upstream/develop: (81 commits)
  style(docs): fix prettier issues (extra newline)
  Corrected theme variables reference table layout
  Fix typos in README.md
  build: lint-staged docs in packages/mermaid/src/…
  chore(docs): run `pnpm run docs:build`
  build(docs): fix `pnpm run docs:{build,verify}`
  docs: replace `yarn` with `pnpm` in dev guide
  build: re-enable `prepare` script for husky setup
  build: update pre-commit rules to use `pnpm`
  Arrow tip aligned to edge of box
  updated pnpm-lock file
  ci(e2e): Skip pnpm cache if skipping cypress run
  ci(e2e): remove `headless` arg from cypress run
  build(dev): Fix dev server not showing mermaid.js
  Fixed sample test
  Adding example diagram as a template for a new diagram
  Removed test folder
  Returning the borders to the e2e tests
  Fix for tests
  Updated version
  ...
2022-10-03 11:51:14 +08:00
Sidharth Vinod
21caa3eb72 chore: Auto build docs if only src/docs is changed 2022-10-03 11:50:42 +08:00
Andre_601
fe9a1c59cb Discussions are now available 2022-09-15 01:39:57 +02:00
Andre_601
612a57bdf7 Make colors required 2022-09-15 01:28:59 +02:00
Andre_601
979a376855 make setup not required 2022-09-15 01:28:20 +02:00
Andre_601
13286f66fd Update theme_proposal.yml 2022-02-16 22:18:47 +01:00
Andre_601
9e0c5d1d14 Update syntaxt_proposal.yml 2022-02-16 22:17:54 +01:00
Andre_601
0f092acec3 Update diagram_proposal.yml 2022-02-16 22:16:13 +01:00
Andre_601
56c2f23393 Update bug_report.yml 2022-02-16 22:14:21 +01:00
Andre_601
33903bbf6d Delete question.md 2022-02-16 22:10:24 +01:00
Andre_601
96395c44e0 Create syntaxt_proposal.yml 2022-02-16 22:08:43 +01:00
Andre_601
036dc802dc Create theme_proposal.yml 2022-02-16 22:07:25 +01:00
Andre_601
15ac2f87a3 Create diagram_proposal.yml 2022-02-16 22:01:00 +01:00
Andre_601
8a5d9bbad3 Switch to bug_report.yml 2022-02-16 21:51:02 +01:00
Andre_601
2bcae96d0a Create config.yml 2022-02-16 21:35:33 +01:00
467 changed files with 19531 additions and 34972 deletions

View File

@@ -16,26 +16,27 @@
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:jsdoc/recommended",
"plugin:json/recommended",
"plugin:markdown/recommended",
"plugin:@cspell/recommended",
"prettier"
],
"plugins": ["@typescript-eslint", "html", "jest", "jsdoc", "json"],
"plugins": [
"@typescript-eslint",
"no-only-tests",
"html",
"jest",
"jsdoc",
"json",
"@cspell",
"lodash",
"unicorn"
],
"rules": {
"curly": "error",
"no-console": "error",
"no-prototype-builtins": "off",
"no-unused-vars": "off",
"jsdoc/check-indentation": "off",
"jsdoc/check-alignment": "off",
"jsdoc/check-line-alignment": "off",
"jsdoc/multiline-blocks": "off",
"jsdoc/newline-after-description": "off",
"jsdoc/tag-lines": "off",
"jsdoc/require-param-description": "off",
"jsdoc/require-param-type": "off",
"jsdoc/require-returns": "off",
"jsdoc/require-returns-description": "off",
"cypress/no-async-tests": "off",
"@typescript-eslint/ban-ts-comment": [
"error",
@@ -48,7 +49,45 @@
}
],
"json/*": ["error", "allowComments"],
"no-empty": ["error", { "allowEmptyCatch": true }]
"@cspell/spellchecker": [
"error",
{
"checkIdentifiers": false,
"checkStrings": false,
"checkStringTemplates": false
}
],
"no-empty": [
"error",
{
"allowEmptyCatch": true
}
],
"no-only-tests/no-only-tests": "error",
"lodash/import-scope": ["error", "method"],
"unicorn/better-regex": "error",
"unicorn/no-abusive-eslint-disable": "error",
"unicorn/no-array-push-push": "error",
"unicorn/no-for-loop": "error",
"unicorn/no-null": "error",
"unicorn/no-instanceof-array": "error",
"unicorn/no-typeof-undefined": "error",
"unicorn/no-unnecessary-await": "error",
"unicorn/no-unsafe-regex": "warn",
"unicorn/no-useless-promise-resolve-reject": "error",
"unicorn/prefer-array-find": "error",
"unicorn/prefer-array-flat-map": "error",
"unicorn/prefer-array-index-of": "error",
"unicorn/prefer-array-some": "error",
"unicorn/prefer-default-parameters": "error",
"unicorn/prefer-includes": "error",
"unicorn/prefer-negative-index": "error",
"unicorn/prefer-object-from-entries": "error",
"unicorn/prefer-string-starts-ends-with": "error",
"unicorn/prefer-string-trim-start-end": "error",
"unicorn/string-content": "error",
"unicorn/prefer-spread": "error",
"unicorn/no-lonely-if": "error"
},
"overrides": [
{
@@ -57,6 +96,29 @@
"no-console": "off"
}
},
{
"files": ["*.{js,jsx,mjs,cjs}"],
"extends": ["plugin:jsdoc/recommended"],
"rules": {
"jsdoc/check-indentation": "off",
"jsdoc/check-alignment": "off",
"jsdoc/check-line-alignment": "off",
"jsdoc/multiline-blocks": "off",
"jsdoc/newline-after-description": "off",
"jsdoc/tag-lines": "off",
"jsdoc/require-param-description": "off",
"jsdoc/require-param-type": "off",
"jsdoc/require-returns": "off",
"jsdoc/require-returns-description": "off"
}
},
{
"files": ["*.{ts,tsx}"],
"plugins": ["tsdoc"],
"rules": {
"tsdoc/syntax": "error"
}
},
{
"files": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"],
"rules": {

View File

@@ -3,9 +3,6 @@ contact_links:
- name: GitHub Discussions
url: https://github.com/mermaid-js/mermaid/discussions
about: Ask the Community questions or share your own graphs in our discussions.
- name: Security Vulnerability
url: https://github.com/mermaid-js/.github/blob/main/SECURITY.md
about: Report security issues confidentially.
- name: Slack
url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE
about: Join our Community on Slack for Help and a casual chat.

View File

@@ -1,18 +0,0 @@
version: 2
updates:
- package-ecosystem: npm
open-pull-requests-limit: 10
directory: /
target-branch: develop
versioning-strategy: increase
schedule:
interval: weekly
day: monday
time: '07:00'
- package-ecosystem: github-actions
directory: /
target-branch: develop
schedule:
interval: weekly
day: monday
time: '07:00'

View File

@@ -14,4 +14,5 @@ Make sure you
- [ ] :book: have read the [contribution guidelines](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
- [ ] :computer: have added unit/e2e tests (if appropriate)
- [ ] :notebook: have added documentation (if appropriate)
- [ ] :bookmark: targeted `develop` branch

View File

@@ -1,28 +0,0 @@
name: Documentation Checks
on:
push:
branches:
- develop
paths:
- 'packages/mermaid/src/docs/**/*'
pull_request:
branches:
- develop
paths:
- 'packages/mermaid/src/docs/**/*'
jobs:
spellcheck:
name: 'Docs: Spellcheck'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Check out the code
- uses: actions/setup-node@v1
name: Setup node
with:
node-version: '16'
- run: npm install -g cspell
name: Install cSpell
- run: cspell --config ./cSpell.json "packages/mermaid/src/docs/**/*.md" --no-progress
name: Run cSpell

44
.github/workflows/link-checker.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
# This Link Checker is run on all documentation files once per week.
# references:
# - https://github.com/lycheeverse/lychee-action
# - https://github.com/lycheeverse/lychee
name: Link Checker
on:
push:
branches:
- develop
- master
pull_request:
branches:
- master
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 8 * * *'
jobs:
linkChecker:
runs-on: ubuntu-latest
permissions:
# lychee only uses the GITHUB_TOKEN to avoid rate-limiting
contents: read
steps:
- uses: actions/checkout@v3
- name: Restore lychee cache
uses: actions/cache@v3
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
restore-keys: cache-lychee-
- name: Link Checker
uses: lycheeverse/lychee-action@v1.5.4
with:
args: --verbose --no-progress --cache --max-cache-age 1d packages/mermaid/src/docs/**/*.md README.md README.zh-CN.md
fail: true
jobSummary: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

View File

@@ -7,9 +7,10 @@ on:
- opened
- synchronize
- ready_for_review
workflow_dispatch:
permissions:
contents: read
contents: write
jobs:
lint:
@@ -39,4 +40,19 @@ jobs:
run: pnpm run lint
- name: Verify Docs
id: verifyDocs
working-directory: ./packages/mermaid
continue-on-error: ${{ github.event_name == 'push' }}
run: pnpm run docs:verify
- name: Rebuild Docs
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
working-directory: ./packages/mermaid
run: pnpm run docs:build
- name: Commit changes
uses: EndBug/add-and-commit@v9
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
with:
message: 'Update docs'
add: 'docs/*'

62
.github/workflows/publish-docs.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Deploy Vitepress docs to Pages
on:
# Runs on pushes targeting the default branch
push:
branches:
- master
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: 'pages'
cancel-in-progress: true
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: 18
- name: Install Packages
run: pnpm install --frozen-lockfile
- name: Setup Pages
uses: actions/configure-pages@v2
- name: Run Build
run: pnpm --filter mermaid run docs:build:vitepress
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: packages/mermaid/src/vitepress/.vitepress/dist
# Deployment job
deploy:
environment:
name: github-pages
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

View File

@@ -10,22 +10,30 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: 18.x
- name: Install Yarn
run: npm i yarn --global
- name: Install Packages
run: |
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Install Json
run: npm i json --global
- name: Install Packages
run: yarn install --frozen-lockfile
- name: Publish
working-directory: ./packages/mermaid
run: |
PREVIEW_VERSION=8
PREVIEW_VERSION=$(git log --oneline "origin/$GITHUB_REF_NAME" ^"origin/master" | wc -l)
VERSION=$(echo ${{github.ref}} | tail -c +20)-preview.$PREVIEW_VERSION
echo $VERSION
npm version --no-git-tag-version --allow-same-version $VERSION

3
.gitignore vendored
View File

@@ -32,6 +32,7 @@ cypress/snapshots/
.eslintcache
.tsbuildinfo
tsconfig.tsbuildinfo
knsv*.html
knsv*.html
local*.html
stats/

View File

@@ -1,6 +0,0 @@
{
"packages/mermaid/src/docs/**": ["pnpm run docs:build --git"],
"packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"],
"*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"],
"*.jison": ["pnpm run lint:jison"]
}

5
.lintstagedrc.mjs Normal file
View File

@@ -0,0 +1,5 @@
export default {
'!(docs/**/*)*.{ts,js,json,html,md,mts}': ['eslint --fix', 'prettier --write'],
'cSpell.json': ['ts-node-esm scripts/fixCSpell.ts'],
'**/*.jison': ['pnpm -w run lint:jison'],
};

16
.lycheeignore Normal file
View File

@@ -0,0 +1,16 @@
# These links are ignored by our link checker https://github.com/lycheeverse/lychee
# The file allows you to list multiple regular expressions for exclusion (one pattern per line).
# Network error: Forbidden
https://codepen.io
# Network error: The certificate was not trusted
https://mkdocs.org/
https://osawards.com/javascript/#nominees
https://osawards.com/javascript/2019
# Timeout error, maybe Twitter has anti-bot defences against GitHub's CI servers?
https://twitter.com/mermaidjs_
# Don't check files that are generated during the build via `pnpm docs:code`
packages/mermaid/src/docs/config/setup/*

3
.npmrc
View File

@@ -1,2 +1,3 @@
auto-install-peers=true
strict-peer-dependencies=false
strict-peer-dependencies=false
use-inline-specifiers-lockfile-format=true

View File

@@ -3,4 +3,5 @@ cypress/platform/xss3.html
.cache
coverage
# Autogenerated by PNPM
pnpm-lock.yaml
pnpm-lock.yaml
stats

View File

@@ -1,10 +1,12 @@
import { build, InlineConfig } from 'vite';
import { build, InlineConfig, type PluginOption } from 'vite';
import { resolve } from 'path';
import { fileURLToPath } from 'url';
import jisonPlugin from './jisonPlugin.js';
import pkg from '../package.json' assert { type: 'json' };
import { readFileSync } from 'fs';
import { visualizer } from 'rollup-plugin-visualizer';
import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js';
const { dependencies } = pkg;
const visualize = process.argv.includes('--visualize');
const watch = process.argv.includes('--watch');
const mermaidOnly = process.argv.includes('--mermaid');
const __dirname = fileURLToPath(new URL('.', import.meta.url));
@@ -14,6 +16,20 @@ type OutputOptions = Exclude<
undefined
>['output'];
const visualizerOptions = (packageName: string, core = false): PluginOption[] => {
if (packageName !== 'mermaid' || !visualize) {
return [];
}
return ['network', 'treemap', 'sunburst'].map((chartType) =>
visualizer({
filename: `./stats/${chartType}${core ? '.core' : ''}.html`,
template: chartType as TemplateType,
gzipSize: true,
brotliSize: true,
})
);
};
const packageOptions = {
mermaid: {
name: 'mermaid',
@@ -25,6 +41,11 @@ const packageOptions = {
packageName: 'mermaid-mindmap',
file: 'detector.ts',
},
'mermaid-flowchart-v3': {
name: 'mermaid-flowchart-v3',
packageName: 'mermaid-flowchart-v3',
file: 'detector.ts',
},
// 'mermaid-example-diagram-detector': {
// name: 'mermaid-example-diagram-detector',
// packageName: 'mermaid-example-diagram',
@@ -40,7 +61,7 @@ interface BuildOptions {
}
export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => {
const external = ['require', 'fs', 'path'];
const external: (string | RegExp)[] = ['require', 'fs', 'path'];
console.log(entryName, packageOptions[entryName]);
const { name, file, packageName } = packageOptions[entryName];
let output: OutputOptions = [
@@ -59,9 +80,14 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
];
if (core) {
const { dependencies } = JSON.parse(
readFileSync(resolve(__dirname, `../packages/${packageName}/package.json`), 'utf-8')
);
// Core build is used to generate file without bundled dependencies.
// This is used by downstream projects to bundle dependencies themselves.
external.push(...Object.keys(dependencies));
// Ignore dependencies and any dependencies of dependencies
// Adapted from the RegEx used by `rollup-plugin-node`
external.push(new RegExp('^(?:' + Object.keys(dependencies).join('|') + ')(?:/.+)?$'));
// This needs to be an array. Otherwise vite will build esm & umd with same name and overwrite esm with umd.
output = [
{
@@ -93,12 +119,13 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
resolve: {
extensions: ['.jison', '.js', '.ts', '.json'],
},
plugins: [jisonPlugin()],
plugins: [jisonPlugin(), ...visualizerOptions(packageName, core)],
};
if (watch && config.build) {
config.build.watch = {
include: [
'packages/mermaid-flowchart-v3/src/**',
'packages/mermaid-mindmap/src/**',
'packages/mermaid/src/**',
// 'packages/mermaid-example-diagram/src/**',
@@ -119,20 +146,21 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => {
const main = async () => {
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
for (const pkg of packageNames) {
if (mermaidOnly && pkg !== 'mermaid') {
continue;
}
for (const pkg of packageNames.filter((pkg) => !mermaidOnly || pkg === 'mermaid')) {
await buildPackage(pkg);
}
};
if (watch) {
build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' }));
build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
if (!mermaidOnly) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-flowchart-v3' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
// build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
}
} else if (visualize) {
await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' }));
await build(getBuildConfig({ minify: false, core: false, entryName: 'mermaid' }));
} else {
void main();
}

View File

@@ -1,6 +0,0 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"module": "ES2022"
}
}

11
.vscode/launch.json vendored
View File

@@ -12,6 +12,17 @@
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
},
{
"name": "Docs generation",
"type": "node",
"request": "launch",
"args": ["src/docs.mts"],
"runtimeArgs": ["--loader", "ts-node/esm"],
"cwd": "${workspaceRoot}/packages/mermaid",
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"smartStep": true,
"internalConsoleOptions": "openOnSessionStart"
}
]
}

View File

@@ -32,7 +32,7 @@ We make all changes via pull requests. As we have many pull requests from develo
- Large changes reviewed by knsv or other developer asked to review by knsv
- Smaller low-risk changes like dependencies, documentation, etc. can be merged by active collaborators
- Documentation (updates to the `src/docs` folder is also allowed via direct commits)
- Documentation (updates to the `package/mermaid/src/docs` folder is also allowed via direct commits)
To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text.
@@ -67,31 +67,22 @@ flowchart LR
### The official documentation site
**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Docsify](https://docsify.js.org), a simple documentation site generator.**
**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Vitepress](https://vitepress.vuejs.org/), a simple documentation site generator.**
If you want to preview the whole documentation site on your machine, you need to install `docsify-cli`:
If you want to preview the whole documentation site on your machine:
```sh
$ npm i docsify-cli -g
cd packages/mermaid
pnpm i
pnpm docs:dev
```
If you are more familiar with Yarn, you can use the following command:
You can now build and serve the documentation site:
```sh
$ yarn global add docsify-cli
pnpm docs:serve
```
The above command will install `docsify-cli` globally.
If the installation is successful, the command `docsify` will be available in your `PATH`.
You can now run the following command to serve the documentation site:
```sh
$ docsify serve docs
```
Once the local HTTP server is listening, you can point your browser at http://localhost:3000.
## Branching
Going forward we will use a git flow inspired approach to branching. So development is done in develop, to do the development in the develop.
@@ -152,7 +143,7 @@ The source files for documentation are in `/packages/mermaid/src/docs` and are w
#### Adding to or changing the documentation organization
If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `src/docs/_sidebar.md`.
If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `mermaid/src/docs/.vitepress/config.js`.
When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/

View File

@@ -1,23 +1,6 @@
# mermaid
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![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) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![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) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
# Whoa, what's going on here?
We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will:
- Make it possible to select which diagrams to include on your site
- Open up for lazy loading
- Make it possible to add diagrams from outside of the Mermaid repository
- Separate the release flow between different diagrams and the Mermaid core
As such be aware of some changes..
# We use pnpm now
# The source code has moved
It is now located in the src folder for each respective package located as subfolders in packages.
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.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) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![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) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
English | [简体中文](./README.zh-CN.md)
@@ -27,7 +10,7 @@ English | [简体中文](./README.zh-CN.md)
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## About
@@ -43,12 +26,12 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia
<br/>
Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).<br/>
[Tutorials](./docs/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md).
[Tutorials](./docs/config/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md).
You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md)
@@ -354,7 +337,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio
A quick note from Knut Sveidqvist:
> _Many thanks to the [d3](https://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](https://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._
> _Many thanks to the [d3](https://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](https://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!_

View File

@@ -1,6 +1,6 @@
# mermaid
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![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) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![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) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.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) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![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) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
[English](./README.md) | 简体中文
@@ -10,7 +10,7 @@
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-pre-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## 关于 Mermaid
@@ -24,9 +24,9 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd
Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。<br/>
<br/>
Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。<br/>
你可以访问 [教程](./docs/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md), [用法](./docs/usage.md) 和 [教程](./docs/Tutorials.md).
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md)
@@ -39,7 +39,7 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma
<table>
<!-- <Flowchart> -->
### 流程图 [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
### 流程图 [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
```
flowchart LR
@@ -57,7 +57,7 @@ C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
### 时序图 [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 时序图 [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
sequenceDiagram
@@ -83,7 +83,7 @@ John->>Bob: How about you?
Bob-->>John: Jolly good!
```
### 甘特图 [<a href="https://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 甘特图 [<a href="https://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
gantt
@@ -107,7 +107,7 @@ gantt
Parallel 4 : des6, after des4, 1d
```
### 类图 [<a href="https://mermaid-js.github.io/mermaid/#/classDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
### 类图 [<a href="https://mermaid-js.github.io/mermaid/#/classDiagram">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
```
classDiagram
@@ -147,7 +147,7 @@ class Class10 {
}
```
### 状态图 [[<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtLXYyXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQiLCJ0aGVtZVZhcmlhYmxlcyI6eyJiYWNrZ3JvdW5kIjoid2hpdGUiLCJwcmltYXJ5Q29sb3IiOiIjRUNFQ0ZGIiwic2Vjb25kYXJ5Q29sb3IiOiIjZmZmZmRlIiwidGVydGlhcnlDb2xvciI6ImhzbCg4MCwgMTAwJSwgOTYuMjc0NTA5ODAzOSUpIiwicHJpbWFyeUJvcmRlckNvbG9yIjoiaHNsKDI0MCwgNjAlLCA4Ni4yNzQ1MDk4MDM5JSkiLCJzZWNvbmRhcnlCb3JkZXJDb2xvciI6ImhzbCg2MCwgNjAlLCA4My41Mjk0MTE3NjQ3JSkiLCJ0ZXJ0aWFyeUJvcmRlckNvbG9yIjoiaHNsKDgwLCA2MCUsIDg2LjI3NDUwOTgwMzklKSIsInByaW1hcnlUZXh0Q29sb3IiOiIjMTMxMzAwIiwic2Vjb25kYXJ5VGV4dENvbG9yIjoiIzAwMDAyMSIsInRlcnRpYXJ5VGV4dENvbG9yIjoicmdiKDkuNTAwMDAwMDAwMSwgOS41MDAwMDAwMDAxLCA5LjUwMDAwMDAwMDEpIiwibGluZUNvbG9yIjoiIzMzMzMzMyIsInRleHRDb2xvciI6IiMzMzMiLCJtYWluQmtnIjoiI0VDRUNGRiIsInNlY29uZEJrZyI6IiNmZmZmZGUiLCJib3JkZXIxIjoiIzkzNzBEQiIsImJvcmRlcjIiOiIjYWFhYTMzIiwiYXJyb3doZWFkQ29sb3IiOiIjMzMzMzMzIiwiZm9udEZhbWlseSI6IlwidHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsIiwiZm9udFNpemUiOiIxNnB4IiwibGFiZWxCYWNrZ3JvdW5kIjoiI2U4ZThlOCIsIm5vZGVCa2ciOiIjRUNFQ0ZGIiwibm9kZUJvcmRlciI6IiM5MzcwREIiLCJjbHVzdGVyQmtnIjoiI2ZmZmZkZSIsImNsdXN0ZXJCb3JkZXIiOiIjYWFhYTMzIiwiZGVmYXVsdExpbmtDb2xvciI6IiMzMzMzMzMiLCJ0aXRsZUNvbG9yIjoiIzMzMyIsImVkZ2VMYWJlbEJhY2tncm91bmQiOiIjZThlOGU4IiwiYWN0b3JCb3JkZXIiOiJoc2woMjU5LjYyNjE2ODIyNDMsIDU5Ljc3NjUzNjMxMjglLCA4Ny45MDE5NjA3ODQzJSkiLCJhY3RvckJrZyI6IiNFQ0VDRkYiLCJhY3RvclRleHRDb2xvciI6ImJsYWNrIiwiYWN0b3JMaW5lQ29sb3IiOiJncmV5Iiwic2lnbmFsQ29sb3IiOiIjMzMzIiwic2lnbmFsVGV4dENvbG9yIjoiIzMzMyIsImxhYmVsQm94QmtnQ29sb3IiOiIjRUNFQ0ZGIiwibGFiZWxCb3hCb3JkZXJDb2xvciI6ImhzbCgyNTkuNjI2MTY4MjI0MywgNTkuNzc2NTM2MzEyOCUsIDg3LjkwMTk2MDc4NDMlKSIsImxhYmVsVGV4dENvbG9yIjoiYmxhY2siLCJsb29wVGV4dENvbG9yIjoiYmxhY2siLCJub3RlQm9yZGVyQ29sb3IiOiIjYWFhYTMzIiwibm90ZUJrZ0NvbG9yIjoiI2ZmZjVhZCIsIm5vdGVUZXh0Q29sb3IiOiJibGFjayIsImFjdGl2YXRpb25Cb3JkZXJDb2xvciI6IiM2NjYiLCJhY3RpdmF0aW9uQmtnQ29sb3IiOiIjZjRmNGY0Iiwic2VxdWVuY2VOdW1iZXJDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yIjoicmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQ5KSIsImFsdFNlY3Rpb25Ca2dDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yMiI6IiNmZmY0MDAiLCJ0YXNrQm9yZGVyQ29sb3IiOiIjNTM0ZmJjIiwidGFza0JrZ0NvbG9yIjoiIzhhOTBkZCIsInRhc2tUZXh0TGlnaHRDb2xvciI6IndoaXRlIiwidGFza1RleHRDb2xvciI6IndoaXRlIiwidGFza1RleHREYXJrQ29sb3IiOiJibGFjayIsInRhc2tUZXh0T3V0c2lkZUNvbG9yIjoiYmxhY2siLCJ0YXNrVGV4dENsaWNrYWJsZUNvbG9yIjoiIzAwMzE2MyIsImFjdGl2ZVRhc2tCb3JkZXJDb2xvciI6IiM1MzRmYmMiLCJhY3RpdmVUYXNrQmtnQ29sb3IiOiIjYmZjN2ZmIiwiZ3JpZENvbG9yIjoibGlnaHRncmV5IiwiZG9uZVRhc2tCa2dDb2xvciI6ImxpZ2h0Z3JleSIsImRvbmVUYXNrQm9yZGVyQ29sb3IiOiJncmV5IiwiY3JpdEJvcmRlckNvbG9yIjoiI2ZmODg4OCIsImNyaXRCa2dDb2xvciI6InJlZCIsInRvZGF5TGluZUNvbG9yIjoicmVkIiwibGFiZWxDb2xvciI6ImJsYWNrIiwiZXJyb3JCa2dDb2xvciI6IiM1NTIyMjIiLCJlcnJvclRleHRDb2xvciI6IiM1NTIyMjIiLCJjbGFzc1RleHQiOiIjMTMxMzAwIiwiZmlsbFR5cGUwIjoiI0VDRUNGRiIsImZpbGxUeXBlMSI6IiNmZmZmZGUiLCJmaWxsVHlwZTIiOiJoc2woMzA0LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTMiOiJoc2woMTI0LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkiLCJmaWxsVHlwZTQiOiJoc2woMTc2LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTUiOiJoc2woLTQsIDEwMCUsIDkzLjUyOTQxMTc2NDclKSIsImZpbGxUeXBlNiI6ImhzbCg4LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTciOiJoc2woMTg4LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkifX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9">live editor</a>]
### 状态图 [[<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkLsOwjAMRX-l8ojahTEDCzB26kgYrMYtkfJAqVMJVf13QiIKqqfr44d8vUDvFYGAiZHponEMaJv5KF2V4na4V01zqjrWxhSUZYapuEetn7UbCy16P_5HzwGnR6FZfpdCDZaCRa3SWcunQQI_yJIEkaSiAaNhCdKtqRUj--7lehAcItUQn-pnBMSAZtroVWn2YYOU07b4z29Y37gJVYk">live editor</a>]
```
stateDiagram-v2
@@ -169,7 +169,7 @@ Moving --> Crash
Crash --> [*]
```
### 饼图 [<a href="https://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 饼图 [<a href="https://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
pie
@@ -185,9 +185,9 @@ pie
"Rats" : 15
```
### Git 图 [实验特性 - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
### Git 图 [实验特性 - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaid.live/edit#pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>]
```
journey

21
__mocks__/c4Renderer.js Normal file
View File

@@ -0,0 +1,21 @@
/**
* Mocked C4Context diagram renderer
*/
import { vi } from 'vitest';
export const drawPersonOrSystemArray = vi.fn();
export const drawBoundary = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
drawPersonOrSystemArray,
drawBoundary,
setConf,
draw,
};

View File

@@ -0,0 +1,16 @@
/**
* Mocked class diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked class diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1,67 +1,14 @@
// @ts-nocheck TODO: Fix TS
import { vi } from 'vitest';
const NewD3 = function () {
/**
*
*/
function returnThis() {
return this;
}
return {
append: function () {
return NewD3();
},
lower: returnThis,
attr: returnThis,
style: returnThis,
text: returnThis,
0: {
0: {
getBBox: function () {
return {
height: 10,
width: 20,
};
},
},
},
};
};
import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3';
export const select = function () {
return new NewD3();
return new MockedD3();
};
export const selectAll = function () {
return new NewD3();
return new MockedD3();
};
export const curveBasis = 'basis';
export const curveLinear = 'linear';
export const curveCardinal = 'cardinal';
export const MockD3 = (name, parent) => {
const children = [];
const elem = {
get __children() {
return children;
},
get __name() {
return name;
},
get __parent() {
return parent;
},
};
elem.append = (name) => {
const mockElem = MockD3(name, elem);
children.push(mockElem);
return mockElem;
};
elem.lower = vi.fn(() => elem);
elem.attr = vi.fn(() => elem);
elem.text = vi.fn(() => elem);
elem.style = vi.fn(() => elem);
return elem;
};

16
__mocks__/erRenderer.js Normal file
View File

@@ -0,0 +1,16 @@
/**
* Mocked er diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,24 @@
/**
* Mocked flow (flowchart) diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const addVertices = vi.fn();
export const addEdges = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
addVertices,
addEdges,
getClasses,
draw,
};

View File

@@ -0,0 +1,16 @@
/**
* Mocked gantt diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked git (graph) diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,15 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

13
__mocks__/pieRenderer.js Normal file
View File

@@ -0,0 +1,13 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked requirement diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,23 @@
/**
* Mocked sequence diagram renderer
*/
import { vi } from 'vitest';
export const bounds = vi.fn();
export const drawActors = vi.fn();
export const drawActorsPopup = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
bounds,
drawActors,
drawActorsPopup,
setConf,
draw,
};

View File

@@ -0,0 +1,22 @@
/**
* Mocked state diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const stateDomId = vi.fn().mockImplementation(() => {
return 'mocked-stateDiagram-stateDomId';
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
getClasses,
draw,
};

View File

@@ -2,50 +2,109 @@
"version": "0.2",
"language": "en",
"words": [
"customizability",
"Gantt",
"jison",
"knsv",
"Knut",
"mindmap",
"Mindmaps",
"mitigations",
"sandboxed",
"Sveidqvist",
"verdana",
"Visio"
],
"ignoreWords": [
"Adamiecki",
"acyclicer",
"adamiecki",
"alois",
"antiscript",
"applitools",
"Asciidoctor",
"Astah",
"Bisheng",
"asciidoctor",
"ashish",
"astah",
"bbox",
"bilkent",
"bisheng",
"braintree",
"brkt",
"brolin",
"brotli",
"classdef",
"codedoc",
"Docsy",
"Doku",
"Gitea",
"Gitgraph",
"Grav",
"Inkdrop",
"Jaoude",
"colour",
"cpettitt",
"customizability",
"cuzon",
"cytoscape",
"dagre",
"descr",
"docsify",
"docsy",
"doku",
"dompurify",
"edgechromium",
"elkjs",
"faber",
"flatmap",
"ftplugin",
"gantt",
"gitea",
"gitgraph",
"globby",
"graphlib",
"graphviz",
"grav",
"greywolf",
"inkdrop",
"jaoude",
"jison",
"kaufmann",
"khroma",
"klemm",
"klink",
"knsv",
"knut",
"laganeckas",
"lintstagedrc",
"lucida",
"matthieu",
"mdbook",
"mermerd",
"mindaugas",
"mindmap",
"mindmaps",
"mitigations",
"mkdocs",
"mult",
"orlandoni",
"phpbb",
"Plantuml",
"Playfair's",
"Podlite",
"plantuml",
"playfair",
"pnpm",
"podlite",
"quence",
"radious",
"ranksep",
"rect",
"rects",
"redmine",
"roledescription",
"sandboxed",
"setupgraphviewbox",
"shiki",
"sidharth",
"sphinxcontrib",
"Tuleap"
"statediagram",
"stylis",
"substate",
"sveidqvist",
"swimm",
"techn",
"teststr",
"textlength",
"treemap",
"ts-nocheck",
"tuleap",
"ugge",
"unist",
"verdana",
"viewports",
"vinod",
"visio",
"vitepress",
"xlink",
"yash"
],
"patterns": [
{
"name": "Markdown links",
"pattern": "\\((.*)\\)",
"description": ""
},
{ "name": "Markdown links", "pattern": "\\((.*)\\)", "description": "" },
{
"name": "Markdown code blocks",
"pattern": "/^(\\s*`{3,}).*[\\s\\S]*?^\\1/gmx",
@@ -56,25 +115,14 @@
"pattern": "\\`([^\\`\\r\\n]+?)\\`",
"description": "https://stackoverflow.com/questions/41274241/how-to-capture-inline-markdown-code-but-not-a-markdown-code-fence-with-regex"
},
{
"name": "Link contents",
"pattern": "\\<a(.*)\\>",
"description": ""
},
{
"name": "Snippet references",
"pattern": "-- snippet:(.*)",
"description": ""
},
{ "name": "Link contents", "pattern": "\\<a(.*)\\>", "description": "" },
{ "name": "Snippet references", "pattern": "-- snippet:(.*)", "description": "" },
{
"name": "Snippet references 2",
"pattern": "\\<\\[sample:(.*)",
"description": "another kind of snippet reference"
},
{
"name": "Multi-line code blocks",
"pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm"
},
{ "name": "Multi-line code blocks", "pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm" },
{
"name": "HTML Tags",
"pattern": "<[^>]*>",
@@ -91,5 +139,8 @@
"Multi-line code blocks",
"HTML Tags"
],
"ignorePaths": ["packages/mermaid/src/docs/CHANGELOG.md"]
"ignorePaths": [
"packages/mermaid/src/docs/CHANGELOG.md",
"packages/mermaid/src/docs/.vitepress/redirect.ts"
]
}

View File

@@ -47,7 +47,6 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) =>
options.fontSize = '16px';
}
const useAppli = Cypress.env('useAppli');
//const useAppli = false;
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
@@ -64,7 +63,9 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) =>
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
if (validation) cy.get('svg').should(validation);
if (validation) {
cy.get('svg').should(validation);
}
cy.get('svg');
// Default name to test title
@@ -117,7 +118,9 @@ export const urlSnapshotTest = (url, _options, api = false, validation) => {
}
cy.visit(url);
if (validation) cy.get('svg').should(validation);
if (validation) {
cy.get('svg').should(validation);
}
cy.get('body');
// Default name to test title

View File

@@ -1,13 +1,10 @@
import { urlSnapshotTest } from '../../helpers/util';
describe('mermaid', () => {
describe('registerDiagram', () => {
it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => {
const url = 'http://localhost:9000/external-diagrams-mindmap.html';
cy.visit(url);
cy.get('svg', {
// may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram
timeout: 10000,
}).matchImageSnapshot();
urlSnapshotTest(url, {}, false, false);
});
});
});

View File

@@ -7,4 +7,10 @@ describe('CSS injections', () => {
flowchart: { htmlLabels: false },
});
});
it('should not allow adding styletags affecting the page', () => {
urlSnapshotTest('http://localhost:9000/ghsa3.html', {
logLevel: 1,
flowchart: { htmlLabels: false },
});
});
});

View File

@@ -21,7 +21,7 @@ describe('Git Graph diagram', () => {
// // Call Open on eyes to initialize a test session
// cy.eyesOpen({
// appName: 'Demo App',
// testName: 'Ultrafast grid demo',
// testName: 'UltraFast grid demo',
// });
// // check the login page with fluent api, see more info here

View File

@@ -0,0 +1,122 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('C4 diagram', () => {
it('should render a simple C4Context diagram', () => {
imgSnapshotTest(
`
C4Context
accTitle: C4 context demo
accDescr: Many large C4 diagrams
title System Context diagram for Internet Banking System
Enterprise_Boundary(b0, "BankBoundary0") {
Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
Enterprise_Boundary(b1, "BankBoundary") {
System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
}
}
BiRel(customerA, SystemAA, "Uses")
Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
Rel(SystemC, customerA, "Sends e-mails to")
UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")
`,
{}
);
cy.get('svg');
});
it('should render a simple C4Container diagram', () => {
imgSnapshotTest(
`
C4Container
title Container diagram for Internet Banking System
System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", $tags="v1.0")
Person(customer, Customer, "A customer of the bank, with personal bank accounts", $tags="v1.0")
Container_Boundary(c1, "Internet Banking") {
Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser")
}
Rel(customer, spa, "Uses", "HTTPS")
Rel(email_system, customer, "Sends e-mails to")
`,
{}
);
cy.get('svg');
});
it('should render a simple C4Component diagram', () => {
imgSnapshotTest(
`
C4Component
title Component diagram for Internet Banking System - API Application
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
Container_Boundary(api, "API Application") {
Component(sign, "Sign In Controller", "MVC Rest Controller", "Allows users to sign in to the internet banking system")
}
Rel_Back(spa, sign, "Uses", "JSON/HTTPS")
UpdateRelStyle(spa, sign, $offsetY="-40")
`,
{}
);
cy.get('svg');
});
it('should render a simple C4Dynamic diagram', () => {
imgSnapshotTest(
`
C4Dynamic
title Dynamic diagram for Internet Banking System - API Application
ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.")
Container_Boundary(b, "API Application") {
Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.")
Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.")
}
Rel(c1, c2, "Submits credentials to", "JSON/HTTPS")
Rel(c2, c3, "Calls isAuthenticated() on")
Rel(c3, c4, "select * from users where username = ?", "JDBC")
UpdateRelStyle(c1, c2, $textColor="red", $offsetY="-40")
UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60")
UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10")
`,
{}
);
cy.get('svg');
});
it('should render a simple C4Deployment diagram', () => {
imgSnapshotTest(
`
C4Deployment
title Deployment Diagram for Internet Banking System - Live
Deployment_Node(mob, "Customer's mobile device", "Apple IOS or Android"){
Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.")
}
Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center"){
Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS"){
Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x"){
Container(api, "API Application", "Java and Spring MVC", "Provides Internet Banking functionality via a JSON/HTTPS API.")
}
}
}
Rel(mobile, api, "Makes API calls to", "json/HTTPS")
`,
{}
);
cy.get('svg');
});
});

View File

@@ -478,4 +478,33 @@ describe('Class diagram V2', () => {
);
cy.get('svg');
});
it('18: should render a simple class diagram with notes', () => {
imgSnapshotTest(
`
classDiagram-v2
note "I love this diagram!\nDo you love it?"
class Class10 {
int id
size()
}
note for Class10 "Cool class\nI said it's very cool class!"
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('1433: should render a simple class with a title', () => {
imgSnapshotTest(
`---
title: simple class diagram
---
classDiagram-v2
class Class10
`,
{}
);
});
});

View File

@@ -407,4 +407,20 @@ describe('Class diagram', () => {
// // expect(svg).to.not.have.attr('style');
// });
// });
it('19: should render a simple class diagram with notes', () => {
imgSnapshotTest(
`
classDiagram
note "I love this diagram!\nDo you love it?"
class Class10 {
int id
size()
}
note for Class10 "Cool class\nI said it's very cool class!"
`,
{ logLevel: 1 }
);
cy.get('svg');
});
});

View File

@@ -1,6 +1,6 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('State diagram', () => {
describe('Current diagram', () => {
it('should render a state with states in it', () => {
imgSnapshotTest(
`

View File

@@ -167,7 +167,7 @@ describe('Entity Relationship Diagram', () => {
cy.get('svg');
});
it.only('should render entities with generic and array attributes', () => {
it('should render entities with generic and array attributes', () => {
renderGraph(
`
erDiagram
@@ -182,6 +182,20 @@ describe('Entity Relationship Diagram', () => {
cy.get('svg');
});
it('should render entities with length in attributes type', () => {
renderGraph(
`
erDiagram
CLUSTER {
varchar(99) name
string(255) description
}
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities and attributes with big and small entity names', () => {
renderGraph(
`
@@ -255,4 +269,35 @@ describe('Entity Relationship Diagram', () => {
);
cy.get('svg');
});
it('should render entities with aliases', () => {
renderGraph(
`
erDiagram
T1 one or zero to one or more T2 : test
T2 one or many optionally to zero or one T3 : test
T3 zero or more to zero or many T4 : test
T4 many(0) to many(1) T5 : test
T5 many optionally to one T6 : test
T6 only one optionally to only one T1 : test
T4 0+ to 1+ T6 : test
T1 1 to 1 T3 : test
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('1433: should render a simple ER diagram with a title', () => {
imgSnapshotTest(
`---
title: simple ER diagram
---
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
{}
);
});
});

View File

@@ -663,4 +663,15 @@ flowchart RL
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('1433: should render a titled flowchart with titleTopMargin set to 0', () => {
imgSnapshotTest(
`---
title: Simple flowchart
---
flowchart TD
A --> B
`,
{ titleTopMargin: 0 }
);
});
});

View File

@@ -310,35 +310,129 @@ describe('Gantt diagram', () => {
);
});
it('should render accessibility tags', function () {
const expectedTitle = 'Gantt Diagram';
const expectedAccDescription = 'Tasks for Q4';
renderGraph(
it('should render a gantt diagram with tick is 15 minutes', () => {
imgSnapshotTest(
`
gantt
accTitle: ${expectedTitle}
accDescr: ${expectedAccDescription}
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %H:%M
tickInterval 15minute
excludes weekends
section Section
A task : a1, 2022-10-03, 6h
Another task : after a1, 6h
section Another
Task in sec : 2022-10-03, 3h
another task : 3h
`,
{}
);
cy.get('svg').should((svg) => {
const el = svg.get(0);
const children = Array.from(el.children);
});
const titleEl = children.find(function (node) {
return node.tagName === 'title';
});
const descriptionEl = children.find(function (node) {
return node.tagName === 'desc';
});
it('should render a gantt diagram with tick is 6 hours', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %d %H:%M
tickInterval 6hour
excludes weekends
expect(titleEl).to.exist;
expect(titleEl.textContent).to.equal(expectedTitle);
expect(descriptionEl).to.exist;
expect(descriptionEl.textContent).to.equal(expectedAccDescription);
});
section Section
A task : a1, 2022-10-03, 1d
Another task : after a1, 2d
section Another
Task in sec : 2022-10-04, 2d
another task : 2d
`,
{}
);
});
it('should render a gantt diagram with tick is 1 day', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %m-%d
tickInterval 1day
excludes weekends
section Section
A task : a1, 2022-10-01, 30d
Another task : after a1, 20d
section Another
Task in sec : 2022-10-20, 12d
another task : 24d
`,
{}
);
});
it('should render a gantt diagram with tick is 1 week', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %m-%d
tickInterval 1week
excludes weekends
section Section
A task : a1, 2022-10-01, 30d
Another task : after a1, 20d
section Another
Task in sec : 2022-10-20, 12d
another task : 24d
`,
{}
);
});
it('should render a gantt diagram with tick is 1 month', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %m-%d
tickInterval 1month
excludes weekends
section Section
A task : a1, 2022-10-01, 30d
Another task : after a1, 20d
section Another
Task in sec : 2022-10-20, 12d
another task : 24d
`,
{}
);
});
it('should render a gantt diagram with tick is 1 day and topAxis is true', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %m-%d
tickInterval 1day
excludes weekends
section Section
A task : a1, 2022-10-01, 30d
Another task : after a1, 20d
section Another
Task in sec : 2022-10-20, 12d
another task : 24d
`,
{ gantt: { topAxis: true } }
);
});
});

View File

@@ -322,4 +322,15 @@ describe('Git Graph diagram', () => {
{}
);
});
it('1433: should render a simple gitgraph with a title', () => {
imgSnapshotTest(
`---
title: simple gitGraph
---
gitGraph
commit id: "1-abcdefg"
`,
{}
);
});
});

View File

@@ -1,75 +0,0 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Mindmap', () => {
it('square shape', () => {
imgSnapshotTest(
`
mindmap
root[
The root
]
`,
{}
);
cy.get('svg');
});
it('rounded rect shape', () => {
imgSnapshotTest(
`
mindmap
root((
The root
))
`,
{}
);
cy.get('svg');
});
it('circle shape', () => {
imgSnapshotTest(
`
mindmap
root(
The root
)
`,
{}
);
cy.get('svg');
});
it('default shape', () => {
imgSnapshotTest(
`
mindmap
The root
`,
{}
);
cy.get('svg');
});
it('adding children', () => {
imgSnapshotTest(
`
mindmap
The root
child1
child2
`,
{}
);
cy.get('svg');
});
it('adding grand children', () => {
imgSnapshotTest(
`
mindmap
The root
child1
child2
child3
`,
{}
);
cy.get('svg');
});
});

View File

@@ -1,115 +0,0 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Mindmaps', () => {
it('Only a root', () => {
imgSnapshotTest(
`mindmap
root
`,
{}
);
});
it('a root with a shape', () => {
imgSnapshotTest(
`mindmap
root[root]
`,
{}
);
});
it('a root with wrapping text and a shape', () => {
imgSnapshotTest(
`mindmap
root[A root with a long text that wraps to keep the node size in check]
`,
{}
);
});
it('a root with an icon', () => {
imgSnapshotTest(
`mindmap
root[root]
::icon(mdi mdi-fire)
`,
{}
);
});
it('Blang and cloud shape', () => {
imgSnapshotTest(
`mindmap
root))bang((
::icon(mdi mdi-fire)
a))Another bang((
::icon(mdi mdi-fire)
a)A cloud(
::icon(mdi mdi-fire)
`,
{}
);
});
it('Blang and cloud shape with icons', () => {
imgSnapshotTest(
`mindmap
root))bang((
a))Another bang((
a)A cloud(
`,
{}
);
});
it('braches', () => {
imgSnapshotTest(
`mindmap
root
child1
grandchild 1
grandchild 2
child2
grandchild 3
grandchild 4
child3
grandchild 5
grandchild 6
`,
{}
);
});
it('braches with shapes and labels', () => {
imgSnapshotTest(
`mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
`,
{}
);
});
it('text shouhld wrap with icon', () => {
imgSnapshotTest(
`mindmap
root
Child3(A node with an icon and with a long text that wraps to keep the node size in check)
`,
{}
);
});
/* The end */
});

View File

@@ -0,0 +1,233 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
/**
* Check whether the SVG Element has a Mindmap root
*
* Sometimes, Cypress takes a snapshot before the mermaid mindmap has finished
* generating the SVG.
*
* @param $p - The element to check.
*/
function shouldHaveRoot($p: JQuery<SVGSVGElement>) {
// get HTML Element from jquery element
const svgElement = $p[0];
expect(svgElement.nodeName).equal('svg');
const sectionRoots = svgElement.getElementsByClassName('mindmap-node section-root');
// mindmap should have at least one root section
expect(sectionRoots).to.have.lengthOf.at.least(1);
}
describe('Mindmaps', () => {
it('Only a root', () => {
imgSnapshotTest(
`mindmap
root
`,
{},
undefined,
shouldHaveRoot
);
});
it('a root with a shape', () => {
imgSnapshotTest(
`mindmap
root[root]
`,
{},
undefined,
shouldHaveRoot
);
});
it('a root with wrapping text and a shape', () => {
imgSnapshotTest(
`mindmap
root[A root with a long text that wraps to keep the node size in check]
`,
{},
undefined,
shouldHaveRoot
);
});
it('a root with an icon', () => {
imgSnapshotTest(
`mindmap
root[root]
::icon(mdi mdi-fire)
`,
{},
undefined,
shouldHaveRoot
);
});
it('Blang and cloud shape', () => {
imgSnapshotTest(
`mindmap
root))bang((
::icon(mdi mdi-fire)
a))Another bang((
::icon(mdi mdi-fire)
a)A cloud(
::icon(mdi mdi-fire)
`,
{},
undefined,
shouldHaveRoot
);
});
it('Blang and cloud shape with icons', () => {
imgSnapshotTest(
`mindmap
root))bang((
a))Another bang((
a)A cloud(
`,
{},
undefined,
shouldHaveRoot
);
});
it('braches', () => {
imgSnapshotTest(
`mindmap
root
child1
grandchild 1
grandchild 2
child2
grandchild 3
grandchild 4
child3
grandchild 5
grandchild 6
`,
{},
undefined,
shouldHaveRoot
);
});
it('braches with shapes and labels', () => {
imgSnapshotTest(
`mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
`,
{},
undefined,
shouldHaveRoot
);
});
it('text shouhld wrap with icon', () => {
imgSnapshotTest(
`mindmap
root
Child3(A node with an icon and with a long text that wraps to keep the node size in check)
`,
{},
undefined,
shouldHaveRoot
);
});
it('square shape', () => {
imgSnapshotTest(
`
mindmap
root[
The root
]
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('rounded rect shape', () => {
imgSnapshotTest(
`
mindmap
root((
The root
))
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('circle shape', () => {
imgSnapshotTest(
`
mindmap
root(
The root
)
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('default shape', () => {
imgSnapshotTest(
`
mindmap
The root
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('adding children', () => {
imgSnapshotTest(
`
mindmap
The root
child1
child2
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('adding grand children', () => {
imgSnapshotTest(
`
mindmap
The root
child1
child2
child3
`,
{},
undefined,
shouldHaveRoot
);
cy.get('svg');
});
/* The end */
});

View File

@@ -46,69 +46,4 @@ describe('Requirement diagram', () => {
);
cy.get('svg');
});
it('should render accessibility tags', function () {
const expectedTitle = 'Gantt Diagram';
const expectedAccDescription = 'Tasks for Q4';
renderGraph(
`
requirementDiagram
accTitle: ${expectedTitle}
accDescr: ${expectedAccDescription}
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
`,
{}
);
cy.get('svg').should((svg) => {
const el = svg.get(0);
const children = Array.from(el.children);
const titleEl = children.find(function (node) {
return node.tagName === 'title';
});
const descriptionEl = children.find(function (node) {
return node.tagName === 'desc';
});
expect(titleEl).to.exist;
expect(titleEl.textContent).to.equal(expectedTitle);
expect(descriptionEl).to.exist;
expect(descriptionEl.textContent).to.equal(expectedAccDescription);
});
});
});

View File

@@ -328,7 +328,7 @@ describe('State diagram', () => {
}
);
});
it('v2 it should be possibel to use a choice', () => {
it('v2 it should be possible to use a choice', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -521,4 +521,54 @@ stateDiagram-v2
{ logLevel: 0, fontFamily: 'courier' }
);
});
describe('classDefs and applying classes', () => {
it('v2 states can have a class applied', () => {
imgSnapshotTest(
`
stateDiagram-v2
[*] --> A
A --> B: test({ foo#colon; 'far' })
B --> [*]
classDef badBadEvent fill:#f00,color:white,font-weight:bold
class B badBadEvent
`,
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('v2 can have multiple classes applied to multiple states', () => {
imgSnapshotTest(
`
stateDiagram-v2
classDef notMoving fill:white
classDef movement font-style:italic;
classDef badBadEvent fill:#f00,color:white,font-weight:bold
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
class Still notMoving
class Moving, Crash movement
class Crash badBadEvent
`,
{ logLevel: 0, fontFamily: 'courier' }
);
});
});
it('1433: should render a simple state diagram with a title', () => {
imgSnapshotTest(
`---
title: simple state diagram
---
stateDiagram-v2
[*] --> State1
State1 --> [*]
`,
{}
);
});
});

View File

@@ -25,6 +25,7 @@ describe('themeCSS balancing, it', () => {
});
});
// TODO: Delete/Rename this describe, keeping the inner contents.
describe('Pie Chart', () => {
// beforeEach(()=>{
// cy.clock((new Date('2014-06-09')).getTime());

View File

@@ -4,7 +4,7 @@
</script>
<body>
<div id="target">
<h1>This element does not belong to the SVG but we can style it</h1>
<h1>Background should be yellow!!!</h1>
</div>
<svg id="diagram"></svg>

100
cypress/platform/ghsa3.html Normal file
View File

@@ -0,0 +1,100 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 {
color: grey;
}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<h1>PAGE SHOULD NOT BE RED</h1>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-wrapper',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10,
curve: 'cardinal',
htmlLabels: true,
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier', actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
// securityLevel: 'strict',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],
// themeVariables: {relationLabelColor: 'red'}
});
function callback() {
alert('It worked');
}
let diagram = '%%{init: {"flowchart": {"htmlLabels": "true"}} }%%\n';
diagram += 'flowchart\n';
diagram += 'A["<p><sty';
diagram += 'le> * { background : red}</style>test</p>"]';
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

View File

@@ -54,65 +54,210 @@
</style>
</head>
<body>
<div>Security check</div>
<pre id="diagram" class="mermaid">
classDiagram
direction LR
class Student {
-idCard : IdCard
}
class IdCard{
-id : int
-name : string
}
class Bike{
-id : int
-name : string
}
Student "1" --o "1" IdCard : carries
Student "1" --o "1" Bike : rides
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<pre id="diagram" class="mermaid">
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
subgraph amd[AMD Latte GPU]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
sata[SATA IF]
exi[EXI]
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<br />
<pre id="diagram" class="mermaid">
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
subgraph amd[AMD Latte GPU]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
sata[SATA IF]
exi[EXI]
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<br />
&nbsp;
<pre id="diagram" class="mermaid2">
mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
</pre>
flowchart LR
B1 --be be--x B2
B1 --bo bo--o B3
subgraph Ugge
B2
B3
subgraph inner
B4
B5
end
subgraph inner2
subgraph deeper
C4
C5
end
C6
end
B4 --> C4
B3 -- X --> B4
B2 --> inner
C4 --> C5
end
subgraph outer
B6
end
B6 --> B5
</pre
>
<pre id="diagram" class="mermaid2">
example-diagram
sequenceDiagram
Customer->>+Stripe: Makes a payment request
Stripe->>+Bank: Forwards the payment request to the bank
Bank->>+Customer: Asks for authorization
Customer->>+Bank: Provides authorization
Bank->>+Stripe: Sends a response with payment details
Stripe->>+Merchant: Sends a notification of payment receipt
Merchant->>+Stripe: Confirms the payment
Stripe->>+Customer: Sends a confirmation of payment
Customer->>+Merchant: Receives goods or services
</pre
>
<pre id="diagram" class="mermaid2">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)
dateFormat YYYY-MM-DD
axisFormat %d
todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
section Section1
Today: 1, -1h
</pre>
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<script src="./mermaid.js"></script>
<!-- <script src="./mermaid.js"></script> -->
<script>
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
import flowV3 from '../../packages/mermaid-flowchart-v3/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
await mermaid.registerExternalDiagrams([mindmap, flowV3]);
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
// theme: 'forest',
startOnLoad: true,
logLevel: 0,
// basePath: './packages/',
// themeVariables: { darkMode: true },
lazyLoadedDiagrams: [
'./mermaid-mindmap-detector.esm.mjs',
'./mermaid-example-diagram-detector.esm.mjs',
],
// lazyLoadedDiagrams: ['../../mermaid-mindmap/registry.ts'],
flowchart: {
// defaultRenderer: 'elk',
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
useMaxWidth: false,
});
function callback() {
alert('It worked');
@@ -121,6 +266,10 @@ mindmap
console.error('In parse error:');
console.error(err);
};
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
</script>
</body>
</html>

View File

@@ -6,6 +6,10 @@
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
@@ -14,7 +18,7 @@
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Courier New', Courier, monospace;
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 {
@@ -23,235 +27,77 @@
.mermaid2 {
display: none;
}
.mermaid {
border: 1px solid red;
font-family: 'Courier New', Courier, monospace;
.mermaid svg {
/* font-size: 18px !important; */
background-color: #eee;
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
}
.malware {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>info below</div>
<div class="">
<pre class="mermaid2" style="width: 100%; height: 400px">
flowchart TB;subgraph "number as labels";1;end;
</pre>
<pre class="mermaid2" style="width: 100%; height: 400px">
flowchart TB;a[APA];
</pre>
<pre class="mermaid2" style="margin-left: 100px">
graph TD
work --> sleep
sleep --> work
eat --> sleep
work --> eat
</pre>
<pre class="mermaid2" style="margin-left: 100px">
flowchart TD
work --> sleep
sleep --> work
eat --> sleep
work --> eat
</pre>
<pre class="mermaid2" style="">
graph TB
A
B
subgraph foo[Foo SubGraph]
C
D
end
subgraph bar[Bar SubGraph]
E
F
end
G
A-->B
B-->C
C-->D
B-->D
D-->E
E-->A
E-->F
F-->D
F-->G
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:2px,stroke:#0F0,color:blue
</pre>
<pre class="mermaid2" style="">
graph TB
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
A
B
subgraph foo[Foo SubGraph]
C
D
end
subgraph bar[Bar SubGraph]
E
F
end
G
A-->B
B-->C
C-->D
B-->D
D-->E
E-->A
E-->F
F-->D
F-->G
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
</pre>
<pre class="mermaid2" style="">
<div>Security check</div>
<pre id="diagram" class="mermaid">
graph TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
graph TD
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
flowchart TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
flowchart TD
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
flowchart LR
a["<strong>Haiya</strong>"]---->b
</pre>
<pre class="mermaid" style="">
flowchart LR
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
a["<strong>Haiya</strong>"]---->b
</pre>
<pre class="mermaid2" style="">
flowchart TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
flowchart TD
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
</pre>
<pre class="mermaid2" style="">
%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class12 <|.. Class08
Class11 ..>Class12
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
</pre>
<pre class="mermaid2" style="">
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class12 <|.. Class08
Class11 ..>Class12
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
</pre>
<pre class="mermaid" style="">
flowchart BT
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
A["test"] --"<p><style> * { display : none}</style>test</p>"--> B
</pre>
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<!-- <script src="./mermaid.js"></script> -->
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
await mermaid.registerExternalDiagrams([mindmap]);
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'neutral',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
theme: 'default',
startOnLoad: true,
logLevel: 0,
flowchart: { curve: 'cardinal', htmlLabels: false },
// htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
// sequence: { actorFontFamily: 'courier', actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
fontFamily: 'courier',
// fontSize: 18,
// curve: 'cardinal',
securityLevel: 'loose',
// themeVariables: {relationLabelColor: 'red'}
flowchart: {
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
useMaxWidth: false,
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
</script>
</body>
</html>

View File

@@ -54,7 +54,7 @@ function merge(current, update) {
if (
current.hasOwnProperty(key) &&
typeof current[key] === 'object' &&
!(current[key] instanceof Array)
!Array.isArray(current[key])
) {
merge(current[key], update[key]);
@@ -120,7 +120,9 @@ const contentLoadedApi = function () {
(svgCode, bindFunctions) => {
div.innerHTML = svgCode;
if (bindFunctions) bindFunctions(div);
if (bindFunctions) {
bindFunctions(div);
}
},
div
);

View File

@@ -94,7 +94,7 @@
}
// var diagram = ` graph TD
// A --> B["&lt;a href='javasc`;
// A --> B["&lt;a href='javascript`;
// diagram += `ript#colon;xssAttack()'&gt;AAA&lt;/a&gt;"]`;
let diagram = ` graph TD
A --> B["<a href='javasc`;

8
cypress/tsconfig.json Normal file
View File

@@ -0,0 +1,8 @@
{
"compilerOptions": {
"target": "es2020",
"lib": ["es2020", "dom"],
"types": ["cypress", "node"]
},
"include": ["**/*.ts"]
}

View File

@@ -17,7 +17,10 @@
<h1>Class diagram demos</h1>
<pre class="mermaid">
classDiagram
---
title: Demo Class Diagram
---
classDiagram
accTitle: Demo Class Diagram
accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
@@ -135,7 +138,20 @@
Pineapple : -int leafCount()
Pineapple : -int spikeCount()
</pre>
<hr />
<pre class="mermaid">
classDiagram
class Person {
+Id : Guid
+FirstName : string
+LastName : string
-privateProperty : string
#ProtectedProperty : string
~InternalProperty : string
~AnotherInternalProperty : List~List~string~~
}
</pre>
<hr />
<script src="./mermaid.js"></script>

View File

@@ -19,41 +19,57 @@
<body>
<pre class="mermaid">
---
title: This is a title
---
erDiagram
%% title This is a title
%% accDescription Test a description
erDiagram
%% title This is a title
%% accDescription Test a description
"Person . CUSTOMER"||--o{ ORDER : places
"Person . CUSTOMER"||--o{ ORDER : places
ORDER ||--|{ "€£LINE_ITEM ¥" : contains
ORDER ||--|{ "€£LINE_ITEM ¥" : contains
"Person . CUSTOMER" }|..|{ "Address//StreetAddress::[DELIVERY ADDRESS]" : uses
"Person . CUSTOMER" }|..|{ "Address//StreetAddress::[DELIVERY ADDRESS]" : uses
"Address//StreetAddress::[DELIVERY ADDRESS]" {
int customerID FK
string line1 "this is the first address line comment"
string line2
string city
string region
string state
string(5) postal_code
string country
}
"Address//StreetAddress::[DELIVERY ADDRESS]" {
int customerID FK
string line1 "this is the first address line comment"
string line2
string city
string region
string state
string postal_code
string country
}
"a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
string name "this is an entity with an absurd name just to show characters that are now acceptable as long as the name is in double quotes"
}
"a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
string name "this is an entity with an absurd name just to show characters that are now acceptable as long as the name is in double quotes"
}
"€£LINE_ITEM ¥" {
int orderID FK
int currencyId FK
number price
number quantity
number adjustment
number final_price
}
</pre>
<hr />
"€£LINE_ITEM ¥" {
int orderID FK
int currencyId FK
number price
number quantity
number adjustment
number final_price
<pre class="mermaid">
erDiagram
"HOSPITAL" {
int id PK
int doctor_id FK
string address UK
string name
string phone_number
string fax_number
}
</pre>
<hr />
<script src="./mermaid.js"></script>
<script type="module">

View File

@@ -17,6 +17,9 @@
<h2>Sample 1</h2>
<h3>graph</h3>
<pre class="mermaid">
---
title: This is a complicated flow
---
graph LR
accTitle: This is a complicated flow
accDescr: This is the descriptoin for the complicated flow.
@@ -221,6 +224,9 @@
<h2>Sample 2</h2>
<h3>graph</h3>
<pre class="mermaid">
---
title: What to buy
---
graph TD
accTitle: What to buy
accDescr: Options of what to buy with Christmas money

View File

@@ -74,22 +74,22 @@
<pre class="mermaid">
gantt
title Hide today marker (vertical line should not be visible)
dateFormat YYYY-MM-DD
axisFormat %d
dateFormat Z
axisFormat %d/%m
todayMarker off
section Section1
Today: 1, -1h
Today: 1, -01:00, 5min
</pre>
<hr />
<pre class="mermaid">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)
dateFormat YYYY-MM-DD
axisFormat %d
dateFormat Z
axisFormat %d/%m
todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
section Section1
Today: 1, -1h
Today: 1, -01:00, 5min
</pre>
<hr />

View File

@@ -16,6 +16,9 @@
<body>
<h1>Git diagram demo</h1>
<pre class="mermaid">
---
title: Simple Git diagram
---
gitGraph:
options
{

View File

@@ -48,6 +48,9 @@
<li>
<h2><a href="./journey.html">Journey</a></h2>
</li>
<li>
<h2><a href="./mindmap.html">Mindmap</a></h2>
</li>
<li>
<h2><a href="./pie.html">Pie</a></h2>
</li>

View File

@@ -16,8 +16,10 @@
<body>
<h1>Journey diagram demo</h1>
<pre class="mermaid">
journey
title My working day
---
title: My working day
---
journey
accTitle: Very simple journey demo
accDescr: 2 main sections: work and home, each with just a few tasks

108
demos/mindmap.html Normal file
View File

@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mindmap Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Mindmap diagram demo</h1>
<pre class="mermaid">
mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
</pre>
<h2>Mindmap with root wrapping text and a shape</h2>
<pre class="mermaid">
mindmap
root[A root with a long text that wraps to keep the node size in check]
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import mermaidMindmap from './mermaid-mindmap.esm.mjs';
const ALLOWED_TAGS = [
'a',
'b',
'blockquote',
'br',
'dd',
'div',
'dl',
'dt',
'em',
'foreignObject',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'h7',
'h8',
'hr',
'i',
'li',
'ul',
'ol',
'p',
'pre',
'span',
'strike',
'strong',
'table',
'tbody',
'td',
'tfoot',
'th',
'thead',
'tr',
];
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
await mermaid.registerExternalDiagrams([mermaidMindmap]);
mermaid.initialize({
theme: 'base',
startOnLoad: true,
logLevel: 0,
flowchart: {
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
useMaxWidth: false,
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -15,68 +15,206 @@
<body>
<h1>State diagram demos</h1>
<h2>Very simple showing change from State1 to State2</h2>
<pre class="mermaid">
stateDiagram
accTitle: This is the accessible title
---
title: Very simple diagram
---
stateDiagram
accTitle: This is the accessible title
accDescr:This is an accessible description
State1 --> State2
</pre>
<hr />
<h2>This has classDef statements to apply style classes to specific states</h2>
<h4>Here are the <code>classDef</code> statements:</h4>
<p>
<code>
classDef notMoving fill:white<br />
classDef movement font-style:italic<br />
classDef badBadEvent
fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow<br />
</code>
</p>
<h4>And these are how they are applied:</h4>
<p>
<code>
class Still notMoving<br />
class Moving, Crash movement<br />
class Crash badBadEvent<br />
</code>
</p>
<pre class="mermaid">
stateDiagram-v2
accTitle: This is the accessible title
---
title: Very simple diagram
---
stateDiagram
direction TB
accTitle: This is the accessible title
accDescr: This is an accessible description
[*] --> Still
classDef notMoving fill:white
classDef movement font-style:italic
classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
[*]--> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
class Still notMoving
class Moving, Crash movement
class Crash badBadEvent
class end badBadEvent
</pre>
<hr />
<h2>Here is a diagram that uses the ::: operator to apply styles to states</h2>
<h4>Here are the <code>classDef</code> statements:</h4>
<p>
<code>
classDef notMoving fill:white<br />
classDef movement font-style:italic<br />
classDef badBadEvent
fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow<br />
</code>
</p>
<h4>And these are how they are applied:</h4>
<p>
<code>
[*] --> Still:::notMoving<br />
...<br />
Still --> Moving:::movement<br />
...<br />
Moving --> Crash:::movement<br />
Crash:::badBadEvent --> [*]<br />
</code>
</p>
<p>
Note that both the starting state and the end state have styles applied:<br />
The start state has the <i>start</i> classDef style<br />and the end state has the
<i>stop</i> classDef style applied.
</p>
<pre class="mermaid">
stateDiagram
direction TB
accTitle: This is the accessible title
accDescr: This is an accessible description
classDef notMoving fill:white
classDef movement font-style:italic
classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
[*] --> Still:::notMoving
Still --> [*]
Still --> Moving:::movement
Moving --> Still
Moving --> Crash:::movement
Crash:::badBadEvent --> [*]
</pre>
<hr />
<pre class="mermaid">
stateDiagram-v2
accTitle: very very simple state
accDescr: This is a state diagram showing one state
State1
accDescr: This is a state diagram showing one state
State1
</pre>
<hr />
<h2>States with spaces in them</h2>
<pre class="mermaid">
stateDiagram
stateDiagram
classDef yourState font-style:italic,font-weight:bold,fill:white
yswsii: Your state with spaces in it
[*] --> yswsii:::yourState
[*] --> SomeOtherState
SomeOtherState --> YetAnotherState
yswsii --> YetAnotherState
YetAnotherState --> [*]
</pre>
<hr />
<h2>You can label the relationships</h2>
<pre class="mermaid">
stateDiagram-v2
[*] --> State1
State1 --> State2 : Transition 1
State1 --> State3 : Transition 2
State1 --> State4 : Transition 3
State1 --> [*]
</pre>
<hr />
<h2>This shows Composite states</h2>
<pre class="mermaid">
stateDiagram-v2
[*] --> First
First --> Second
First --> Third
state First {
[*] --> second
second --> [*]
[*] --> 1st
1st --> [*]
}
state Second {
[*] --> 2nd
2nd --> [*]
}
state Third {
[*] --> 3rd
3rd --> [*]
}
</pre>
<hr />
<h2>Compsite states can link to themselves</h2>
<pre class="mermaid">
stateDiagram
State1: The state with a note
note right of State1
Important information! You can write
notes.
end note
State1 --> State2
note left of State2 : This is the note to the left.
stateDiagram-v2
state Active {
Idle
}
Inactive --> Idle: ACT
Active --> Active: LOG
</pre>
<hr />
<h2>transition labels can span multiple lines using "br" tags or \n</h2>
<pre class="mermaid">
stateDiagram
State1
note right of State1
Line1<br>Line2<br />Line3<br />Line4<br />Line5
end note
stateDiagram-v2
[*] --> S1
S1 --> S2: This long line uses a br tag<br />to create multiple<br />lines.
S1 --> S3: This transition descripton uses \na newline character\nto create multiple\nlines.
</pre>
<hr />
<h2>You can add Notes</h2>
<pre class="mermaid">
stateDiagram-v2
direction LR
State1: A state with a note
note right of State1
Important information!<br />You can write notes.<br />And\nthey\ncan\nbe\nmulti-\nline.
end note
State1 --> State2
note left of State2 : Notes can be to the left of a state\n(like this one).
note right of State2 : Notes can be to the right of a state\n(like this one).
</pre>
<hr />
<script src="./mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'base',
theme: 'default',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/CHANGELOG.md](../packages/mermaid/src/docs/CHANGELOG.md).
# Change Log
@@ -13,10 +17,10 @@ All changes are in descending order, beginning with the newest (latest) version.
🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) |
📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0)
This version brings with it a system for [dynamic and integrated configuration of the diagram themes](./theming.md).
This version brings with it a system for [dynamic and integrated configuration of the diagram themes](config/theming.md).
The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls.
Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md).
Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](config/8.6.0_docs.md).
**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.**
@@ -493,7 +497,7 @@ mermaidAPI.initialize({
- Clarify the need for a CSS stylesheet [#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb))
- Added hads downstream project [#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied))
- update usage and fix #273 [#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance))
- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur))
- Add <https://github.com/raghur/mermaid-filter> to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur))
- New neutral theme [#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied))
- fix cli issues [#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page))
- Add missing space for 'Labels out of bounds' section [#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist))
@@ -657,7 +661,7 @@ mermaidAPI.initialize({
**Closed issues:**
- Installing “atom-mermaid@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218)
- Installing “atom-mermaid\@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218)
- node feature request [#211](https://github.com/knsv/mermaid/issues/211)
- Please add prefix for styles [#208](https://github.com/knsv/mermaid/issues/208)
- Bad handling of block arguments [#207](https://github.com/knsv/mermaid/issues/207)
@@ -667,7 +671,7 @@ mermaidAPI.initialize({
- Broken CLI Graphs? (v0.5.1) [#196](https://github.com/knsv/mermaid/issues/196)
- Static site does not render under HTTPS [#194](https://github.com/knsv/mermaid/issues/194)
- Error on simple graph [#192](https://github.com/knsv/mermaid/issues/192)
- Escape "~" [#191](https://github.com/knsv/mermaid/issues/191)
- Escape "\~" [#191](https://github.com/knsv/mermaid/issues/191)
- Trying to add link using 'click' to flowchart [#188](https://github.com/knsv/mermaid/issues/188)
- cli: no lines and arrowheads rendered / only dotted lines [#187](https://github.com/knsv/mermaid/issues/187)
- text of mermaid div displayed on page [#186](https://github.com/knsv/mermaid/issues/186)
@@ -789,7 +793,7 @@ mermaidAPI.initialize({
**Closed issues:**
- subgraph background is black in rendered flowchart PNG via CLI [#121](https://github.com/knsv/mermaid/issues/121)
- Integrate editor at https://github.com/naseer/mermaid-webapp [#110](https://github.com/knsv/mermaid/issues/110)
- Integrate editor at <https://github.com/naseer/mermaid-webapp> [#110](https://github.com/knsv/mermaid/issues/110)
- Internet Explorer Support [#99](https://github.com/knsv/mermaid/issues/99)
## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15)

View File

@@ -1,22 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Configuration
Configuration is the second half of Mermaid, after deployment. Together Deployment and Configuration constitute the whole of Mermaid.
This section will introduce the different methods of configuring of the behaviors and appearances of Mermaid Diagrams.
The Following are the most commonly used methods, and are all tied to Mermaid [Deployment](./n00b-gettingStarted.md) methods.
## Configuration Section in the [Live Editor](https://mermaid.live/).
## The `initialize()` call, for when Mermaid is called via an API, or through a <script> tag.
## [Directives](./directives.md),
Directives allows limited reconfiguration of a diagram just before it is rendered. It can alter the font style, color and other aesthetic aspects of the diagram. You can pass a directive alongside your definition inside `%%{ }%%`, either above or below your diagram definition.
## Theme Creation:
An application of using Directives to change [Themes](./theming.md). `Theme` is an value within mermaid's configuration that dictates the color scheme for diagrams.
If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](./Setup.md) here. It includes themes

View File

@@ -1,17 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Summary
- [mermaid](README.md)
- [FAQ](faq.md)
- [Breaking changes](breakingChanges.md)
- [Usage](usage.md)
- [Flowchart](flowchart.md)
- [Sequence diagram](sequenceDiagram.md)
- [Gantt diagram](gantt.md)
- [mermaid CLI](mermaidCLI.md)
- [Demos](demos.md)
- [mermaidAPI](mermaidAPI.md)
- [Development](development.md)
- [Upgrading](upgrading.md)
- [Contribute to this website](https://github.com/mermaidjs/mermaid-gitbook)

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
- Getting started
- [Quick start](quickstart.md)
- [Writing more pages](more-pages.md)
- [Custom navbar](custom-navbar.md)
- [Cover page](cover.md)
- Configuration
- [Configuration](configuration.md)
- [Themes](themes.md)
- [Using plugins](plugins.md)
- [Markdown configuration](markdown.md)
- [Language highlight](language-highlight.md)

View File

@@ -1,46 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
- 📔 Introduction
- [About Mermaid](README.md)
- [Deployment](n00b-gettingStarted.md)
- [Syntax and Configuration](n00b-syntaxReference.md)
- 📊 Diagram Syntax
- [Flowchart](flowchart.md)
- [Sequence Diagram](sequenceDiagram.md)
- [Class Diagram](classDiagram.md)
- [State Diagram](stateDiagram.md)
- [Entity Relationship Diagram](entityRelationshipDiagram.md)
- [User Journey](user-journey.md)
- [Gantt](gantt.md)
- [Pie Chart](pie.md)
- [Requirement Diagram](requirementDiagram.md)
- [Gitgraph (Git) Diagram 🔥](gitgraph.md)
- [C4C Diagram (Context) Diagram 🦺⚠️](c4c.md)
- [Mindmaps 🦺⚠️](mindmap.md)
- [Other Examples](examples.md)
- ⚙️ Deployment and Configuration
- [Tutorials](Tutorials.md)
- [API-Usage](usage.md)
- [Mermaid API Configuration](Setup.md)
- [Directives](directives.md)
- [Theming](theming.md)
- [Accessibility](accessibility.md)
- [Mermaid CLI](mermaidCLI.md)
- [Advanced usage](n00b-advanced.md)
- 📚 Misc
- [Use-Cases and Integrations](integrations.md)
- [FAQ](faq.md)
- 🙌 Contributions and Community
- [Overview for Beginners](n00b-overview.md)
- [Development and Contribution ](development.md)
- [Changelog](CHANGELOG.md)
- [Adding Diagrams ](newDiagram.md)
- [Security ](security.md)

View File

@@ -1,356 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Accessibility Options
## Accessibility
Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community.
To begin with, we have added a new feature to Mermaid library, which is to support accessibility options, **Accessibility Title** and **Accessibility Description**.
This support for accessibility options is available for all the diagrams/chart types. Also, we have tired to keep the same format for the accessibility options, so that it is easy to understand and maintain.
## Defining Accessibility Options
### Single line accessibility values
The diagram authors can now add the accessibility options in the diagram definition, using the `accTitle` and `accDescr` keywords, where each keyword is followed by `:` and the string value for title and description like:
- `accTitle: "Your Accessibility Title"` or
- `accDescr: "Your Accessibility Description"`
**When these two options are defined, they will add a corresponding `<title>` and `<desc>` tag in the SVG.**
Let us take a look at the following example with a flowchart diagram:
```mermaid-example
graph LR
accTitle: Big decisions
accDescr: Flow chart of the decision making process
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
```
```mermaid
graph LR
accTitle: Big decisions
accDescr: Flow chart of the decision making process
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
```
See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code:
![Accessibility options rendered inside SVG](img/accessibility-div-example.png)
### Multi-line Accessibility title/description
You can also define the accessibility options in a multi-line format, where the keyword is followed by opening curly bracket `{` and then multiple lines, followed by a closing `}`.
`accTitle: My single line title value` (**_single line format_**)
vs
`accDescr: { My multi-line description of the diagram }` (**_multi-line format_**)
Let us look at it in the following example, with same flowchart:
```mermaid-example
graph LR
accTitle: Big decisions
accDescr {
My multi-line description
of the diagram
}
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
```
```mermaid
graph LR
accTitle: Big decisions
accDescr {
My multi-line description
of the diagram
}
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
```
See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code:
![Accessibility options rendered inside SVG](img/accessibility-div-example-2.png)
### Sample Code Snippet for other diagram types
#### Sequence Diagram
```mermaid-example
sequenceDiagram
accTitle: My Sequence Diagram
accDescr: My Sequence Diagram Description
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
```
```mermaid
sequenceDiagram
accTitle: My Sequence Diagram
accDescr: My Sequence Diagram Description
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
```
#### Class Diagram
```mermaid-example
classDiagram
accTitle: My Class Diagram
accDescr: My Class Diagram Description
Vehicle <|-- Car
```
```mermaid
classDiagram
accTitle: My Class Diagram
accDescr: My Class Diagram Description
Vehicle <|-- Car
```
#### State Diagram
```mermaid-example
stateDiagram
accTitle: My State Diagram
accDescr: My State Diagram Description
s1 --> s2
```
```mermaid
stateDiagram
accTitle: My State Diagram
accDescr: My State Diagram Description
s1 --> s2
```
#### Entity Relationship Diagram
```mermaid-example
erDiagram
accTitle: My Entity Relationship Diagram
accDescr: My Entity Relationship Diagram Description
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
```mermaid
erDiagram
accTitle: My Entity Relationship Diagram
accDescr: My Entity Relationship Diagram Description
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
#### User Journey Diagram
```mermaid-example
journey
accTitle: My User Journey Diagram
accDescr: My User Journey Diagram Description
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
```
```mermaid
journey
accTitle: My User Journey Diagram
accDescr: My User Journey Diagram Description
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
```
#### Gantt Chart
```mermaid-example
gantt
accTitle: My Gantt Chart Accessibility Title
accDescr: My Gantt Chart Accessibility Description
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
```mermaid
gantt
accTitle: My Gantt Chart Accessibility Title
accDescr: My Gantt Chart Accessibility Description
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
#### Pie Chart
```mermaid-example
pie
accTitle: My Pie Chart Accessibility Title
accDescr: My Pie Chart Accessibility Description
title Key elements in Product X
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
```
```mermaid
pie
accTitle: My Pie Chart Accessibility Title
accDescr: My Pie Chart Accessibility Description
title Key elements in Product X
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
```
#### Requirement Diagram
```mermaid-example
requirementDiagram
accTitle: My Requirement Diagram
accDescr: My Requirement Diagram Description
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
```
```mermaid
requirementDiagram
accTitle: My Requirement Diagram
accDescr: My Requirement Diagram Description
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
```
#### Gitgraph
```mermaid-example
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```
```mermaid
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```

View File

@@ -1,51 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Breaking changes
### Breaking changes from history version to latest version:
## #1
```javascript
mermaid.initialize({
sequenceDiagram:{
...
}
})
```
has been changed to
```javascript
mermaid.initialize({
sequence:{
...
}
})
```
## #2
In old versions you needed to reference a CSS file in your HTML:
```html
<link rel="stylesheet" href="mermaid.min.css" />
```
or
```html
<link rel="stylesheet" href="mermaid.forest.min.css" />
```
Now it is not needed, and there are no more CSS files in the distribution files.
You just:
```javascript
mermaid.initialize({
theme: 'forest',
});
```
and it works like a charm because now the CSS is inline with the SVG to allow simpler portability.

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/development.md](../../packages/mermaid/src/docs/community/development.md).
# Development and Contribution 🙌
@@ -8,7 +12,7 @@ So you want to help? That's great!
Here are a few things to get you started on the right path.
**The Docs Structure is dictated by [sidebar.md](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)**
**The Docs Structure is dictated by [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
**Note: Commits and Pull Requests should be directed to the develop branch.**
@@ -28,7 +32,7 @@ We make all changes via Pull Requests. As we have many Pull Requests from develo
- Large changes reviewed by knsv or other developer asked to review by knsv
- Smaller, low-risk changes like dependencies, documentation, etc. can be merged by active collaborators
- Documentation (we encourage updates to the `src/docs` folder; you can submit them via direct commits)
- Documentation (we encourage updates to the `/packages/mermaid/src/docs` folder; you can submit them via direct commits)
When you commit code, create a branch with the following naming convention:
@@ -46,9 +50,9 @@ Start with the type, such as **feature** or **bug**, followed by the issue numbe
If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature?
The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via the **[sidebar](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)**.
The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via **[.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
> **All the documents displayed in the GitHub.io page are listed in [sidebar.md](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)**.
> **All the documents displayed in the GitHub.io page are listed in [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
The contents of <https://mermaid-js.github.io/mermaid/> are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid-js.github.io/mermaid/) once released.
@@ -60,7 +64,7 @@ The documentation is located in the `src/docs` directory and organized according
The `docs` folder will be automatically generated when committing to `src/docs` and should not be edited manually.
We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s)
We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s)
### Add Unit Tests for Parsing
@@ -113,7 +117,7 @@ Markdown is used to format the text, for more information about Markdown [see th
To edit Docs on your computer:
1. Find the Markdown file (.md) to edit in the [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs) directory in the `develop` branch.
1. Find the Markdown file (.md) to edit in the [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) directory in the `develop` branch.
2. Create a fork of the develop branch.
3. Make changes or add new documentation.
4. Commit changes to your fork and push it to GitHub.
@@ -122,7 +126,7 @@ To edit Docs on your computer:
To edit Docs on GitHub:
1. Login to [GitHub.com](https://www.github.com).
2. Navigate to [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs).
2. Navigate to [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs).
3. To edit a file, click the pencil icon at the top-right of the file contents panel.
4. Describe what you changed in the **Propose file change** section, located at the bottom of the page.
5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch).

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/n00b-overview.md](../../packages/mermaid/src/docs/community/n00b-overview.md).
# Overview for Beginners
@@ -41,7 +45,7 @@ It is a relatively straightforward solution to a significant hurdle with the sof
**Nodes**
> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](./n00b-syntaxReference)
> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../intro/n00b-syntaxReference.md)
## Advantages of using Mermaid
@@ -65,6 +69,6 @@ In fact one can pick up the syntax for it quite easily from the examples given a
## Mermaid is for everyone.
Video [Tutorials](https://mermaid-js.github.io/mermaid/#/./Tutorials) are also available for the mermaid [live editor](https://mermaid.live/).
Video [Tutorials](https://mermaid-js.github.io/mermaid/#/../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/).
Alternatively you can use Mermaid [Plug-Ins](https://mermaid-js.github.io/mermaid/#/./integrations), with tools you already use, like Google Docs.

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/newDiagram.md](../../packages/mermaid/src/docs/community/newDiagram.md).
# Adding a New Diagram/Chart 📊
@@ -10,8 +14,8 @@ This would be to define a jison grammar for the new diagram type. That should st
For instance:
- the flowchart starts with the keyword graph.
- the sequence diagram starts with the keyword sequenceDiagram
- the flowchart starts with the keyword _graph_
- the sequence diagram starts with the keyword _sequenceDiagram_
#### Store data found during parsing
@@ -28,9 +32,8 @@ statement
In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered.
```tip
Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user.
```
> **Note**
> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user.
For more info look in the example diagram type:
@@ -45,8 +48,7 @@ exports.parseError = function (err, hash) {
when parsing the `yy` object is initialized as per below:
```javascript
var parser;
parser = exampleParser.parser;
const parser = exampleParser.parser;
parser.yy = db;
```
@@ -58,7 +60,12 @@ Place the renderer in the diagram folder.
### Step 3: Detection of the new diagram type
The second thing to do is to add the capability to detect the new new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type.
The second thing to do is to add the capability to detect the new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type.
[This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type.
For example, if your new diagram use a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader
would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram.
Note that the diagram type key does not have to be the same as the diagram keyword chosen for the [grammar](#grammar), but it is helpful if they are the same.
### Step 4: The final piece - triggering the rendering
@@ -69,8 +76,8 @@ At this point when mermaid is trying to render the diagram, it will detect it as
### Setup
```javascript
var graph = require('./graphDb');
var flow = require('./parser/flow');
const graph = require('./graphDb');
const flow = require('./parser/flow');
flow.parser.yy = graph;
```
@@ -91,7 +98,7 @@ graph.getEdges();
The parser is also exposed in the mermaid api by calling:
```javascript
var parser = mermaid.getParser();
const parser = mermaid.getParser();
```
Note that the parse needs a graph object to store the data as per:
@@ -117,13 +124,12 @@ There are a few features that are common between the different types of diagrams
Here some pointers on how to handle these different areas.
#### [Directives](./directives.md)
#### [Directives](../config/directives.md)
Here is example handling from flowcharts:
Jison:
```jison
/* lexical grammar */
%lex
%x open_directive
@@ -167,19 +173,26 @@ It is probably a good idea to keep the handling similar to this in your new diag
## Accessibility
The syntax for adding title and description looks like this:
Mermaid automatically adds the following accessibility information for the diagram SVG HTML element:
accTitle: The title
accDescr: The description
- aria-roledescription
- accessible title
- accessible description
accDescr {
Syntax for a description text
written on multiple lines.
}
### aria-roledescription
In a similar way to the directives the jison syntax are quite similar between the diagrams.
The aria-roledescription is automatically set to [the diagram type](#step-3--detection-of-the-new-diagram-type) and inserted into the SVG element.
See [the definition of aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription) in [the Accessible Rich Internet Applications W3 standard.](https://www.w3.org/WAI/standards-guidelines/aria/)
### accessible title and description
The syntax for accessible titles and descriptions is described in [the Accessibility documenation section.](../config/accessibility.md)
In a similar way to the directives, the jison syntax are quite similar between the diagrams.
```jison
* lexical grammar */
%lex
%x acc_title
@@ -199,6 +212,7 @@ statement
: acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); }
| acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }
| acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); }
```
The functions for setting title and description are provided by a common module. This is the import from flowDb.js:
@@ -211,22 +225,11 @@ The functions for setting title and description are provided by a common module.
clear as commonClear,
} from '../../commonDb';
For rendering the accessibility tags you have again an existing function you can use.
**In the renderer:**
```js
import addSVGAccessibilityFields from '../../accessibility';
/* ... */
// Adds title and description to the flow chart
addSVGAccessibilityFields(parser.yy, svg, id);
```
The accessibility title and description are inserted into the SVG element in the `render` function in mermaidAPI.
## Theming
Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](./theming.md).
Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md).
When adding themes to a diagram it comes down to a few important locations in the code.

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/security.md](../../packages/mermaid/src/docs/community/security.md).
# Security
@@ -6,13 +10,13 @@ The Mermaid team takes the security of Mermaid and the applications that use Mer
## Reporting vulnerabilities
To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
To report a vulnerability, please e-mail <security@mermaid.live> with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
We aim to reply within three working days, probably much sooner.
You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to security@mermaid.live again if you do not receive prompt attention and regular updates.
You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to <security@mermaid.live> again if you do not receive prompt attention and regular updates.
You may also reach out to the team via our public Slack chat channels; however, please make sure to e-mail security@mernaid.live when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk.
You may also reach out to the team via our public Slack chat channels; however, please make sure to e-mail <security@mermaid.live> when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk.
## Best practices

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/8.6.0_docs.md](../../packages/mermaid/src/docs/config/8.6.0_docs.md).
# Version 8.6.0 Changes
@@ -8,8 +12,8 @@
With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.
`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](./Setup.md).
This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams.
`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](../config/configuration.md).
This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](directives.md), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams.
**A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.**
@@ -48,9 +52,8 @@ Implementors can only modify configurations using directives, and cannot change
The Two types of directives: are `init` (or `initialize`) and `wrap`.
```note
All directives are enclosed in `%%{ }%%`
```
> **Note**
> All directives are enclosed in `%%{ }%%`
Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible.
@@ -62,18 +65,17 @@ Older versions of mermaid will not parse directives because `%%` will comment ou
| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- |
| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array |
```note
init would be an argument-directive: `%%{init: { **insert argument here**}}%%`
The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored.
**for example**:
`%%{init: {"theme": "default", "logLevel": 1 }}%%`
Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict.
When deployed within code, init is called before the graph/diagram description.
```
> **Note**
> init would be an argument-directive: `%%{init: { **insert argument here**}}%%`
>
> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored.
> **for example**:
>
> `%%{init: {"theme": "default", "logLevel": 1 }}%%`
>
> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict.
>
> When deployed within code, init is called before the graph/diagram description.
**for example**:
@@ -107,19 +109,18 @@ When deployed within code, init is called before the graph/diagram description.
| --------- | ----------------------------- | --------- | -------- | ---------- |
| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% |
```note
Wrap is a function that is currently only deployable for sequence diagrams.
Wrap respects a manually added <br\>, so if the user wants to break up their text, they have full control over line breaks by adding <br\> tags.
It is a non-argument directive and can be executed thusly:
`%%{wrap}%%` .
```
> **Note**
> Wrap is a function that is currently only deployable for sequence diagrams.
>
> `Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.`
>
> It is a non-argument directive and can be executed thusly:
>
> `%%{wrap}%%` .
**An example of text wrapping in a sequence diagram**:
![Image showing wrapped text](img/wrapped%20text.png)
!\[Image showing wrapped text]\(img/wrapped text.png)
# Resetting Configurations:
@@ -143,7 +144,7 @@ Example of **assignWithDepth**:
Example of **object.Assign**:
![Image showing object.assign without depth](img/object.assign%20without%20depth.png)
!\[Image showing object.assign without depth]\(img/object.assign without depth.png)
**calculateTextDimensions**, **calculateTextWidth** and **calculateTextHeight** - for measuring text dimensions, width and height.
@@ -157,13 +158,12 @@ Example of **object.Assign**:
| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- |
| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig |
```note
Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset
the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig
to the defaultConfig
Note: currentConfig is set in this function。
Default value: will mirror Global Config
```
> **Note**
> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset
> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig
> to the defaultConfig
> Note: currentConfig is set in this function。
> Default value: will mirror Global Config
## getSiteConfig
@@ -171,9 +171,8 @@ Default value: will mirror Global Config
| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- |
| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` |
```note
Returns any values in siteConfig.
```
> **Note**
> Returns any values in siteConfig.
## setConfig
@@ -181,11 +180,10 @@ Returns any values in siteConfig.
| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- |
| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf |
```note
Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any
values found in conf with key found in siteConfig.secure will be replaced with the corresponding
siteConfig value.
```
> **Note**
> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any
> values found in conf with key found in siteConfig.secure will be replaced with the corresponding
> siteConfig value.
## getConfig
@@ -193,9 +191,8 @@ siteConfig value.
| ----------- | --------------------------- | ----------- | ------------------------------- |
| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` |
```note
Returns any values in currentConfig.
```
> **Note**
> Returns any values in currentConfig.
## sanitize
@@ -203,10 +200,9 @@ Returns any values in currentConfig.
| ---------- | ---------------------------------------- | -------------- | ------ |
| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None |
```note
modifies options in-place
Ensures options parameter does not attempt to override siteConfig secure keys.
```
> **Note**
> modifies options in-place
> Ensures options parameter does not attempt to override siteConfig secure keys.
## reset
@@ -220,8 +216,7 @@ Ensures options parameter does not attempt to override siteConfig secure keys.
| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- |
| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array |
```note
default: current siteConfig (optional, default `getSiteConfig()`)
```
> **Note**
> default: current siteConfig (optional, default `getSiteConfig()`)
## For more information, read [Setup](Setup.md).
## For more information, read [Setup](./setup/README.md).

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/Tutorials.md](../../packages/mermaid/src/docs/config/Tutorials.md).
# Tutorials
@@ -6,7 +10,7 @@ This is list of publicly available Tutorials for using Mermaid.JS . This is inte
**Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.**
For most purposes, you can use the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor), to quickly and easily render a diagram.
For most purposes, you can use the [Live Editor](https://mermaid.live), to quickly and easily render a diagram.
## Live-Editor Tutorials
@@ -24,19 +28,19 @@ The definitions that can be generated the Live-Editor are also backwards-compati
## Mermaid with HTML
Examples are provided in [Getting Started](n00b-gettingStarted.md)
Examples are provided in [Getting Started](../intro/n00b-gettingStarted.md)
**CodePen Examples:**
https://codepen.io/CarlBoneri/pen/BQwZzq
<https://codepen.io/CarlBoneri/pen/BQwZzq>
https://codepen.io/tdkn/pen/vZxQzd
<https://codepen.io/tdkn/pen/vZxQzd>
https://codepen.io/janzeteachesit/pen/OWWZKN
<https://codepen.io/janzeteachesit/pen/OWWZKN>
## Mermaid with Text Area
https://codepen.io/Ryuno-Ki/pen/LNxwgR
<https://codepen.io/Ryuno-Ki/pen/LNxwgR>
## Mermaid in open source docs

View File

@@ -0,0 +1,436 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/accessibility.md](../../packages/mermaid/src/docs/config/accessibility.md).
# Accessibility Options
## Accessibility
Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community.
Adding accessibility means that the rich information communicated by visual diagrams can be made available to those using assistive technologies (and of course to search engines).
[Read more about Accessible Rich Internet Applications and the W3 standards.](https://www.w3.org/WAI/standards-guidelines/aria/)
Mermaid will automatically insert the [aria-roledescription](#aria-roledescription) and, if provided in the diagram text by the diagram author, the [accessible title and description.](#accessible-title-and-description)
### aria-roledescription
The [aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription) for the SVG HTML element is set to the diagram type key. (Note this may be slightly different than the keyword used for the diagram in the diagram text.)
For example: The diagram type key for a state diagram is "stateDiagram". Here (a part of) the HTML of the SVG tag that shows the automatically inserted aria-roledscription set to "stateDiagram". _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_
```html
<svg
aria-roledescription="stateDiagram"
class="statediagram"
xmlns="http://www.w3.org/2000/svg"
width="100%"
id="mermaid-1668720491568"
></svg>
```
### Accessible Title and Description
Support for accessible titles and descriptions is available for all diagrams/chart types. We have tried to keep the same keywords and format for all diagrams so that it is easy to understand and maintain.
The accessible title and description will add `<title>` and `<desc>` elements within the SVG element and the [aria-labelledby](https://www.w3.org/TR/wai-aria/#aria-labelledby) and [aria-describedby](https://www.w3.org/TR/wai-aria/#aria-describedby) attributes in the SVG tag.
Here is HTML that is generated, showing that the SVG element is labelled by the accessible title (id = `chart-title-mermaid-1668725057758`)
and described by the accessible description (id = `chart-desc-mermaid-1668725057758` );
and the accessible title element (text = "This is the accessible title")
and the accessible description element (text = "This is an accessible description").
_(Note that some of the SVG attributes and the SVG contents are omitted for clarity.)_
```html
<svg
aria-labelledby="chart-title-mermaid-1668725057758"
aria-describedby="chart-desc-mermaid-1668725057758"
xmlns="http://www.w3.org/2000/svg"
width="100%"
id="mermaid-1668725057758"
>
<title id="chart-title-mermaid-1668725057758">This is the accessible title</title>
<desc id="chart-desc-mermaid-1668725057758">This is an accessible description</desc>
</svg>
```
Details for the syntax follow.
#### accessible title
The **accessible title** is specified with the **accTitle** _keyword_, followed by a colon (`:`), and the string value for the title.
The string value ends at the end of the line. (It can only be a single line.)
Ex: `accTitle: This is a single line title`
See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated.
#### accessible description
An accessible description can be 1 line long (a single line) or many lines long.
The **single line accessible description** is specified with the **accDescr** _keyword_, followed by a colon (`:`), followed by the string value for the description.
Ex: `accDescr: This is a single line description.`
A **multiple line accessible description** _does not have a colon (`:`) after the accDescr keyword_ and is surrounded by curly brackets (`{}`).
Ex:
```markdown
accDescr {
This is a multiple line accessible description.
It does not have a colon and is surrounded by curly brackets.
}
```
See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated.
#### accTitle and accDescr Usage Examples
- Flowchart with the accessible title "Big Decisions" and the single-line accessible description "Bob's Burgers process for making big decisions"
```mermaid-example
graph LR
accTitle: Big Decisions
accDescr: Bob's Burgers process for making big decisions
A[Identify Big Descision] --> B{Make Big Decision}
B --> D[Be done]
```
```mermaid
graph LR
accTitle: Big Decisions
accDescr: Bob's Burgers process for making big decisions
A[Identify Big Descision] --> B{Make Big Decision}
B --> D[Be done]
```
Here is the HTML generated for the SVG element: _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_
```html
<svg
aria-labelledby="chart-title-mermaid_382ee221"
aria-describedby="chart-desc-mermaid_382ee221"
aria-roledescription="flowchart-v2"
xmlns="http://www.w3.org/2000/svg"
width="100%"
id="mermaid_382ee221"
>
<title id="chart-title-mermaid_382ee221">Big decisions</title>
<desc id="chart-desc-mermaid_382ee221">Bob's Burgers process for making big decisions</desc>
</svg>
```
- Flowchart with the accessible title "Bob's Burger's Making Big Decisions" and the multiple line accessible description "The official Bob's Burgers corporate processes that are used
for making very, very big decisions.
This is actually a very simple flow: identify the big decision and then make the big decision."
```mermaid-example
graph LR
accTitle: Bob's Burger's Making Big Decisions
accDescr {
The official Bob's Burgers corporate processes that are used
for making very, very big decisions.
This is actually a very simple flow: identify the big decision and then make the big decision.
}
A[Identify Big Descision] --> B{Make Big Decision}
B --> D[Be done]
```
```mermaid
graph LR
accTitle: Bob's Burger's Making Big Decisions
accDescr {
The official Bob's Burgers corporate processes that are used
for making very, very big decisions.
This is actually a very simple flow: identify the big decision and then make the big decision.
}
A[Identify Big Descision] --> B{Make Big Decision}
B --> D[Be done]
```
Here is the HTML generated for the SVG element: _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_
```html
<svg
aria-labelledby="chart-title-mermaid_382ee221"
aria-describedby="chart-desc-mermaid_382ee221"
aria-roledescription="flowchart-v2"
xmlns="http://www.w3.org/2000/svg"
width="100%"
id="mermaid_382ee221"
>
<title id="chart-title-mermaid_382ee221">Big decisions</title>
<desc id="chart-desc-mermaid_382ee221">
The official Bob's Burgers corporate processes that are used for making very, very big
decisions. This is actually a very simple flow: identify the big decision and then make the big
decision.
</desc>
</svg>
```
#### Sample Code Snippets for other diagram types
##### Class Diagram
```mermaid-example
classDiagram
accTitle: My Class Diagram
accDescr: My Class Diagram Description
Vehicle <|-- Car
```
```mermaid
classDiagram
accTitle: My Class Diagram
accDescr: My Class Diagram Description
Vehicle <|-- Car
```
##### Entity Relationship Diagram
```mermaid-example
erDiagram
accTitle: My Entity Relationship Diagram
accDescr: My Entity Relationship Diagram Description
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
```mermaid
erDiagram
accTitle: My Entity Relationship Diagram
accDescr: My Entity Relationship Diagram Description
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
##### Gantt Chart
```mermaid-example
gantt
accTitle: My Gantt Chart Accessibility Title
accDescr: My Gantt Chart Accessibility Description
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
```mermaid
gantt
accTitle: My Gantt Chart Accessibility Title
accDescr: My Gantt Chart Accessibility Description
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
##### Gitgraph
```mermaid-example
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```
```mermaid
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```
##### Pie Chart
```mermaid-example
pie
accTitle: My Pie Chart Accessibility Title
accDescr: My Pie Chart Accessibility Description
title Key elements in Product X
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
```
```mermaid
pie
accTitle: My Pie Chart Accessibility Title
accDescr: My Pie Chart Accessibility Description
title Key elements in Product X
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
```
##### Requirement Diagram
```mermaid-example
requirementDiagram
accTitle: My Requirement Diagram
accDescr: My Requirement Diagram Description
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
```
```mermaid
requirementDiagram
accTitle: My Requirement Diagram
accDescr: My Requirement Diagram Description
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
```
##### Sequence Diagram
```mermaid-example
sequenceDiagram
accTitle: My Sequence Diagram
accDescr: My Sequence Diagram Description
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
```
```mermaid
sequenceDiagram
accTitle: My Sequence Diagram
accDescr: My Sequence Diagram Description
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
```
##### State Diagram
```mermaid-example
stateDiagram
accTitle: My State Diagram
accDescr: My State Diagram Description
s1 --> s2
```
```mermaid
stateDiagram
accTitle: My State Diagram
accDescr: My State Diagram Description
s1 --> s2
```
##### User Journey Diagram
```mermaid-example
journey
accTitle: My User Journey Diagram
accDescr: My User Journey Diagram Description
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
```
```mermaid
journey
accTitle: My User Journey Diagram
accDescr: My User Journey Diagram Description
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
```

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/configuration.md](../../packages/mermaid/src/docs/config/configuration.md).
# Configuration

View File

@@ -1,4 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/directives.md](../../packages/mermaid/src/docs/config/directives.md).
# Directives
@@ -26,9 +30,10 @@ Mermaid basically supports two types of configuration options to be overridden b
2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves.
For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type.
**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code.
**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs
> **Note**
> We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon.
## Declaring directives
@@ -84,7 +89,13 @@ Here the directive declaration will set the `logLevel` to `debug` and the `theme
Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means:
```mmd2
```mermaid-example
%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%
%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%%
...
```
```mermaid
%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%
%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%%
...
@@ -92,11 +103,11 @@ Note: You can use 'init' or 'initialize' as both acceptable as init directives.
parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`:
```json5
```json
{
logLevel: 'fatal',
theme: 'dark',
startOnLoad: true,
"logLevel": "fatal",
"theme": "dark",
"startOnLoad": true
}
```
@@ -223,7 +234,7 @@ Some common flowchart configurations are:
- _diagramPadding_: number
- _useMaxWidth_: number
For complete list of flowchart configurations, see [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code.
For complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_
The following code snippet changes flowchart config:
@@ -267,7 +278,7 @@ Some common sequence configurations are:
- _showSequenceNumbers_: boolean
- _wrap_: boolean
For complete list of sequence diagram configurations, see _defaultConfig.js_ in the source code.
For complete list of sequence diagram configurations, see _defaultConfig.ts_ in the source code.
_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_
So, `wrap` by default has a value of `false` for sequence diagrams.

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -0,0 +1,9 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/mermaidCLI.md](../../packages/mermaid/src/docs/config/mermaidCLI.md).
# mermaid CLI
mermaid CLI has been moved to [mermaid-cli](https://github.com/mermaid-js/mermaid-cli). Please read its documentation instead.

View File

@@ -1,11 +1,17 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/n00b-advanced.md](../../packages/mermaid/src/docs/config/n00b-advanced.md).
# Advanced n00b mermaid (Coming soon..)
## splitting mermaid code from html
A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so:
```
stuff stuff
```html
...
</div>
</body>
</html>
@@ -13,12 +19,12 @@ stuff stuff
The actual mermaid file could for example look like this:
```javascript
mermaid content ...
```
mermaid content...
```
---
## mermaid configuration options
...
```markdown
(coming soon)
```

View File

@@ -0,0 +1,13 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/README.md](../../../packages/mermaid/src/docs/config/setup/README.md).
# mermaid
## Modules
- [config](modules/config.md)
- [defaultConfig](modules/defaultConfig.md)
- [mermaidAPI](modules/mermaidAPI.md)

View File

@@ -0,0 +1,276 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/config.md](../../../../packages/mermaid/src/docs/config/setup/modules/config.md).
# Module: config
## Variables
### defaultConfig
`Const` **defaultConfig**: `MermaidConfig`
#### Defined in
[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7)
## Functions
### addDirective
**addDirective**(`directive`): `void`
Pushes in a directive to the configuration
#### Parameters
| Name | Type | Description |
| :---------- | :---- | :----------------------- |
| `directive` | `any` | The directive to push in |
#### Returns
`void`
#### Defined in
[config.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L191)
---
### getConfig
**getConfig**(): `MermaidConfig`
## getConfig
| Function | Description | Type | Return Values |
| --------- | ------------------------- | ----------- | ------------------------------ |
| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |
**Notes**: Returns **any** the currentConfig
#### Returns
`MermaidConfig`
The currentConfig
#### Defined in
[config.ts:137](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L137)
---
### getSiteConfig
**getSiteConfig**(): `MermaidConfig`
## getSiteConfig
| Function | Description | Type | Values |
| ------------- | ------------------------------------------------- | ----------- | -------------------------------- |
| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |
**Notes**: Returns **any** values in siteConfig.
#### Returns
`MermaidConfig`
The siteConfig
#### Defined in
[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96)
---
### reset
**reset**(`config?`): `void`
## reset
| Function | Description | Type | Required | Values |
| -------- | ---------------------------- | ----------- | -------- | ------ |
| reset | Resets currentConfig to conf | Put Request | Required | None |
## conf
| Parameter | Description | Type | Required | Values |
| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |
| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |
**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)
#### Parameters
| Name | Type | Default value | Description |
| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). |
#### Returns
`void`
#### Defined in
[config.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L223)
---
### sanitize
**sanitize**(`options`): `void`
## sanitize
| Function | Description | Type | Values |
| -------- | -------------------------------------- | ----------- | ------ |
| sanitize | Sets the siteConfig to desired values. | Put Request | None |
Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies
options in-place
#### Parameters
| Name | Type | Description |
| :-------- | :---- | :-------------------------------- |
| `options` | `any` | The potential setConfig parameter |
#### Returns
`void`
#### Defined in
[config.ts:152](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L152)
---
### saveConfigFromInitialize
**saveConfigFromInitialize**(`conf`): `void`
#### Parameters
| Name | Type |
| :----- | :-------------- |
| `conf` | `MermaidConfig` |
#### Returns
`void`
#### Defined in
[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75)
---
### setConfig
**setConfig**(`conf`): `MermaidConfig`
## setConfig
| Function | Description | Type | Values |
| ------------- | ------------------------------------- | ----------- | --------------------------------------- |
| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure
keys. Any values found in conf with key found in siteConfig.secure will be replaced with the
corresponding siteConfig value.
#### Parameters
| Name | Type | Description |
| :----- | :-------------- | :-------------------------- |
| `conf` | `MermaidConfig` | The potential currentConfig |
#### Returns
`MermaidConfig`
The currentConfig merged with the sanitized conf
#### Defined in
[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113)
---
### setSiteConfig
**setSiteConfig**(`conf`): `MermaidConfig`
## setSiteConfig
| Function | Description | Type | Values |
| ------------- | ------------------------------------- | ----------- | --------------------------------------- |
| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls
to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)
will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this
function _Default value: At default, will mirror Global Config_
#### Parameters
| Name | Type | Description |
| :----- | :-------------- | :------------------------------------------ |
| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig |
#### Returns
`MermaidConfig`
The new siteConfig
#### Defined in
[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61)
---
### updateCurrentConfig
**updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig`
#### Parameters
| Name | Type |
| :------------ | :-------------- |
| `siteCfg` | `MermaidConfig` |
| `_directives` | `any`\[] |
#### Returns
`MermaidConfig`
#### Defined in
[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14)
---
### updateSiteConfig
**updateSiteConfig**(`conf`): `MermaidConfig`
#### Parameters
| Name | Type |
| :----- | :-------------- |
| `conf` | `MermaidConfig` |
#### Returns
`MermaidConfig`
#### Defined in
[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79)

View File

@@ -0,0 +1,56 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md](../../../../packages/mermaid/src/docs/config/setup/modules/defaultConfig.md).
# Module: defaultConfig
## Variables
### configKeys
`Const` **configKeys**: `string`\[]
#### Defined in
[defaultConfig.ts:1934](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1934)
---
### default
`Const` **default**: `Partial`<`MermaidConfig`>
**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click
here](8.6.0_docs.md)].**
## **What follows are config instructions for older versions**
These are the default options which can be overridden with the initialization call like so:
**Example 1:**
```js
mermaid.initialize({ flowchart: { htmlLabels: false } });
```
**Example 2:**
```html
<script>
const config = {
startOnLoad: true,
flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' },
securityLevel: 'loose',
};
mermaid.initialize(config);
</script>
```
A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).
A description of each option follows below.
#### Defined in
[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33)

View File

@@ -0,0 +1,317 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md).
# Module: mermaidAPI
## References
### default
Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
## Type Aliases
### D3Element
Ƭ **D3Element**: `any`
#### Defined in
[mermaidAPI.ts:73](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L73)
## Variables
### mermaidAPI
`Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }>
## mermaidAPI configuration defaults
```ts
const config = {
theme: 'default',
logLevel: 'fatal',
securityLevel: 'strict',
startOnLoad: true,
arrowMarkerAbsolute: false,
er: {
diagramPadding: 20,
layoutDirection: 'TB',
minEntityWidth: 100,
minEntityHeight: 75,
entityPadding: 15,
stroke: 'gray',
fill: 'honeydew',
fontSize: 12,
useMaxWidth: true,
},
flowchart: {
diagramPadding: 8,
htmlLabels: true,
curve: 'basis',
},
sequence: {
diagramMarginX: 50,
diagramMarginY: 10,
actorMargin: 50,
width: 150,
height: 65,
boxMargin: 10,
boxTextMargin: 5,
noteMargin: 10,
messageMargin: 35,
messageAlign: 'center',
mirrorActors: true,
bottomMarginAdj: 1,
useMaxWidth: true,
rightAngles: false,
showSequenceNumbers: false,
},
gantt: {
titleTopMargin: 25,
barHeight: 20,
barGap: 4,
topPadding: 50,
leftPadding: 75,
gridLineStartPadding: 35,
fontSize: 11,
fontFamily: '"Open Sans", sans-serif',
numberSectionStyles: 4,
axisFormat: '%Y-%m-%d',
topAxis: false,
},
};
mermaid.initialize(config);
```
#### Defined in
[mermaidAPI.ts:962](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L962)
## Functions
### appendDivSvgG
**appendDivSvgG**(`parentRoot`, `id`, `enclosingDivId`, `divStyle?`, `svgXlink?`): `any`
Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes.
Only set the style attribute on the enclosing div if divStyle is given.
Only set the xmlns:xlink attribute on svg if svgXlink is given.
Return the last node appended
#### Parameters
| Name | Type | Description |
| :--------------- | :------- | :----------------------------------------------- |
| `parentRoot` | `any` | the d3 node to append things to |
| `id` | `string` | the value to set the id attr to |
| `enclosingDivId` | `string` | the id to set the enclosing div to |
| `divStyle?` | `string` | if given, the style to set the enclosing div to |
| `svgXlink?` | `string` | if given, the link to set the new svg element to |
#### Returns
`any`
- returns the parentRoot that had nodes appended
#### Defined in
[mermaidAPI.ts:286](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L286)
---
### cleanUpSvgCode
**cleanUpSvgCode**(`svgCode?`, `inSandboxMode`, `useArrowMarkerUrls`): `string`
Clean up svgCode. Do replacements needed
#### Parameters
| Name | Type | Default value | Description |
| :------------------- | :-------- | :------------ | :---------------------------------------------------------- |
| `svgCode` | `string` | `''` | the code to clean up |
| `inSandboxMode` | `boolean` | `undefined` | security level |
| `useArrowMarkerUrls` | `boolean` | `undefined` | should arrow marker's use full urls? (vs. just the anchors) |
#### Returns
`string`
the cleaned up svgCode
#### Defined in
[mermaidAPI.ts:237](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L237)
---
### createCssStyles
**createCssStyles**(`config`, `graphType`, `classDefs?`): `string`
Create the user styles
#### Parameters
| Name | Type | Description |
| :---------- | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------ |
| `config` | `MermaidConfig` | configuration that has style and theme settings to use |
| `graphType` | `string` | used for checking if classDefs should be applied |
| `classDefs` | `undefined` \| `null` \| `Record`<`string`, `DiagramStyleClassDef`> | the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) |
#### Returns
`string`
the string with all the user styles
#### Defined in
[mermaidAPI.ts:166](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L166)
---
### createUserStyles
**createUserStyles**(`config`, `graphType`, `classDefs`, `svgId`): `string`
#### Parameters
| Name | Type |
| :---------- | :----------------------------------------- |
| `config` | `MermaidConfig` |
| `graphType` | `string` |
| `classDefs` | `Record`<`string`, `DiagramStyleClassDef`> |
| `svgId` | `string` |
#### Returns
`string`
#### Defined in
[mermaidAPI.ts:214](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L214)
---
### cssImportantStyles
**cssImportantStyles**(`cssClass`, `element`, `cssClasses?`): `string`
Create a CSS style that starts with the given class name, then the element,
with an enclosing block that has each of the cssClasses followed by !important;
#### Parameters
| Name | Type | Default value | Description |
| :----------- | :---------- | :------------ | :--------------------------------------------- |
| `cssClass` | `string` | `undefined` | CSS class name |
| `element` | `string` | `undefined` | CSS element |
| `cssClasses` | `string`\[] | `[]` | list of CSS styles to append after the element |
#### Returns
`string`
- the constructed string
#### Defined in
[mermaidAPI.ts:150](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L150)
---
### decodeEntities
**decodeEntities**(`text`): `string`
#### Parameters
| Name | Type | Description |
| :----- | :------- | :----------------- |
| `text` | `string` | text to be decoded |
#### Returns
`string`
#### Defined in
[mermaidAPI.ts:130](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L130)
---
### encodeEntities
**encodeEntities**(`text`): `string`
#### Parameters
| Name | Type | Description |
| :----- | :------- | :----------------- |
| `text` | `string` | text to be encoded |
#### Returns
`string`
#### Defined in
[mermaidAPI.ts:101](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L101)
---
### putIntoIFrame
**putIntoIFrame**(`svgCode?`, `svgElement?`): `string`
Put the svgCode into an iFrame. Return the iFrame code
#### Parameters
| Name | Type | Default value | Description |
| :------------ | :------- | :------------ | :--------------------------------------------------------------------------- |
| `svgCode` | `string` | `''` | the svg code to put inside the iFrame |
| `svgElement?` | `any` | `undefined` | the d3 node that has the current svgElement so we can get the height from it |
#### Returns
`string`
- the code with the iFrame that now contains the svgCode
TODO replace btoa(). Replace with buf.toString('base64')?
#### Defined in
[mermaidAPI.ts:265](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L265)
---
### removeExistingElements
**removeExistingElements**(`doc`, `id`, `divId`, `iFrameId`): `void`
Remove any existing elements from the given document
#### Parameters
| Name | Type | Description |
| :--------- | :--------- | :------------------------------------ |
| `doc` | `Document` | the document to removed elements from |
| `id` | `string` | id for any existing SVG element |
| `divId` | `string` | - |
| `iFrameId` | `string` | - |
#### Returns
`void`
#### Defined in
[mermaidAPI.ts:336](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L336)

288
docs/config/theming.md Normal file
View File

@@ -0,0 +1,288 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md).
# Theme Configuration
Dynamic and integrated theme configuration was introduced in Mermaid version 8.7.0.
Themes can now be customized at the site-wide level, or on individual Mermaid diagrams. For site-wide theme customization, the `initialize` call is used. For diagram specific customization, the `init` directive is used.
## Available Themes
1. [**default**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-default.js) - This is the default theme for all diagrams.
2. [**neutral**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-neutral.js) - This theme is great for black and white documents that will be printed.
3. [**dark**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-dark.js) - This theme goes well with dark-colored elements or dark-mode.
4. [**forest**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-forest.js) - This theme contains shades of green.
5. [**base**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-base.js) - This is the only theme that can be modified. Use this theme as the base for customizations.
## Site-wide Theme
To customize themes site-wide, call the `initialize` method on the `mermaidAPI`.
Example of `initialize` call setting `theme` to `base`:
```javascript
mermaidAPI.initialize({
securityLevel: 'loose',
theme: 'base',
});
```
## Diagram-specific Themes
To customize the theme of an individual diagram, use the `init` directive.
Example of `init` directive setting the `theme` to `forest`:
```mermaid-example
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
```mermaid
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
```mermaid-example
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
```mermaid
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
> **Reminder**: the only theme that can be customed is the `base` theme. The following section covers how to use `themeVariables` for customizations.
## Customizing Themes with `themeVariables`
To make a custom theme, modify `themeVariables` via `init`.
You will need to use the [base](#available-themes) theme as it is the only modifiable theme.
| Parameter | Description | Type | Properties |
| -------------- | ------------------------------------ | ------ | --------------------------------------------------------------------------------------------------- |
| themeVariables | Modifiable with the `init` directive | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables-reference-table)) |
Example of modifying `themeVariables` using the `init` directive:
```mermaid-example
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
```mermaid-example
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
## Color and Color Calculation
To ensure diagram readability, the default value of certain variables is calculated or derived from other variables. For example, `primaryBorderColor` is derived from the `primaryColor` variable. So if the `primaryColor` variable is customized, Mermaid will adjust `primaryBorderColor` automatically. Adjustments can mean a color inversion, a hue change, a darkening/lightening by 10%, etc.
The theming engine will only recognize hex colors and not color names. So, the value `#ff0000` will work, but `red` will not.
## Theme Variables
| Variable | Default value | Description |
| -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| darkMode | false | Affects how derived colors are calculated. Set value to `true` for dark mode. |
| background | #f4f4f4 | Used to calculate color for items that should either be background colored or contrasting to the background |
| fontFamily | trebuchet ms, verdana, arial | |
| fontSize | 16px | Font size in pixels |
| primaryColor | #fff4dd | Color to be used as background in nodes, other colors will be derived from this |
| primaryTextColor | calculated from darkMode #ddd/#333 | Color to be used as text color in nodes using `primaryColor` |
| secondaryColor | calculated from primaryColor | |
| primaryBorderColor | calculated from primaryColor | Color to be used as border in nodes using `primaryColor` |
| secondaryBorderColor | calculated from secondaryColor | Color to be used as border in nodes using `secondaryColor` |
| secondaryTextColor | calculated from secondaryColor | Color to be used as text color in nodes using `secondaryColor` |
| tertiaryColor | calculated from primaryColor | |
| tertiaryBorderColor | calculated from tertiaryColor | Color to be used as border in nodes using `tertiaryColor` |
| tertiaryTextColor | calculated from tertiaryColor | Color to be used as text color in nodes using `tertiaryColor` |
| noteBkgColor | #fff5ad | Color used as background in notes |
| noteTextColor | #333 | Text color in note rectangles |
| noteBorderColor | calculated from noteBkgColor | Border color in note rectangles |
| lineColor | calculated from background | |
| textColor | calculated from primaryTextColor | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in Gantt diagram |
| mainBkg | calculated from primaryColor | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc |
| errorBkgColor | tertiaryColor | Color for syntax error message |
| errorTextColor | tertiaryTextColor | Color for syntax error message |
## Flowchart Variables
| Variable | Default value | Description |
| ------------------- | ------------------------------ | --------------------------- |
| nodeBorder | primaryBorderColor | Node Border Color |
| clusterBkg | tertiaryColor | Background in subgraphs |
| clusterBorder | tertiaryBorderColor | Cluster Border Color |
| defaultLinkColor | lineColor | Link Color |
| titleColor | tertiaryTextColor | Title Color |
| edgeLabelBackground | calculated from secondaryColor | |
| nodeTextColor | primaryTextColor | Color for text inside Nodes |
## Sequence Diagram Variables
| Variable | Default value | Description |
| --------------------- | ------------------------------ | --------------------------- |
| actorBkg | mainBkg | Actor Background Color |
| actorBorder | primaryBorderColor | Actor Border Color |
| actorTextColor | primaryTextColor | Actor Text Color |
| actorLineColor | grey | Actor Line Color |
| signalColor | textColor | Signal Color |
| signalTextColor | textColor | Signal Text Color |
| labelBoxBkgColor | actorBkg | Label Box Background Color |
| labelBoxBorderColor | actorBorder | Label Box Border Color |
| labelTextColor | actorTextColor | Label Text Color |
| loopTextColor | actorTextColor | Loop Text Color |
| activationBorderColor | calculated from secondaryColor | Activation Border Color |
| activationBkgColor | secondaryColor | Activation Background Color |
| sequenceNumberColor | calculated from lineColor | Sequence Number Color |
## State Colors
| Variable | Default value | Description |
| ------------- | ---------------- | -------------------------------------------- |
| labelColor | primaryTextColor | |
| altBackground | tertiaryColor | Used for background in deep composite states |
## Class Colors
| Variable | Default value | Description |
| --------- | ------------- | ------------------------------- |
| classText | textColor | Color of Text in class diagrams |
## User Journey Colors
| Variable | Default value | Description |
| --------- | ------------------------------ | --------------------------------------- |
| fillType0 | primaryColor | Fill for 1st section in journey diagram |
| fillType1 | secondaryColor | Fill for 2nd section in journey diagram |
| fillType2 | calculated from primaryColor | Fill for 3rd section in journey diagram |
| fillType3 | calculated from secondaryColor | Fill for 4th section in journey diagram |
| fillType4 | calculated from primaryColor | Fill for 5th section in journey diagram |
| fillType5 | calculated from secondaryColor | Fill for 6th section in journey diagram |
| fillType6 | calculated from primaryColor | Fill for 7th section in journey diagram |
| fillType7 | calculated from secondaryColor | Fill for 8th section in journey diagram |

Some files were not shown because too many files have changed in this diff Show More