Compare commits

..

633 Commits

Author SHA1 Message Date
Sidharth Vinod
b4be53ff04 Merge branch 'develop' into sidv/runTimeDiff
* develop: (280 commits)
  chore: Remove unused imports in block
  Fix spelling
  Update docs
  Lychee ignore chrome webstore
  Update link
  chore(deps): update all patch dependencies
  build(docs): vendor CSS dependencies
  chore(deps): update all minor dependencies
  Ran lint:fix
  Fix chrome webstore url causing 404
  build(deps): update `langium` to `v3` and apply the required changes
  Resolves E2E testing issues and issue #5343
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  ...
2024-03-06 14:59:32 +05:30
Sidharth Vinod
0b0d901b7f Merge pull request #5069 from mermaid-js/next
v11
2024-03-06 14:53:13 +05:30
Sidharth Vinod
7fec51f322 chore: Remove unused imports in block 2024-03-06 14:18:27 +05:30
Sidharth Vinod
1659ace65d Fix spelling 2024-03-06 14:16:32 +05:30
Sidharth Vinod
3340608689 Merge branch 'develop' into next
* develop:
  Update docs
  chore(deps): update all patch dependencies
2024-03-06 14:05:16 +05:30
Sidharth Vinod
5aa884f594 Merge pull request #5354 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2024-03-05 16:32:29 +00:00
Sidharth Vinod
5b3f320e5d Merge branch 'develop' into renovate/patch-all-patch 2024-03-05 21:30:12 +05:30
Sidharth Vinod
a43cd55c53 Merge branch 'develop' into next
* develop:
  Lychee ignore chrome webstore
  Update link
  build(docs): vendor CSS dependencies
  chore(deps): update all minor dependencies
  Ran lint:fix
  Fix chrome webstore url causing 404
2024-03-05 21:07:26 +05:30
Sidharth Vinod
803e068630 Merge branch 'master' into develop
* master:
  Update link
2024-03-05 21:06:21 +05:30
renovate[bot]
3147bb34ee Update docs 2024-03-05 15:35:56 +00:00
Sidharth Vinod
8daa28dd8b Lychee ignore chrome webstore 2024-03-05 21:05:47 +05:30
Sidharth Vinod
231534a0db Update link 2024-03-05 21:03:21 +05:30
renovate[bot]
2c6d1cb1ce chore(deps): update all patch dependencies 2024-03-05 15:32:30 +00:00
Alois Klink
972ecba597 Merge pull request #5350 from maxstanley/vendor
Vendor docs CSS dependencies
2024-03-05 14:47:10 +00:00
Alois Klink
fe905cedd3 Merge branch 'develop' into pull/5350 2024-03-05 14:13:01 +00:00
Max Stanley
d8b878414b build(docs): vendor CSS dependencies 2024-03-05 14:03:53 +00:00
Sidharth Vinod
b3245742b3 Merge pull request #5355 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2024-03-05 07:58:26 +00:00
Sidharth Vinod
82fd371e38 Merge pull request #5352 from Abrifq/patch-5
Fix chrome webstore url causing 404
2024-03-05 13:28:01 +05:30
renovate[bot]
6c1228f039 chore(deps): update all minor dependencies 2024-03-04 01:06:44 +00:00
Arda Aydın
2537bf5310 Ran lint:fix
Wait, it complained about a table in markdown?
Why??
2024-03-02 18:41:14 +00:00
Arda Aydın
f4dffc8cdf Fix chrome webstore url causing 404
now it's "Too many redirects" like all of it's brethren 🙂
2024-03-02 21:17:28 +03:00
Sidharth Vinod
70d236244f Merge pull request #5345 from Yokozuna59/update-langium-to-v3
build(deps): update `langium` to `v3` and apply the required changes
2024-03-01 14:44:20 +05:30
Sidharth Vinod
171a2019ec Merge branch 'next' into pr/Yokozuna59/5345
* next: (100 commits)
  Resolves E2E testing issues and issue #5343
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Added link to Blazorade Mermaid to the community integrations page.
  Bump node version
  Add lcov to cspell
  Correcting path to docker-entrypoint.sh
  Update recommended Vitest extension
  Replace mermaid-js.github.io links
  Replace links to docs with links to webhelp
  Link to contributing page on webhelp
  Changes to timeline.md 1. Added colons to all 'NOTES' for consistency.
  Changes to timeline.md 1. Updates the Wikipedia citation to include a link. 2. Removed periods from documentation sections to be consistent (some had periods, some didn't) 3. Added a space to a coding example for spacing consistency.
  Replace version number placeholder
  ...
2024-03-01 12:22:14 +05:30
Sidharth Vinod
70df6bbbca Merge branch 'develop' into next
* develop:
  Resolves E2E testing issues and issue #5343
2024-03-01 12:20:45 +05:30
Sidharth Vinod
5807d521b7 Merge branch 'develop' into next
* develop: (99 commits)
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Added link to Blazorade Mermaid to the community integrations page.
  Bump node version
  Add lcov to cspell
  Correcting path to docker-entrypoint.sh
  Update recommended Vitest extension
  Replace mermaid-js.github.io links
  Replace links to docs with links to webhelp
  Link to contributing page on webhelp
  Changes to timeline.md 1. Added colons to all 'NOTES' for consistency.
  Changes to timeline.md 1. Updates the Wikipedia citation to include a link. 2. Removed periods from documentation sections to be consistent (some had periods, some didn't) 3. Added a space to a coding example for spacing consistency.
  Replace version number placeholder
  Fix link to Contributors section in README
  ...
2024-03-01 12:18:25 +05:30
Reda Al Sulais
2b2bbe35d0 build(deps): update langium to v3 and apply the required changes 2024-02-29 20:38:15 +03:00
Sidharth Vinod
2ac4e08e75 Merge pull request #5344 from rowanfr/5343_E2E_Testing_Commit_ID
Resolves E2E testing issues and issue #5343
2024-02-29 20:52:51 +05:30
rowanfr
1b0b1227b6 Resolves E2E testing issues and issue #5343 2024-02-29 06:45:20 -06:00
Sidharth Vinod
1857eb1dae Merge pull request #5152 from macherel/git-graph-merge-commit
Fix color and arrow for merge commit (gitGraph)
2024-02-29 08:29:23 +05:30
Sidharth Vinod
970a98acad Merge pull request #5224 from fzag/feature/3173_implement_until_keyword_in_gantt
Implement "until" keyword in gantt charts
2024-02-29 02:48:18 +00:00
Sidharth Vinod
619f097f1a Merge branch 'develop' into git-graph-merge-commit 2024-02-29 07:57:09 +05:30
Sidharth Vinod
5fe9f9ed57 Merge branch 'develop' into feature/3173_implement_until_keyword_in_gantt 2024-02-29 07:55:16 +05:30
Sidharth Vinod
a9e67e4266 Fix spelling 2024-02-27 15:33:28 +05:30
Sidharth Vinod
0215e0173f Merge branch 'develop' into feature/3173_implement_until_keyword_in_gantt 2024-02-27 15:31:32 +05:30
Sidharth Vinod
31a287b7b0 Merge pull request #5301 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2024-02-27 10:00:50 +00:00
Sidharth Vinod
e59f290546 Fix community integrations 2024-02-27 15:44:59 +05:30
Sidharth Vinod
9377d054a0 Merge branch 'pr/MikaBerglund/5333' into develop
* pr/MikaBerglund/5333:
  Fix docs
2024-02-27 15:43:55 +05:30
Sidharth Vinod
10bb9202a7 Merge pull request #5333 from Blazorade/docs/blazorade
Added link to Blazorade Mermaid to the community integrations page.
2024-02-27 15:43:21 +05:30
Sidharth Vinod
2c59ceb005 Fix docs 2024-02-27 15:41:58 +05:30
Sidharth Vinod
adf0ae5474 Merge branch 'develop' into pr/MikaBerglund/5333
* develop:
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Updated chrome extension url's to new store
  add name only when present in rectData
  make name optional
  feat: add name field to the actors
  Changes to intro.md 1. Removed the Slack link 2. Updated the Discord invite link
  Changes to intro.md 1. Removed the Slack invite and left only the Discord invite
  Changes to intro.md 1. Added a link to the Discord server
  Updated contributions file
  #3358 Layoutfix for growing parent when children spans new rows due to updated columns widths
  Update docs
  Mermaid version 10.8.0
2024-02-27 15:41:29 +05:30
Sidharth Vinod
af93b72ec5 Merge pull request #5336 from NicolasCwy/chore/5324-add-docs-gitgraph-parallel-commits
Add gitgraph parallel commits to docs
2024-02-27 15:30:32 +05:30
Sidharth Vinod
370cd98d23 docs: Fix config 2024-02-27 15:29:41 +05:30
renovate[bot]
c842401aaa Update all minor dependencies 2024-02-27 07:22:07 +00:00
Sidharth Vinod
d163ca7e1b Merge pull request #5297 from Abrifq/patch-5
[Docs] Updated chrome extension url's to new store
2024-02-27 12:49:56 +05:30
Nicolas Chang
cbb715a44d Amend docs to document gitgraph parallel commits 2024-02-27 15:06:38 +08:00
Sidharth Vinod
af3d728a72 Merge branch 'develop' into feature/3173_implement_until_keyword_in_gantt 2024-02-27 12:35:38 +05:30
Sidharth Vinod
3093afe63e Merge pull request #5284 from ad1992/aakansha/actor-name
feat: add name field to the actors
2024-02-27 06:23:45 +00:00
Sidharth Vinod
a5a2ea1c92 Fix lint 2024-02-27 11:53:22 +05:30
Sidharth Vinod
197d808e33 Merge branch 'develop' into patch-5 2024-02-27 11:44:57 +05:30
Sidharth Vinod
9f8c87a1d8 Merge branch 'master' into develop
* master:
  Changes to intro.md 1. Removed the Slack link 2. Updated the Discord invite link
  Changes to intro.md 1. Removed the Slack invite and left only the Discord invite
  Changes to intro.md 1. Added a link to the Discord server
  Updated contributions file
  Update docs
  Mermaid version 10.8.0
2024-02-27 11:43:00 +05:30
Sidharth Vinod
69266bbfe6 Merge pull request #5332 from mermaid-js/sidv/installFix
Fix netlify deploy
2024-02-27 11:38:02 +05:30
Sidharth Vinod
4707fb27fa Use Yarn
Add COREPACK_ENABLE_STRICT
2024-02-27 11:33:24 +05:30
Mika Berglund
00bd208f18 Added link to Blazorade Mermaid to the community integrations page. 2024-02-27 00:15:56 +02:00
Sidharth Vinod
61c92f9df4 Bump node version 2024-02-26 21:32:55 +05:30
Sidharth Vinod
ed612827d8 Merge pull request #5298 from BaumiCoder/fixTableOfContent
Fix link to Contributors section in README
2024-02-26 21:23:33 +05:30
Sidharth Vinod
d4ff5f5c27 Merge pull request #5315 from FutzMonitor/updateTimelineMD
Updates Timeline Documentation
2024-02-26 21:22:13 +05:30
Sidharth Vinod
a4ba282dc0 Merge pull request #5304 from BaumiCoder/docs/replaceVersionPlaceholder
Replace version number placeholder
2024-02-26 21:13:48 +05:30
Sidharth Vinod
39d870d069 Merge branch 'develop' into updateTimelineMD 2024-02-26 21:13:21 +05:30
Sidharth Vinod
4e12157180 Merge pull request #5316 from BaumiCoder/LinkToWebhelp
Link to webhelp
2024-02-26 20:57:32 +05:30
Sidharth Vinod
e371d72e18 Add lcov to cspell 2024-02-26 20:57:09 +05:30
Sidharth Vinod
628cf79048 Merge pull request #5327 from bstordrup/Issue5325_UnableToStartMermaidContainer
Correcting path to docker-entrypoint.sh
2024-02-26 20:53:11 +05:30
Sidharth Vinod
ccfec58aeb Merge pull request #5322 from NicolasCwy/chore/5321-change-recommended-vitest-extension
Update recommended Vitest extension
2024-02-26 20:52:34 +05:30
Benny Tordrup
a57ac092f0 Correcting path to docker-entrypoint.sh 2024-02-26 14:31:59 +01:00
Nicolas Chang
6f3a2605c1 Update recommended Vitest extension 2024-02-26 10:05:49 +08:00
Michael Baumgartner
e79a08ee0f Replace mermaid-js.github.io links
Replace each link to mermaid-js.github.io with corresponding link
at the webhelp (/ website), using the redirects to get these links.
(The redirects are to the http:// sites. I replace it with the https://
links of course.)
2024-02-25 19:24:30 +01:00
Michael Baumgartner
77706216c9 Replace links to docs with links to webhelp
The docs are availabe as webhelp, which is a nicer viewer than
the plain markdown at GitHub. So a little search & replace:
- "(./docs" --> "https://mermaid.js.org"
  vim command ":%s/(.\/docs/(https:\/\/mermaid.js.org/g"
- ".md)" --> ".html)"
  vim command ":%s/.md)/.html)/g"
2024-02-25 18:58:48 +01:00
Michael Baumgartner
d9448e4a91 Link to contributing page on webhelp
The constributing page is not a plain markdown any more.
It is part of the generated webhelp, so link to this. Some of the links
were still to the symbolic link at the root of the repository.
2024-02-25 18:48:51 +01:00
futzmonitor
15b3647514 Changes to timeline.md
1. Added colons to all 'NOTES' for consistency.
2024-02-25 11:38:11 -05:00
futzmonitor
6d58c7504d Changes to timeline.md
1. Updates the Wikipedia citation to include a link.
2. Removed periods from documentation sections to be consistent (some had periods, some didn't)
3. Added a space to a coding example for spacing consistency.
2024-02-25 11:33:01 -05:00
Michael Baumgartner
81491f2e34 Merge branch 'develop' into docs/replaceVersionPlaceholder 2024-02-20 19:33:28 +01:00
Michael Baumgartner
77f76f52b5 Replace version number placeholder
The header of the section contains the version number for the feature,
so the warning box should contain the same version
2024-02-20 19:23:30 +01:00
Sidharth Vinod
70c8a3dde8 Merge pull request #5287 from BoDonkey/docs/add-apostrophecms-integration
Add new extension to integrations
2024-02-19 03:55:37 +00:00
Michael Baumgartner
762113d045 Fix link to Contributors section in README
The dashes are also part of the link to this section in the GitHub
webview and without the link does not work on GitHub.
Although, the additional dashes could not fix the link for other editors
(e.g. VSCodium with "Markdwn All in One" or an JetBrains IDE).
2024-02-17 19:25:17 +01:00
Abrifq
53599817a9 Updated chrome extension url's to new store 2024-02-17 20:13:38 +03:00
Bruno Macherel
4336b91dbd Fix color and arrow for merge commit 2024-02-16 17:12:39 +01:00
Robert Means
eaffe334c4 Fix CMS order 2024-02-16 05:28:29 -05:00
Sidharth Vinod
6be91bc3a8 Merge pull request #5286 from Jason3S/cspell
chore: Update CSpell configuration
2024-02-16 04:31:27 +00:00
Robert Means
551ccfc8ce Add new extension to integrations 2024-02-15 14:20:32 -05:00
Jason Dent
e54d0902c1 Use both British and American English spellings. 2024-02-15 17:04:09 +01:00
Jason Dent
36f056fd92 Update packages/mermaid/src/diagrams/sankey/parser/sankey.jison
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-02-15 16:58:06 +01:00
Jason Dent
c3060548cf Update comment to link to replacement function. 2024-02-15 09:22:50 +01:00
Jason Dent
f3282e4dad chore: sort cspell dictionaries on commit 2024-02-14 23:32:15 +01:00
Jason Dent
4a7489a7b6 chore: Update cspell and fix issues
- covert `cSpell.json` to `cspell.config.yaml`
- break up the word list into multiple dictionary files
- fix spelling issues
- Enable spell checking code for non-test files
2024-02-14 23:17:44 +01:00
Aakansha Doshi
23dd7b2b10 add name only when present in rectData 2024-02-14 12:41:54 +05:30
Aakansha Doshi
bee88ac70e make name optional 2024-02-14 12:36:42 +05:30
Aakansha Doshi
1a8361d5c9 Merge branch 'develop' into aakansha/actor-name 2024-02-14 12:31:27 +05:30
Aakansha Doshi
e21643229e feat: add name field to the actors 2024-02-14 12:12:49 +05:30
Knut Sveidqvist
fe1cff3f55 Merge pull request #2885 from NicolasNewman/feature/2776_katex_math
Integrated Katex typesetting into flowcharts
2024-02-13 09:22:40 +00:00
Sidharth Vinod
4a4e96cfbd Merge branch 'develop' into feature/2776_katex_math 2024-02-13 10:56:46 +05:30
Sidharth Vinod
447c5a4b35 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop
* 'develop' of github.com:mermaid-js/mermaid:
  chore(deps): update all patch dependencies
  chore(deps): update all minor dependencies
2024-02-12 16:45:00 +05:30
Sidharth Vinod
18589ddda4 Ignore BundlePhobia 2024-02-12 16:44:41 +05:30
Sidharth Vinod
267e142ac9 Merge pull request #5280 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2024-02-12 07:08:19 +00:00
renovate[bot]
9ee2d70c8c chore(deps): update all patch dependencies 2024-02-12 06:00:22 +00:00
Sidharth Vinod
a90a8ceea5 Merge pull request #5281 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2024-02-12 05:42:38 +00:00
renovate[bot]
ddd971eae4 chore(deps): update all minor dependencies 2024-02-12 01:15:54 +00:00
Sidharth Vinod
d11bfaa6c4 Merge pull request #4751 from Yokozuna59/add-pie-langium-parser
feat: add `pie` langium parser
2024-02-11 21:54:36 +05:30
Sidharth Vinod
25cd86feec Fix docs 2024-02-11 20:26:43 +05:30
Sidharth Vinod
062176d8d0 Merge branch 'next' into pr/Yokozuna59/4751
* next:
  Fix BlockDiagramConfig
  Fix docs
2024-02-11 20:26:16 +05:30
Sidharth Vinod
a344d88020 Fix BlockDiagramConfig 2024-02-11 20:25:33 +05:30
Sidharth Vinod
30b180d77b Fix docs 2024-02-11 20:22:35 +05:30
Sidharth Vinod
00423ed152 Fix config 2024-02-11 20:05:08 +05:30
Sidharth Vinod
48ff3b2c11 Merge branch 'next' into pr/Yokozuna59/4751
* next: (118 commits)
  Update Deps
  chore(deps): update all patch dependencies
  fix typo cutomers => customers
  chore(deps): update all minor dependencies
  Fix macOS onboarding issues
  Bump @zenuml/core and update render options in mermaid-zenuml (#5257)
  Fixed Typo in ErrorRenderer.ts (#5256)
  #3358 Removing redundant file
  #3358 Fix after review
  Fix selector
  #3358 Renaming of IOperation to ActionFun
  chore: Add interface naming
  build(deps-dev): bump vite from 4.4.12 to 4.5.2
  Update container
  Update container
  Remove pnpm cache
  3358 Adding types for blockArrowHelper
  #3358n Updated lockfile
  Update docs
  #3358 Another set of review changes
  ...
2024-02-11 20:00:27 +05:30
Sidharth Vinod
eee0d4bf31 Update Deps 2024-02-11 19:58:55 +05:30
Sidharth Vinod
e047755a21 Merge branch 'develop' into next
* develop: (124 commits)
  chore(deps): update all patch dependencies
  fix typo cutomers => customers
  chore(deps): update all minor dependencies
  Fix macOS onboarding issues
  Bump @zenuml/core and update render options in mermaid-zenuml (#5257)
  Fixed Typo in ErrorRenderer.ts (#5256)
  #3358 Removing redundant file
  #3358 Fix after review
  Fix selector
  #3358 Renaming of IOperation to ActionFun
  chore: Add interface naming
  build(deps-dev): bump vite from 4.4.12 to 4.5.2
  Update container
  Update container
  Remove pnpm cache
  3358 Adding types for blockArrowHelper
  #3358n Updated lockfile
  Update docs
  #3358 Another set of review changes
  Use `.node-version` file in workflows
  ...
2024-02-11 19:56:55 +05:30
Sidharth Vinod
b30d609d19 Merge branch 'add-pie-langium-parser' of github.com:Yokozuna59/mermaid into pr/Yokozuna59/4751
* 'add-pie-langium-parser' of github.com:Yokozuna59/mermaid: (48 commits)
  make pie parser async
  Changes to gantt.html 1. Added a Gantt diagram that demonstrates to users that hashtages and semicolons can be added to titles, sections, and task data. Changes to gantt.spec.js 1. Added unit tests to ensure that semicolons and hashtags didn't break the functionality of the gantt diagram when used in titles, sections or task data. Changes to /parser/gantt.spec.js 1. Added rendering tests to ensure that semicolons and hashtags in titles, sections, and task data didn't break the rendering of Gantt diagrams.
  perf: prevent adding multiple DOMPurify hooks
  Update docs
  chore: Update tests
  Fix types
  refactor: Make parser.parse async
  refactor: Support async parsers Add `Diagram.fromText`
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  Fix applitools
  add sequenceDiagram link e2e test
  fix sequence diagram popup
  Changes to gantt.jison 1. Consistent spacing on line 30
  Changes to gantt.jison 1. Removed typo
  Changes to gnatt.jison 1. Removed the hash and semicolon symbols from the title regex to allow for their use. 2. Removed the hash and semicolon symbols from the section regex to allow for their use. 3. Removed the hash and semicolon symbols for the taskTxt regex to allow for their use. I did not remove the colon because the parser fails to recognize when the actual taskData begins if that distinctions isn't kept. 4. Removed the regex \#[^\n]* which skipped comments to fix some bugs with hash symbols in the taskTxt. I tested this changed by putting it back and using the comment  to see if it was recognized as a comment, but I would receive a syntax error and the diagram would not be rendered. So, I think we can safely remove that line, BUT it would be best practice if someone else tested this change to ensure that this will not break anyone's Gantt diagrams.
  ...
2024-02-11 19:36:26 +05:30
Sidharth Vinod
1406de5a6c Merge pull request #5268 from FutzMonitor/updateContribute
Update contribute
2024-02-09 13:44:26 +05:30
futzmonitor
ec7591bfa8 Changes to intro.md
1. Removed the Slack link
2. Updated the Discord invite link
2024-02-09 13:41:55 +05:30
futzmonitor
c45f39e819 Changes to intro.md
1. Removed the Slack invite and left only the Discord invite
2024-02-09 13:41:55 +05:30
futzmonitor
6682988403 Changes to intro.md
1. Added a link to the Discord server
2024-02-09 13:41:54 +05:30
Sidharth Vinod
9c6ad54681 Merge pull request #5263 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2024-02-06 14:32:40 +00:00
Nikolay Rozhkov
c7f5e01721 Merge pull request #5262 from thedustin/macos-docker-onboarding-issues
Fix macOS onboarding issues
2024-02-06 14:18:01 +00:00
renovate[bot]
19f150922b chore(deps): update all patch dependencies 2024-02-06 08:36:17 +00:00
Sidharth Vinod
be036ad414 Merge pull request #5269 from elgalu/fix-cutomers-typo
fix typo cutomers => customers
2024-02-06 08:19:23 +00:00
Leo Gallucci
9261715003 fix typo cutomers => customers
Signed-off-by: Leo Gallucci <leo.gallucci@zalando.de>
2024-02-05 18:09:25 +01:00
Sidharth Vinod
dee99d2c4a Merge pull request #5264 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2024-02-05 08:57:49 +00:00
renovate[bot]
5f0b514c92 chore(deps): update all minor dependencies 2024-02-05 00:13:27 +00:00
Dustin Breuer
337f07b865 Fix macOS onboarding issues 2024-02-04 18:30:51 +01:00
Don
b043d79cc4 Bump @zenuml/core and update render options in mermaid-zenuml (#5257)
* Update dependencies and render options in mermaid-zenuml

* update snpashots

* Revert "update snpashots"

This reverts commit e52022782b5565e3b95752bdf147cd8b2e0f03cd.
2024-02-04 18:20:02 +05:30
Sidharth Vinod
3b5cb020ea Merge pull request #5218 from mermaid-js/dependabot/npm_and_yarn/vite-4.5.2
build(deps-dev): bump vite from 4.4.12 to 4.5.2
2024-02-03 05:58:52 +00:00
Knut Sveidqvist
1c61ccabad Merge branch 'release/10.8.0' 2024-02-02 11:33:33 +01:00
Knut Sveidqvist
3fe7e2dfe8 Updated contributions file 2024-02-02 11:30:29 +01:00
Knut Sveidqvist
51e7444b94 #3358 Layoutfix for growing parent when children spans new rows due to updated columns widths 2024-02-02 11:10:42 +01:00
knsv
2fa9219353 Update docs 2024-02-02 07:56:48 +00:00
Knut Sveidqvist
f5555245f9 Mermaid version 10.8.0 2024-02-02 08:53:29 +01:00
Knut Sveidqvist
5c9857c4eb Merge pull request #5247 from mermaid-js/sidv/mindmapToTs
Convert Mindmap to TS
2024-02-01 13:23:13 +00:00
Christian
494ba45c5e Fixed Typo in ErrorRenderer.ts (#5256)
* Changes to flow.jison
1. Added support for the plus symbol.

* Changes to errorRenderer.ts
1. Fixed a typo where 'renering' instead 'rendering'

* Revert "Changes to flow.jison"

This reverts commit 28b9dc897f.
2024-02-01 17:32:52 +05:30
Ashish Jain
b38def6866 Merge pull request #5221 from mermaid-js/3358-blocks-diagram
Adding new diagram type - Block Diagram
2024-02-01 11:22:18 +00:00
Knut Sveidqvist
a7afc11079 #3358 Removing redundant file 2024-02-01 10:49:59 +01:00
Knut Sveidqvist
d3c5b02008 Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358-blocks-diagram 2024-02-01 10:41:11 +01:00
Knut Sveidqvist
16149abcc0 #3358 Fix after review 2024-02-01 10:40:39 +01:00
Ashish Jain
13d0b61757 Merge branch 'develop' into 3358-blocks-diagram 2024-01-31 15:08:09 +01:00
Sidharth Vinod
ebc59d8227 Merge branch 'develop' into feature/2776_katex_math 2024-01-31 15:21:13 +05:30
Sidharth Vinod
45f4d3d443 Merge branch 'develop' into sidv/mindmapToTs 2024-01-31 15:20:16 +05:30
Sidharth Vinod
33d45f639c Merge pull request #5254 from mermaid-js/chore/InterfaceNaming
chore: Add interface naming Convention
2024-01-31 09:49:59 +00:00
Sidharth Vinod
7503694453 Merge pull request #5241 from Ronid1/feature/4653-add_actor-top_class_to_sequence_diagram
Feature/4653 add actor-top class to sequence diagram
2024-01-31 09:15:18 +00:00
Sidharth Vinod
e9680e086e Fix selector 2024-01-31 14:27:46 +05:30
Knut Sveidqvist
cd7003e9c1 Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358-blocks-diagram 2024-01-31 09:55:13 +01:00
Sidharth Vinod
941d9d13d5 Merge branch 'develop' into feature/4653-add_actor-top_class_to_sequence_diagram 2024-01-31 14:22:26 +05:30
Knut Sveidqvist
4786cfb6aa #3358 Renaming of IOperation to ActionFun 2024-01-31 09:50:11 +01:00
Sidharth Vinod
7aa4466b69 chore: Add interface naming 2024-01-31 14:19:01 +05:30
Sidharth Vinod
2bfd5a9e2a Merge branch 'develop' into 3358-blocks-diagram
* develop:
  Update container
  Update container
  Remove pnpm cache
  Use `.node-version` file in workflows
  Remove node version from matrix
  Update to Node v20
  Update to Node v20
2024-01-31 14:11:53 +05:30
Sidharth Vinod
56da881ed4 Merge branch 'develop' into sidv/mindmapToTs
* develop:
  Update container
  Update container
  Remove pnpm cache
  Use `.node-version` file in workflows
  fix: Redirect of old URLs
  Remove node version from matrix
  Update to Node v20
  Update to Node v20
  fix lint
  add latest blog post
  update discord invite link
  remove holiday promo text
2024-01-31 14:10:51 +05:30
dependabot[bot]
a3364e72ff build(deps-dev): bump vite from 4.4.12 to 4.5.2
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.12 to 4.5.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 08:40:08 +00:00
Sidharth Vinod
aa50db8bf5 Merge pull request #5248 from mermaid-js/sidv/node20
Use node v20
2024-01-31 08:10:41 +00:00
Sidharth Vinod
e8db7a71e2 Update container 2024-01-31 11:35:07 +05:30
Sidharth Vinod
f00e7676b9 Update container 2024-01-31 11:32:55 +05:30
Sidharth Vinod
63ef228ed0 Remove pnpm cache 2024-01-31 09:42:33 +05:30
Knut Sveidqvist
6fce617284 3358 Adding types for blockArrowHelper 2024-01-30 17:48:46 +01:00
Sidharth Vinod
2a64834ecc Merge branch 'develop' into sidv/node20
* develop:
  fix: Redirect of old URLs
  fix lint
  add latest blog post
  update discord invite link
  remove holiday promo text
2024-01-30 22:10:23 +05:30
Knut Sveidqvist
7bcdea9bd1 #3358n Updated lockfile 2024-01-30 16:55:01 +01:00
Knut Sveidqvist
8fdf512b4c Merge branch 'develop' into 3358-blocks-diagram 2024-01-30 16:53:46 +01:00
knsv
dbcb80087c Update docs 2024-01-30 15:29:43 +00:00
Knut Sveidqvist
b99b1bfd0c #3358 Another set of review changes 2024-01-30 16:26:10 +01:00
Sidharth Vinod
fcffa6ca4e Merge branch 'develop' into feature/4653-add_actor-top_class_to_sequence_diagram 2024-01-30 20:51:52 +05:30
Sidharth Vinod
6fd69090ed Merge branch 'master' into develop
* master:
  fix: Redirect of old URLs
  fix lint
  add latest blog post
  update discord invite link
  remove holiday promo text
2024-01-30 20:50:30 +05:30
Sidharth Vinod
051ef598f6 Use .node-version file in workflows
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 20:44:39 +05:30
Knut Sveidqvist
907006ff3d #3358 Some fixes 2024-01-30 16:07:19 +01:00
Knut Sveidqvist
df9b801b0e #3358 Some fixes 2024-01-30 16:05:16 +01:00
Sidharth Vinod
726d633dd3 Use config from defaultConfig
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2024-01-30 20:00:54 +05:30
Knut Sveidqvist
4a04ce6bf8 Update cypress/integration/rendering/block.spec.ts
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2024-01-30 14:49:14 +01:00
Knut Sveidqvist
010fc703eb Update packages/mermaid/src/diagrams/block/blockTypes.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 14:46:14 +01:00
Knut Sveidqvist
8f8ce2f142 Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358-blocks-diagram 2024-01-30 14:37:53 +01:00
Knut Sveidqvist
452cb83ad7 #3358 Review changes 2024-01-30 14:37:35 +01:00
Knut Sveidqvist
2f8f9dd341 Update packages/mermaid/src/diagrams/block/blockDB.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 14:36:38 +01:00
Knut Sveidqvist
4a14d997d1 Update packages/mermaid/src/diagrams/block/blockRenderer.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 14:18:58 +01:00
Knut Sveidqvist
10237976f3 Merge branch 'develop' into 3358-blocks-diagram 2024-01-30 13:21:47 +01:00
Sidharth Vinod
92e7c7b894 Merge pull request #5250 from mermaid-js/fix/DocsRedirect
fix: Redirect of old URLs
2024-01-30 14:59:48 +05:30
Sidharth Vinod
80c20a72b2 Remove MermaidConfigWithDefaults 2024-01-30 14:25:44 +05:30
Sidharth Vinod
2d92ffb085 fix: Redirect of old URLs 2024-01-30 13:41:47 +05:30
Knut Sveidqvist
4823cf5df4 Update packages/mermaid/src/diagrams/block/blockDB.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 08:52:59 +01:00
Knut Sveidqvist
dae8a13e8a Update packages/mermaid/src/defaultConfig.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-30 08:51:47 +01:00
Sidharth Vinod
0b087b71dc Merge branch 'develop' into feature/2776_katex_math 2024-01-30 12:57:04 +05:30
Sidharth Vinod
ea8d7ec5cc Merge branch 'develop' into feature/3173_implement_until_keyword_in_gantt 2024-01-30 12:56:36 +05:30
Sidharth Vinod
78f1631c8f Organize imports 2024-01-30 10:04:42 +05:30
Sidharth Vinod
ff6988e875 chore: Address review comments
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2024-01-30 09:51:40 +05:30
Ronid1
cddca04885 add actor-bottom to docs 2024-01-29 12:39:39 -08:00
Ronid1
f737c9f6f9 add actor-bottom class 2024-01-29 11:42:23 -08:00
Ronid1
7e86d03dc9 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into feature/4653-add_actor-top_class_to_sequence_diagram 2024-01-29 11:28:01 -08:00
Knut Sveidqvist
bfa8111e14 #3358 Third set of changes after review 2024-01-29 17:32:27 +01:00
Knut Sveidqvist
5aab2ba1dd Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358-blocks-diagram 2024-01-29 16:25:02 +01:00
Knut Sveidqvist
37d7c7e2dd #3358 Second set of changes after review 2024-01-29 16:22:48 +01:00
Knut Sveidqvist
1965f69a10 Update packages/mermaid/src/schemas/config.schema.yaml
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-29 15:29:26 +01:00
Sidharth Vinod
95dcd30324 Merge branch 'develop' into sidv/mindmapToTs 2024-01-29 16:53:21 +05:30
Sidharth Vinod
65bb82962f Merge branch 'develop' into sidv/node20
* develop:
  Remove node version from matrix
2024-01-29 16:47:45 +05:30
Sidharth Vinod
c84c7f52f9 Remove node version from matrix 2024-01-29 16:46:48 +05:30
Sidharth Vinod
cd04c430af Merge branch 'sidv/node20' of github.com:mermaid-js/mermaid into sidv/node20
* 'sidv/node20' of github.com:mermaid-js/mermaid:
  chore: Update docs
  Update demos/pie.html
  Update pie.html demo
  Fix typos in timeline syntax samples
2024-01-29 16:44:52 +05:30
Sidharth Vinod
dd553cb28f Remove node version from matrix 2024-01-29 16:44:44 +05:30
Sidharth Vinod
25d0de13a5 Merge branch 'develop' into sidv/node20 2024-01-29 16:38:27 +05:30
Sidharth Vinod
52bb31b98a Update to Node v20 2024-01-29 13:56:03 +05:30
Sidharth Vinod
a4a94fd6e2 Update to Node v20 2024-01-29 13:55:51 +05:30
Sidharth Vinod
cd8e354234 Merge pull request #5139 from sblom/patch-2
Fix typos in timeline syntax samples
2024-01-29 08:20:53 +00:00
Sidharth Vinod
d797365802 Merge pull request #5141 from JenningsWilliam/feature_update_pie_labeling
Accurate pie chart labeling for text alignment
2024-01-29 08:19:21 +00:00
Sidharth Vinod
73293efcf3 Merge branch 'develop' into patch-2 2024-01-29 13:29:04 +05:30
Sidharth Vinod
91ae282808 Merge branch 'develop' into feature_update_pie_labeling 2024-01-29 13:28:18 +05:30
Sidharth Vinod
4c551b2aca Lint 2024-01-29 12:35:39 +05:30
Sidharth Vinod
d21461fba0 Lint 2024-01-29 12:27:17 +05:30
Sidharth Vinod
b51d8ff7ba Convert svgDraw.ts 2024-01-29 12:16:21 +05:30
Sidharth Vinod
75ec719257 Rename svgDraw.js 2024-01-29 11:31:22 +05:30
Sidharth Vinod
13e052ff81 Fix styles.ts 2024-01-29 11:26:10 +05:30
Sidharth Vinod
bde6a9ff4f Rename styles.js 2024-01-29 11:21:42 +05:30
Sidharth Vinod
23d843b6d3 refactor: Remove db import from svgDraw 2024-01-29 11:21:12 +05:30
Sidharth Vinod
cffac848ea chore: Fix mindmapDb exports 2024-01-29 10:52:58 +05:30
Sidharth Vinod
9651d0c2da refactor: Fix types and imports 2024-01-29 10:45:47 +05:30
Sidharth Vinod
e1a23f10df chore: Fix config type 2024-01-28 21:43:03 +05:30
Sidharth Vinod
d346a77e3c Convert MindmapRenderer.ts 2024-01-28 16:04:42 +05:30
Sidharth Vinod
f069de5487 Convert MindmapDB.ts 2024-01-28 16:04:42 +05:30
Sidharth Vinod
ba0bddf417 Add MermaidConfigWithDefaults 2024-01-28 16:04:42 +05:30
Sidharth Vinod
f30c26485e Cleanup svgDraw.js 2024-01-28 16:04:41 +05:30
Sidharth Vinod
b71f4c7e54 Add MindmapDB type 2024-01-28 16:04:41 +05:30
Sidharth Vinod
e046da10c2 Convert mindmap.spec.js 2024-01-28 16:04:40 +05:30
Sidharth Vinod
12dc3d8373 Rename files to TS 2024-01-28 16:04:40 +05:30
Reda Al Sulais
191ea24e29 make pie parser async 2024-01-27 21:17:23 +03:00
Reda Al Sulais
72a6fad1db Merge branch next into add-pie-langium-parser 2024-01-27 20:55:15 +03:00
Reda Al Sulais
a2a99485f9 Merge branch 'mermaid-js:develop' into add-pie-langium-parser 2024-01-27 20:35:26 +03:00
Sidharth Vinod
bc332e3124 Fix boundMessage type 2024-01-27 22:37:24 +05:30
Franck Zagala
8d2605d537 minor stylistic changes 2024-01-27 16:33:57 +00:00
Franck Zagala
069a132fe1 revert changes on existing e2e tests; add new e2e test for nez until keyword 2024-01-27 16:05:35 +00:00
Sidharth Vinod
969e2c1ff1 Merge pull request #5233 from mermaid-js/AsyncParse
refactor: Support async parsers [internal]
2024-01-27 20:43:22 +05:30
Sidharth Vinod
c5272d5279 Merge pull request #5236 from mermaid-js/fix/DompurifyHooks
fix: Dompurify Hooks
2024-01-27 15:11:54 +00:00
Franck Zagala
c1b5d527df modify invalid e2e test for gantt chart 2024-01-27 13:24:12 +00:00
Franck Zagala
cc4dfeab1a fix minor mistake in parsing test 2024-01-27 12:32:15 +00:00
Franck Zagala
280525b4b1 merge develop; resolve minor conflicts in docs/syntax/gantt.md 2024-01-27 12:27:34 +00:00
Franck Zagala
9fadf621a8 adapt e2e tests to include new 'until' keyword in gantt chart 2024-01-27 12:05:23 +00:00
Franck Zagala
fd3f1caff6 add parsing unit test for after/until keywords 2024-01-27 11:27:28 +00:00
Sidharth Vinod
3b0c5c3e60 fix: Message width 2024-01-27 15:34:53 +05:30
Sidharth Vinod
52d276b010 chore: Update katex 2024-01-27 12:54:15 +05:30
Sidharth Vinod
d1178c490b Merge branch 'develop' into pr/NicolasNewman/2885
* develop: (47 commits)
  Changes to gantt.html 1. Added a Gantt diagram that demonstrates to users that hashtages and semicolons can be added to titles, sections, and task data. Changes to gantt.spec.js 1. Added unit tests to ensure that semicolons and hashtags didn't break the functionality of the gantt diagram when used in titles, sections or task data. Changes to /parser/gantt.spec.js 1. Added rendering tests to ensure that semicolons and hashtags in titles, sections, and task data didn't break the rendering of Gantt diagrams.
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  add sequenceDiagram link e2e test
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  ...
2024-01-27 12:49:35 +05:30
Ronid1
9ee5667580 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into feature/4653-add_actor-top_class_to_sequence_diagram 2024-01-26 14:08:13 -08:00
Ronid1
36c196e80b add test 2024-01-26 14:07:12 -08:00
Sidharth Vinod
7ca990d762 Merge branch 'develop' into fix/DompurifyHooks 2024-01-27 00:25:15 +05:30
Sidharth Vinod
91907fe0eb Merge pull request #5095 from FutzMonitor/issue1981
Changes to Gantt Parsers to allow hashes and semicolons to titles, sections, and task data.
2024-01-26 17:21:58 +00:00
Sidharth Vinod
6bf5571f96 chore: Update docs 2024-01-26 22:50:17 +05:30
Sidharth Vinod
8619a53a9c Update demos/pie.html 2024-01-26 22:48:12 +05:30
Sidharth Vinod
9bedfa2033 Merge pull request #5160 from vitorsss/fix/4212_actor_menus_sequence_diagram_popup
[Fix] Sequence diagram actor menu popup
2024-01-26 17:16:27 +00:00
FutzMonitor
59264a33d7 Changes to gantt.html
1. Added a Gantt diagram that demonstrates to users that hashtages and semicolons can be added to titles, sections, and task data.
Changes to gantt.spec.js
1. Added unit tests to ensure that semicolons and hashtags didn't break the functionality of the gantt diagram when used in titles, sections or task data.
Changes to /parser/gantt.spec.js
1. Added rendering tests to ensure that semicolons and hashtags in titles, sections, and task data didn't break the rendering of Gantt diagrams.
2024-01-26 11:48:48 -05:00
Ronid1
70d9f50fc9 add const for class name 2024-01-25 17:59:46 -08:00
Ronid1
b253cd65d4 update docs 2024-01-25 17:19:00 -08:00
Ronid1
f2f8d89a28 add actor-top class to rectangle actor and man actor 2024-01-25 17:16:09 -08:00
FutzMonitor
0b0f988180 Merge branch 'develop' into issue1981 2024-01-25 17:03:16 -05:00
Sidharth Vinod
93dee55ade Merge pull request #5240 from mermaid-js/sidv/runTimeDiffTest
Test
2024-01-26 02:27:56 +05:30
Sidharth Vinod
781945325d Cleanup runTime.ts 2024-01-26 02:07:55 +05:30
Sidharth Vinod
dc476233ba Add summary 2024-01-26 01:54:09 +05:30
Sidharth Vinod
eb6c92b0d9 Remove small differences 2024-01-26 01:47:36 +05:30
Sidharth Vinod
c6cf5953a1 HTML table 2024-01-26 01:40:30 +05:30
Sidharth Vinod
32db724752 Change path 2024-01-26 01:23:30 +05:30
Sidharth Vinod
6702d41840 Change path 2024-01-26 01:15:43 +05:30
Sidharth Vinod
441deaffc9 Test 2024-01-26 01:05:59 +05:30
Sidharth Vinod
af53a968f6 feat: Record time difference in tests 2024-01-26 00:52:56 +05:30
Sidharth Vinod
1c200ee5bc perf: prevent adding multiple DOMPurify hooks
Currently, everytime `removeScript()` is called, the same DOMPurify
hooks are getting added again and again.

Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-25 23:28:42 +05:30
Reda Al Sulais
55be75c974 Merge branch next into add-pie-langium-parser 2024-01-25 14:56:34 +03:00
Yokozuna59
47a6ce4342 Update docs 2024-01-25 14:32:23 +03:00
Sidharth Vinod
3ecb841c1a Remove dummy change from e2e.yml 2024-01-24 22:17:10 +05:30
Sidharth Vinod
1d2450245e Remove dummy change 2024-01-24 22:16:21 +05:30
Sidharth Vinod
f6c4c9260f Remove log 2024-01-24 22:13:17 +05:30
Sidharth Vinod
f354d68350 Format message 2024-01-24 22:12:33 +05:30
Sidharth Vinod
bea76aa682 Format Size 2024-01-24 21:59:58 +05:30
Sidharth Vinod
6d4b27aacb Fix out format 2024-01-24 21:51:15 +05:30
Sidharth Vinod
e008b7dae7 Remove logs 2024-01-24 21:45:30 +05:30
Sidharth Vinod
96a3991c56 Update glob 2024-01-24 21:42:31 +05:30
Sidharth Vinod
8d1d691bc3 debug 2024-01-24 21:38:59 +05:30
Sidharth Vinod
e07608209b debug 2024-01-24 21:28:49 +05:30
Sidharth Vinod
50cdb74d54 Fix file path 2024-01-24 21:25:05 +05:30
Sidharth Vinod
edc091f4d4 Test 2024-01-24 21:16:10 +05:30
Sidharth Vinod
e0448a7b7b Feat: Calculate package size change on PRs 2024-01-24 21:12:16 +05:30
Sidharth Vinod
0f02f5ff34 Skip running tests 2024-01-24 21:04:57 +05:30
Sidharth Vinod
b2111adef5 Feat: Calculate package size change on PRs 2024-01-24 21:02:12 +05:30
Franck Zagala
099f580e52 address review comment on implementation; apply similar changes on existing impl of keyword 'after' 2024-01-24 09:30:21 +00:00
Sidharth Vinod
442da6c4a2 chore: Update tests 2024-01-24 14:03:43 +05:30
Sidharth Vinod
f715863540 Fix types 2024-01-24 13:59:16 +05:30
Sidharth Vinod
ed7dbb100d refactor: Make parser.parse async 2024-01-24 13:50:45 +05:30
Sidharth Vinod
52fdea0419 refactor: Support async parsers
Add `Diagram.fromText`
2024-01-24 13:41:51 +05:30
Sidharth Vinod
98c578da02 Merge pull request #5232 from mermaid-js/mermaid-chart-updates
Docs: Mermaid chart updates
2024-01-24 12:43:54 +05:30
steph
cbf7e6a880 fix lint 2024-01-23 22:17:55 -08:00
steph
8982e2f78c add latest blog post 2024-01-23 22:02:24 -08:00
steph
62ae072918 update discord invite link 2024-01-23 21:59:54 -08:00
steph
04f92e5b1c remove holiday promo text 2024-01-23 21:58:37 -08:00
Sidharth Vinod
b7c72cb38a Merge pull request #4839 from mermaid-js/feat/948_packetDiagram
feat: Add packet diagram
2024-01-24 01:05:07 +05:30
Sidharth Vinod
5cc20b5e44 Merge branch 'next' into feat/948_packetDiagram
* next: (316 commits)
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  Fix applitools
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Cleanup e2e.yml
  Ignore push events on merge queue
  Remove ::
  Remove ::
  ...
2024-01-24 00:58:55 +05:30
Sidharth Vinod
ce9a9db33a Merge branch 'develop' into next
* develop:
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
2024-01-24 00:47:31 +05:30
Sidharth Vinod
6939cf52e6 Merge pull request #5228 from mermaid-js/updateCypress
UpdateCypress
2024-01-24 00:31:20 +05:30
Sidharth Vinod
ec79ac200c Lint 2024-01-23 23:53:48 +05:30
Sidharth Vinod
de03a017db Remove echo 2024-01-23 23:51:48 +05:30
Sidharth Vinod
42ad1f4fe4 RefTest 2024-01-23 23:49:52 +05:30
Sidharth Vinod
a01be16d27 Echo event 2024-01-23 23:38:21 +05:30
Sidharth Vinod
5c6c8d1135 Update cypress 2024-01-23 20:36:29 +05:30
Sidharth Vinod
493f238319 Fix applitools 2024-01-23 20:32:58 +05:30
Sidharth Vinod
31e19a0434 Fix applitools 2024-01-23 20:28:11 +05:30
Sidharth Vinod
16968eb38c Fix lint 2024-01-23 20:12:54 +05:30
Sidharth Vinod
5c46b98eee Merge branch 'next' into pr/Yokozuna59/4751
* next: (35 commits)
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  Update packages/mermaid/src/docs/syntax/flowchart.md
  Update flowchart.md #5195
  Add tests for gitgraphs with unconnected branches
  Include logic for gitgraph with unconnected branches
  Include undefined on findClosestParent return types and update the function
  Remove unnecessary argument on findClosestParent call
  Use already defined const instead of method call
  Fix pnpm-lock by resetting it, sorry!
  ...
2024-01-23 20:02:01 +05:30
Sidharth Vinod
ba46747cb0 Merge branch 'develop' into next
* develop: (35 commits)
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  Update packages/mermaid/src/docs/syntax/flowchart.md
  Update flowchart.md #5195
  Add tests for gitgraphs with unconnected branches
  Include logic for gitgraph with unconnected branches
  Include undefined on findClosestParent return types and update the function
  Remove unnecessary argument on findClosestParent call
  Use already defined const instead of method call
  Fix pnpm-lock by resetting it, sorry!
  ...
2024-01-23 20:01:40 +05:30
Sidharth Vinod
17066aab97 Merge branch 'master' of github.com:mermaid-js/mermaid into develop
* 'master' of github.com:mermaid-js/mermaid:
  docs: fix lint
  docs: move community to Discord
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  Update packages/mermaid/src/docs/syntax/flowchart.md
  Update flowchart.md #5195
2024-01-23 19:55:53 +05:30
Sidharth Vinod
21c9397ec1 Merge pull request #5225 from Olegt0rr/discord
Update Slack community links to Discord
2024-01-23 19:54:53 +05:30
Oleg A
427bcaa3f6 docs: fix lint 2024-01-23 19:53:42 +05:30
Oleg A
8fad1f55e2 docs: move community to Discord 2024-01-23 19:53:41 +05:30
Franck Zagala
b44ec7dadd fix bad expected values in gantt units tests 2024-01-22 21:46:52 +00:00
Franck Zagala
cafe932cbc implement until keyword in gantt charts 2024-01-22 20:11:27 +00:00
Knut Sveidqvist
1629a91a25 Updated lockfile 2024-01-22 14:52:02 +01:00
Knut Sveidqvist
c85b24862d Merge branch 'develop' into 3358-blocks-diagram 2024-01-22 14:19:30 +01:00
Knut Sveidqvist
fe89b9510d #3358 Adjusting docs and a bug fix for nested blocks 2024-01-22 14:14:54 +01:00
Yokozuna59
0dcca35ec2 Update docs 2024-01-20 11:14:58 +00:00
Reda Al Sulais
c7eaee037e Merge branch next into add-sankey-langium-parser 2024-01-20 14:10:30 +03:00
Vitor Soares Silva
c226358f65 Merge branch 'develop' into fix/4212_actor_menus_sequence_diagram_popup 2024-01-19 16:24:54 -03:00
Vitor Soares Silva
8fd268d59b add sequenceDiagram link e2e test 2024-01-19 16:10:23 -03:00
Sidharth Vinod
832e3f5d49 Merge branch 'develop' into next 2024-01-19 23:24:37 +05:30
Sidharth Vinod
c080522102 Merge branch 'develop' into issue1981 2024-01-19 23:18:53 +05:30
Vitor Soares Silva
d74025bd80 Merge branch 'develop' into fix/4212_actor_menus_sequence_diagram_popup 2024-01-19 13:40:30 -03:00
Sidharth Vinod
413de284ed Merge branch 'develop' into pr/NicolasNewman/2885
* develop: (130 commits)
  Cleanup e2e.yml
  Ignore push events on merge queue
  Remove ::
  Remove ::
  Remove ::
  Debug
  Debug
  Remove spec selector
  Handle edge cases in E2E
  Always run combineArtifacts
  Fix error message
  Fix cache save
  Update cache key
  Notify users
  Flatten uploaded images
  Flatten uploaded images
  Use pixelmatch for image comparison
  Run all tests
  Fix lint
  Update lockfile
  ...
2024-01-19 19:59:33 +05:30
Knut Sveidqvist
d96425d19e #3358 Reviving arrow heads after merging develop 2024-01-19 14:57:45 +01:00
Sidharth Vinod
6261fce91f Merge pull request #5077 from mermaid-js/sidv/FlowDB_TS
refactor: Convert flowDB to TS
2024-01-19 14:15:23 +05:30
Sidharth Vinod
46552faa2e Merge branch 'develop' into fix/4212_actor_menus_sequence_diagram_popup 2024-01-19 14:10:30 +05:30
Sidharth Vinod
e8f655439d Fix merge error 2024-01-19 13:59:53 +05:30
Sidharth Vinod
c11093fa71 Update packages/mermaid/src/diagrams/flowchart/flowDb.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-19 13:49:10 +05:30
Sidharth Vinod
af7282511a Merge branch 'next' into sidv/FlowDB_TS
* next: (194 commits)
  Use pixelmatch for image comparison
  Run all tests
  Fix lint
  Update lockfile
  E2E test
  Use cache to store snapshots
  chore(deps): update all patch dependencies
  Change string concatenation to template literal
  Revert "Revert 5041 feature/4935 subgraph title margin config option"
  build(deps-dev): bump follow-redirects from 1.15.2 to 1.15.5
  Draft release on master
  docs: Add release version
  Revert "fix: render the participants in same order as they are created"
  Revert "Feature/4935 subgraph title margin config option"
  Fix typo
  Run dev docs without npx
  Remove npx completely from run script
  Update docs
  Fix linters
  Removed volta requirement, leave pnpm only
  ...
2024-01-19 13:48:03 +05:30
Sidharth Vinod
58b6cf0174 Merge branch 'develop' into next
* develop: (50 commits)
  Use pixelmatch for image comparison
  Run all tests
  Fix lint
  Update lockfile
  E2E test
  Use cache to store snapshots
  chore(deps): update all patch dependencies
  Change string concatenation to template literal
  Revert "Revert 5041 feature/4935 subgraph title margin config option"
  build(deps-dev): bump follow-redirects from 1.15.2 to 1.15.5
  Run dev docs without npx
  Remove npx completely from run script
  Update docs
  Fix linters
  Removed volta requirement, leave pnpm only
  Fixed dead link
  build
  Update docs
  Updated contributing docs after review, minor fixes
  Updated gantt chart docs to show all config options
  ...
2024-01-19 13:46:10 +05:30
Sidharth Vinod
3852117581 Merge pull request #5194 from sorenisanerd/gantt-docs
Add more detailed docs for Gantt tasks
2024-01-19 09:35:33 +05:30
Sidharth Vinod
bf55d940b6 Delete docs/syntax/gantt.html 2024-01-19 09:34:21 +05:30
Soren L. Hansen
e0ee9b1bc0 Add more detailed docs for Gantt tasks 2024-01-19 09:34:20 +05:30
Sidharth Vinod
51aea90e9a Merge pull request #5196 from arukiidou/patch-1
Update flowchart.md - how to use font-awesome #5195
2024-01-19 09:24:32 +05:30
Sidharth Vinod
7918f96f94 Update docs 2024-01-19 09:22:38 +05:30
arukiidou
be8faae68c Update packages/mermaid/src/docs/syntax/flowchart.md
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2024-01-19 09:22:38 +05:30
arukiidou
04ebf0ddc9 Update flowchart.md #5195 2024-01-19 09:22:38 +05:30
Knut Sveidqvist
b4dece88e9 Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358-blocks-diagram 2024-01-18 18:03:58 +01:00
Knut Sveidqvist
d075766760 #3358 Doc updates after viewing the page 2024-01-18 18:03:37 +01:00
knsv
5553cbbb22 Update docs 2024-01-18 16:10:57 +00:00
Knut Sveidqvist
bf64509216 Merge branch 'develop' into 3358-blocks-diagram 2024-01-18 17:07:34 +01:00
Knut Sveidqvist
173ba2ecf5 Final console.log removed 2024-01-18 15:48:40 +01:00
Knut Sveidqvist
8e147206d8 #3358 Removed logging som type fixes 2024-01-18 15:44:16 +01:00
Knut Sveidqvist
1230da7fc7 #3358 Some cleanup 2024-01-18 15:31:14 +01:00
Knut Sveidqvist
a0d328d734 #3358 Removed logging, fixed som tests 2024-01-18 14:28:14 +01:00
Knut Sveidqvist
bbc7fe6163 #3358 Fix for width of composite blocks 2024-01-18 10:22:09 +01:00
Sidharth Vinod
aab7631a9f Merge branch 'develop' into next
* develop: (62 commits)
  Draft release on master
  docs: Add release version
  Revert "fix: render the participants in same order as they are created"
  Revert "Feature/4935 subgraph title margin config option"
  Fix typo
  add inadvertent tracking removal
  update announcement bar
  Update integrations-community.md (Add Codemia to the list of productivity tools using Mermaid.)
  v10.7.0
  10.6.2-rc.3
  docs: Remove broken integration
  chore: Minor cleanup of imperativeState
  chore(deps): update all minor dependencies
  adds corresponding change in docs/ecosystem
  Adds Unison programming language to community integrations list
  update verbiage
  update verbiage
  add jetbrains blog post
  additional updates
  Fixed parser/tests
  ...
2024-01-16 19:15:33 +05:30
Knut Sveidqvist
1d1875718d #3358 Sieblinmg height alignment 2024-01-08 15:48:59 +01:00
Knut Sveidqvist
7043892e87 #3358 Fix for layout where a siebling has wider siize 2024-01-08 14:03:42 +01:00
Knut Sveidqvist
809c450164 #3358 Support for adding tests and fixed issues for some shapes 2024-01-08 11:49:34 +01:00
Knut Sveidqvist
818cb2fd76 #3358 Adding support for style statements 2024-01-05 20:56:57 +01:00
Knut Sveidqvist
275e01acba #3358 Adding support for classDef and class statements 2024-01-05 15:13:15 +01:00
Knut Sveidqvist
72135c294e #3358 Edge labels 2024-01-04 16:28:13 +01:00
Knut Sveidqvist
d0eca268ad #3358 Multiple arrows 2024-01-04 16:05:19 +01:00
Knut Sveidqvist
2ed4469029 #3358 Adding arrows to rendering 2024-01-04 14:15:30 +01:00
Reda Al Sulais
526d2a61f8 Merge branch 'mermaid-js:develop' into add-pie-langium-parser 2024-01-02 23:05:40 +03:00
Reda Al Sulais
54a09ead95 pref: remove rearrangeRules from AbstractMermaidTokenBuilder 2023-12-31 15:31:15 +03:00
Reda Al Sulais
c2ea23f01f Merge branch next into add-pie-langium-parser 2023-12-31 15:21:47 +03:00
Vitor Soares Silva
e6bd1ae9dc fix sequence diagram popup 2023-12-22 11:30:24 -03:00
William Jennings
7e6fd1ebe2 Update pie.html demo 2023-12-12 13:53:25 -08:00
Scott Blomquist
5e1f0c620a Fix typos in timeline syntax samples 2023-12-12 12:48:07 -08:00
Sidharth Vinod
d91934b219 comment out skipped test 2023-12-10 22:38:50 +05:30
Sidharth Vinod
ff6188bd80 Merge pull request #5118 from mermaid-js/sidv/diagramType
feat: Add diagramType to RenderResult and ParseResult
2023-12-10 22:05:40 +05:30
Sidharth Vinod
dc1b2a6873 Merge pull request #5126 from diegosogari/chore/5125-fix-duplicate-config-types
Remove default properties before generating the config types
2023-12-10 22:05:12 +05:30
Diego Sogari
d732a146c2 Merge branch 'next' into chore/5125-fix-duplicate-config-types 2023-12-08 09:35:43 -03:00
Sidharth Vinod
b9bc518a0a chore: Add docs 2023-12-08 10:06:36 +05:30
Sidharth Vinod
edf32911be Merge branch 'sidv/diagramType' of https://github.com/mermaid-js/mermaid into sidv/diagramType
* 'sidv/diagramType' of https://github.com/mermaid-js/mermaid:
  Update docs
  Update packages/mermaid/src/docs/config/usage.md
2023-12-08 09:57:33 +05:30
Sidharth Vinod
b8470a471b chore: Add docs 2023-12-08 09:57:08 +05:30
sidharthv96
45880395ea Update docs 2023-12-08 04:18:24 +00:00
Sidharth Vinod
6f3c9205cd Update packages/mermaid/src/docs/config/usage.md
Co-authored-by: Alois Klink <alois@mermaidchart.com>
2023-12-08 09:45:49 +05:30
Sidharth Vinod
96c90b24d1 Merge branch 'next' into sidv/diagramType
* next:
  chore: Fix import.meta.vitest warnings
  Update docs
  Update NiceGuy.io links in integrations-community.md
2023-12-08 09:39:14 +05:30
Sidharth Vinod
aa4bfa0727 chore: Fix import.meta.vitest warnings 2023-12-08 09:38:54 +05:30
Sidharth Vinod
8873ffca12 chore: Overload parse type to be more specific.
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-12-08 09:37:46 +05:30
Diego Sogari
0bda748ad9 Remove default properties before generating the config types 2023-12-07 17:30:56 -03:00
Sidharth Vinod
867686fe34 refactor: Address review comments 2023-12-07 11:27:48 +05:30
Sidharth Vinod
60f92dcdbc Merge branch 'develop' into next
* develop:
  Update docs
  Update NiceGuy.io links in integrations-community.md
2023-12-07 11:02:27 +05:30
Sidharth Vinod
22f83f1614 fix: Sequence actor rendering 2023-12-07 09:57:02 +05:30
Sidharth Vinod
a9818b40b6 chore: Remove special case error handling 2023-12-07 01:27:54 +05:30
Sidharth Vinod
85774b7e46 chore: Fix configAPI 2023-12-07 01:04:12 +05:30
Sidharth Vinod
886eda92a9 chore: await drawActors 2023-12-07 00:40:45 +05:30
Sidharth Vinod
1d86cf01ad refactor: Cleanup error renderer 2023-12-07 00:37:25 +05:30
Sidharth Vinod
70b948fd17 refactor: Optimize renderKatex 2023-12-07 00:36:21 +05:30
Sidharth Vinod
0d98e6ca53 refactor: Revert type change for renderer 2023-12-07 00:17:53 +05:30
Sidharth Vinod
8d90815862 Merge branch 'develop' into pr/NicolasNewman/2885
* develop: (192 commits)
  build(deps-dev): bump vite from 4.4.9 to 4.4.12
  Changes to .prettierignore 1. Added 'demos/dev/**' to be ignored by Prettier. 2. Added '!/demos/dev/example.html' so that Prettier ensures no one changes the example.html in a way that doesn't obey the Prettier code formatting rules.
  build: use `tsx` instead of `ts-node-esm`
  chore: Downgrade node to 18.18.2
  fix: #5100 Add viewbox to sankey
  chore(deps): update all minor dependencies
  chore: Rename test
  test: Add unit test for generic classname and namespace
  fix: Check if parentCommit is provided
  Split type from generic class name
  Condition of Parent Id Without Merge Commit Added
  Referenced the PmWiki's Cookbook recipe enabling MermaidJs schematics in wiki pages
  test(e2e): fix pie chart E2E tests for PR #4288
  Add dummy commit to trigger GH checks
  chore: Revert unnecessary export
  refactor: Remove unnecessary calculations
  chore: Fix computeWidth function
  chore: Cleanup setupGraphViewbox
  Update docs
  update mermaidAPI to cleanup the text before passing to getDiagramFromText
  ...
2023-12-07 00:01:01 +05:30
Sidharth Vinod
6871ad09e6 test: Update tests 2023-12-06 22:27:00 +05:30
Sidharth Vinod
479188bc40 refactor: Change return type to retain partial backwards compatibility. 2023-12-06 22:23:37 +05:30
Sidharth Vinod
c3c7ccd78a feat: Add diagramType to RenderResult and ParseResult #5117 2023-12-06 21:11:07 +05:30
Sidharth Vinod
000b432bb2 Merge branch 'develop' into next
* develop: (70 commits)
  build(deps-dev): bump vite from 4.4.9 to 4.4.12
  Changes to .prettierignore 1. Added 'demos/dev/**' to be ignored by Prettier. 2. Added '!/demos/dev/example.html' so that Prettier ensures no one changes the example.html in a way that doesn't obey the Prettier code formatting rules.
  build: use `tsx` instead of `ts-node-esm`
  chore: Downgrade node to 18.18.2
  fix: #5100 Add viewbox to sankey
  chore(deps): update all minor dependencies
  chore: Rename test
  test: Add unit test for generic classname and namespace
  fix: Check if parentCommit is provided
  Split type from generic class name
  Condition of Parent Id Without Merge Commit Added
  Referenced the PmWiki's Cookbook recipe enabling MermaidJs schematics in wiki pages
  test(e2e): fix pie chart E2E tests for PR #4288
  Add dummy commit to trigger GH checks
  chore: Revert unnecessary export
  refactor: Remove unnecessary calculations
  chore: Fix computeWidth function
  chore: Cleanup setupGraphViewbox
  Update docs
  update mermaidAPI to cleanup the text before passing to getDiagramFromText
  ...
2023-12-06 20:50:04 +05:30
futzmonitor
03b5c00f03 Merge branch 'develop' into issue1981 2023-12-05 21:56:08 -05:00
futzmonitor
aa3a19b63c Merge branch 'develop' into issue1981 2023-12-04 15:25:09 -05:00
futzmonitor
8e95cdb883 Changes to gantt.jison
1. Consistent spacing on line 30
2023-12-02 12:56:58 -05:00
futzmonitor
68ff352f2d Changes to gantt.jison
1. Removed typo
2023-12-02 10:26:46 -05:00
futzmonitor
f02dfe60af Changes to gnatt.jison
1. Removed the hash and semicolon symbols from the title regex to allow for their use.
2. Removed the hash and semicolon symbols from the section regex to allow for their use.
3. Removed the hash and semicolon symbols for the taskTxt regex to allow for their use. I did not remove the colon because the parser fails to recognize when the actual taskData begins if that distinctions isn't kept.
4. Removed the regex \#[^\n]* which skipped comments to fix some bugs with hash symbols in the taskTxt. I tested this changed by putting it back and using the comment  to see if it was recognized as a comment, but I would receive a syntax error and the diagram would not be rendered. So, I think we can safely remove that line, BUT it would be best practice if someone else tested this change to ensure that this will not break anyone's Gantt diagrams.
2023-12-02 10:23:44 -05:00
Sidharth Vinod
65a08efa00 chore: Cleanup types 2023-11-28 00:31:05 +05:30
Sidharth Vinod
60266289e0 chore: Remove unused file 2023-11-28 00:17:16 +05:30
Sidharth Vinod
3145758411 Convert flowDb.spec.js 2023-11-28 00:15:22 +05:30
Sidharth Vinod
d7948a845d fix: Flatten Nodelist 2023-11-28 00:12:22 +05:30
Sidharth Vinod
aff69e583e chore: Fix bindFunctions type 2023-11-27 23:10:36 +05:30
Sidharth Vinod
e7f7b6ad68 chore: Separate types 2023-11-27 14:44:03 +05:30
Sidharth Vinod
b5e58f4076 refactor: Convert flowDB to TS 2023-11-27 10:57:04 +05:30
Sidharth Vinod
fd0f51926e Move mermaid-parser to @mermaid-js/parser 2023-11-26 21:17:08 +05:30
Sidharth Vinod
733d6fe6eb Move mermaid-parser to @mermaid-js/parser 2023-11-26 21:10:00 +05:30
Sidharth Vinod
bffbf87cb3 Version for rc release 2023-11-24 14:08:56 +05:30
Sidharth Vinod
63890cc2fd Version for rc release 2023-11-24 14:07:52 +05:30
Sidharth Vinod
9ade49b39c Version for rc release 2023-11-24 14:02:55 +05:30
Sidharth Vinod
6d49cd6859 Merge pull request #5049 from mermaid-js/sidv/splitELK
Move ELK to standalone package
2023-11-24 11:05:34 +05:30
Sidharth Vinod
5eb116059b Turn off patch coverage 2023-11-24 11:04:11 +05:30
Sidharth Vinod
bcdd1c56bf chore: Optimize dev server 2023-11-24 10:54:43 +05:30
Sidharth Vinod
cbcd2cce9b chore: Optimize dev server 2023-11-24 10:38:32 +05:30
Sidharth Vinod
94c3d7fb60 Merge branch 'next' into sidv/splitELK
* next: (39 commits)
  reset the testTimeout to 5 seconds and change it directly in the test
  update testTimeout from 5 seconds to 10 seconds
  Update all patch dependencies
  fix broken link
  add latest blog post
  Update all minor dependencies
  fix linting
  fix: set proper shiki theme for light and dark modes
  fix: change shiki theme to github-light
  add latest blog post
  GitGraph: made reroute fn more readable
  GitGraph: simplified branch check in arrow rerouting fn
  GitGraph: added commit IDs to e2e test to remove false positives
  GitGraph: Moved branch curve check to within reroute check fn
  GitGraph: corrected minor typo in comment.
  GitGraph: added 2x e2e tests for branches not used immediately
  GitGraph: added branch checking to rerouting
  GitGraph: Added e2e tests for deferred branch use.
  GitGraph: e2e tests, added commit IDs to test graphs
  GitGraph: fixed an e2e branch for vertical branch
  ...
2023-11-24 09:55:31 +05:30
Sidharth Vinod
a2db4a464a Merge branch 'develop' into next
* develop: (39 commits)
  reset the testTimeout to 5 seconds and change it directly in the test
  update testTimeout from 5 seconds to 10 seconds
  Update all patch dependencies
  fix broken link
  add latest blog post
  Update all minor dependencies
  fix linting
  fix: set proper shiki theme for light and dark modes
  fix: change shiki theme to github-light
  add latest blog post
  GitGraph: made reroute fn more readable
  GitGraph: simplified branch check in arrow rerouting fn
  GitGraph: added commit IDs to e2e test to remove false positives
  GitGraph: Moved branch curve check to within reroute check fn
  GitGraph: corrected minor typo in comment.
  GitGraph: added 2x e2e tests for branches not used immediately
  GitGraph: added branch checking to rerouting
  GitGraph: Added e2e tests for deferred branch use.
  GitGraph: e2e tests, added commit IDs to test graphs
  GitGraph: fixed an e2e branch for vertical branch
  ...
2023-11-24 09:54:02 +05:30
Sidharth Vinod
fe7da97c5c fix flow elk test 2023-11-23 22:51:08 +05:30
Sidharth Vinod
c294a0a9ac test: Add flowchart-elk overriding test 2023-11-23 22:41:22 +05:30
Sidharth Vinod
30fe363b57 chore: Update pnpm-lock 2023-11-23 22:32:32 +05:30
Sidharth Vinod
4ec57836d8 chore: Optimize build:types 2023-11-23 22:31:11 +05:30
Sidharth Vinod
5b7ba838f1 Merge branch 'sidv/splitELK' of https://github.com/mermaid-js/mermaid into sidv/splitELK
* 'sidv/splitELK' of https://github.com/mermaid-js/mermaid:
  5043 Allow registered diagrams to be overridden.
2023-11-23 22:15:08 +05:30
Sidharth Vinod
ac99eb59d2 Cleanup package.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-11-23 22:15:04 +05:30
Sidharth Vinod
1be09df9d4 Merge pull request #5050 from mermaid-js/sidv/splitELK2
Allow registered diagrams to be overridden.
2023-11-23 22:11:41 +05:30
Knut Sveidqvist
df858dc7b6 #3358 Adding arrows to syntax 2023-11-20 14:00:25 +01:00
Sidharth Vinod
38b3a2080b 5043 Allow registered diagrams to be overridden. 2023-11-20 00:29:13 +05:30
Sidharth Vinod
0fec0ef624 5043 Move ELK to standalone package 2023-11-19 00:44:44 +05:30
Sidharth Vinod
f0d6789722 fix: Netlify build 2023-11-16 11:03:55 +05:30
Sidharth Vinod
7ef61d58fd test: Add packet test for title, accTitle, accDescr 2023-11-16 10:58:25 +05:30
Sidharth Vinod
96ae4a5967 chore: Remove unnecessary(?) mocks. 2023-11-16 10:49:26 +05:30
Sidharth Vinod
bca645f63d test: Add packet and xychart into mermaidAPI test 2023-11-16 10:48:25 +05:30
Sidharth Vinod
a8105f084e fix: Use configureSvgSize
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-16 10:42:41 +05:30
Reda Al Sulais
e86f09aaed Apply suggested style from code review
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-11-15 12:53:43 +03:00
Reda Al Sulais
692a7471c1 chore: apply review changes 2023-11-15 12:46:58 +03:00
Sidharth Vinod
480645d22f fix: Add language to codeblock 2023-11-15 12:26:24 +05:30
Sidharth Vinod
784a853ec7 feat: Add theming to packet 2023-11-15 12:20:28 +05:30
Sidharth Vinod
088fc392ab Fix SVG width 2023-11-15 09:42:35 +05:30
Sidharth Vinod
0d7644c782 refactor: Fix types 2023-11-15 09:25:49 +05:30
Sidharth Vinod
f15d24b4e8 Merge branch 'next' into feat/948_packetDiagram
* next:
  fix text-decoration for abstract attibutes
  ci(pr-labeler): add required `template` option
  ci(pr-labeler): replace TimonVS/pr-labeler-action
  style(pr-labeler): format .github/pr-labeler.yml
  docs(ci/pr-labeler): warn about security issues
  ci(release-draft): handle new release-drafter name
  ci(release-drafter): remove unused `branch` config
  ci(pr-labeler): limit GITHUB_TOKEN permissions
  ci(release-draft): limit GITHUB_TOKEN permissions
2023-11-15 09:10:41 +05:30
Sidharth Vinod
510549f365 Merge branch 'develop' into next
* develop:
  fix text-decoration for abstract attibutes
  ci(pr-labeler): add required `template` option
  ci(pr-labeler): replace TimonVS/pr-labeler-action
  style(pr-labeler): format .github/pr-labeler.yml
  docs(ci/pr-labeler): warn about security issues
  ci(release-draft): handle new release-drafter name
  ci(release-drafter): remove unused `branch` config
  ci(pr-labeler): limit GITHUB_TOKEN permissions
  ci(release-draft): limit GITHUB_TOKEN permissions
2023-11-15 09:10:13 +05:30
Sidharth Vinod
99313fe162 fix editor build 2023-11-15 09:09:48 +05:30
Sidharth Vinod
f9df193b7b chore: Fix imports 2023-11-15 01:04:07 +05:30
Sidharth Vinod
113a400952 Add DiagramRenderer type
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 01:02:20 +05:30
Sidharth Vinod
b6983e4b21 Add title to tests 2023-11-15 00:59:34 +05:30
Sidharth Vinod
fc400ea57b fix: Langium formatting
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 00:57:39 +05:30
Sidharth Vinod
068a74adeb chore: Fix magic number
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 00:55:02 +05:30
Sidharth Vinod
1a8743ec11 refactor: Separate default options in styles 2023-11-15 00:52:56 +05:30
Sidharth Vinod
9925b9b455 feat: Add title support to packetDiagram 2023-11-15 00:47:03 +05:30
Reda Al Sulais
4c43bae92d Merge branch next into add-pie-langium-parser 2023-11-14 20:04:16 +03:00
Sidharth Vinod
659db9f04b chore: Add types and minimums for packet config 2023-11-14 19:44:09 +05:30
Sidharth Vinod
b88d1dfaa9 fix(packet): Grammar whitespace
Move populate into parser

Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-14 11:59:58 +05:30
Sidharth Vinod
7c79bbd6b0 refactor: Address review comments
Moved some types around
Removed unnecessary params

Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-11-14 11:48:11 +05:30
Sidharth Vinod
ce6bfcb7f5 Merge branch 'next' into feat/948_packetDiagram
* next: (193 commits)
  Update all patch dependencies
  Fix docs
  Update packages/mermaid/src/docs/community/questions-and-suggestions.md
  Update packages/mermaid/src/diagrams/class/classRenderer-v2.ts
  update edge ids
  draw top actors with lines  first followed by messages
  Bump GitHub workflow actions to latest versions
  Update docs
  Documentation: clarify sentence
  Fix lint
  Fix typo
  fix typo
  Add new Atlassian integrations
  chore(deps): update all patch dependencies
  Update demos/sequence.html
  chore: release v10.6.1
  fix
  fix
  fix: render the participants in same order as they are created
  fix(flow): fix invalid ellipseText regex
  ...
2023-11-14 11:21:15 +05:30
Sidharth Vinod
6ce543e118 Merge branch 'develop' into next
* develop: (126 commits)
  Update all patch dependencies
  Fix docs
  Update packages/mermaid/src/docs/community/questions-and-suggestions.md
  Update packages/mermaid/src/diagrams/class/classRenderer-v2.ts
  update edge ids
  draw top actors with lines  first followed by messages
  Bump GitHub workflow actions to latest versions
  Update docs
  Documentation: clarify sentence
  Fix lint
  Fix typo
  fix typo
  Add new Atlassian integrations
  chore(deps): update all patch dependencies
  Update demos/sequence.html
  chore: release v10.6.1
  fix
  fix
  fix: render the participants in same order as they are created
  fix(flow): fix invalid ellipseText regex
  ...
2023-11-14 11:20:27 +05:30
Reda Al Sulais
1d88ac43cf enhance title, accTitle, and accDescr regexes 2023-11-08 22:10:36 +03:00
Reda Al Sulais
6102285577 full switch to EOF 2023-11-08 22:10:36 +03:00
Reda Al Sulais
b83603488c build(deps): update langium to v2.1.1 2023-11-08 22:10:35 +03:00
Reda Al Sulais
cf22e30237 rename abstract rules in common parser files 2023-11-05 13:07:08 +03:00
Reda Al Sulais
f01971b67c switch to NEWLINE+ instead of EOF until next release of langium 2023-11-05 02:11:04 +03:00
Reda Al Sulais
c62be1bb45 export necessary functions and types from packages/parser 2023-11-05 02:08:36 +03:00
Reda Al Sulais
cf1880343b fix: make rearrangeRules update the array itself 2023-11-05 02:03:58 +03:00
Reda Al Sulais
0c57433567 Merge branch 'next' into add-pie-langium-parser 2023-11-03 23:17:57 +03:00
Reda Al Sulais
5ef0527ebc export all common ValueConverter and TokenBuilder and update imports 2023-11-03 23:12:24 +03:00
Reda Al Sulais
53ef5c51cc create CommonTokenBuilder 2023-11-03 23:09:58 +03:00
Reda Al Sulais
58c7934dd8 export necessary objects and types from packages/parser 2023-11-03 22:45:23 +03:00
Reda Al Sulais
0a626917f8 remove unnecessary lines 2023-11-03 22:39:11 +03:00
Reda Al Sulais
922bb1452f test: update all parser test cases 2023-11-03 22:35:01 +03:00
Reda Al Sulais
1cda37659e chore(parser): rearrange rules to make imported rules at the beginning 2023-11-03 22:28:33 +03:00
Reda Al Sulais
fe2e46fe60 build(dev-deps): add chevrotain as a devDependencies 2023-11-03 22:26:05 +03:00
Reda Al Sulais
7765afa7da chore: allow comments to adjust keywords 2023-11-03 22:15:13 +03:00
Reda Al Sulais
55d7e9ec61 pref: remove CommonLexer and use EOF 2023-11-03 22:12:09 +03:00
Reda Al Sulais
6a4ad8af06 build(deps): update langium and langium-cli to v2.1.0 2023-11-03 22:09:36 +03:00
Reda Al Sulais
018440354f build(deps): remove langium-cli from packages/parser to use the one in root 2023-11-03 22:06:56 +03:00
Knut Sveidqvist
03c59adaed Parsing of block arrows with directions, creating a dedicated new node for this. 2023-10-26 22:02:16 +02:00
Knut Sveidqvist
7198fe55a9 Parsing of block arrows with directions, creating a dedicated new node for this. 2023-10-26 22:01:44 +02:00
Knut Sveidqvist
f3f25c7874 #3358 Adding support for space blocks and different shapes 2023-10-20 12:30:25 +02:00
Knut Sveidqvist
5619f8771b #3358 Adding support for space blocks and different shapes 2023-10-20 12:13:49 +02:00
Knut Sveidqvist
74a9e86e74 #3358 Putting the elements back in 2023-10-15 22:55:29 +02:00
Knut Sveidqvist
a641fd51e8 #3358 Adding support for column statements 2023-10-15 22:21:25 +02:00
NicolasNewman
e6906563a4 refactor(katex): resolved linting errors 2023-10-11 11:10:56 -05:00
NicolasNewman
2dce7f0268 Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-10-11 11:02:11 -05:00
NicolasNewman
6fa8a51a21 Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-10-11 10:46:45 -05:00
Sidharth Vinod
49a197eaa8 chore: Update pnpm-lock 2023-10-06 11:12:50 +05:30
Sidharth Vinod
3abe7cfc45 Merge branch 'develop' into next
* develop: (61 commits)
  Revert "fix: Reduce gantt exclude days length"
  Commented out broken test (#4913)
  fix: Reduce gantt exclude days length
  Update docs
  Fix lint issue
  Fix release version
  Fix TopBar
  Add MC to integrations
  Add TopBar
  Fix docs
  Docs: Add Product Hunt info (#4900)
  Update docs
  Merge branch 'release/10.5.0'
  Mermaid release v10.5.0
  docs: typo fixed
  docs: typo fixed
  Fix for issue with backticks in ids in classDiagrams
  more fixes
  fix typo
  more link fixes
  ...
2023-10-06 11:11:34 +05:30
Knut Sveidqvist
da79b371fe #3358 Recursive positioning paddings 2023-10-04 10:44:29 +02:00
Knut Sveidqvist
c8d155c455 #3358 Recursive positioning 2023-10-03 20:12:33 +02:00
Knut Sveidqvist
f00871a6b4 #3358 Recursive positioning 2023-10-03 14:19:08 +02:00
Knut Sveidqvist
b4e32542e8 #3358 Recursive positioning 2023-10-03 12:56:47 +02:00
Reda Al Sulais
8c31db6352 Merge branch 'next' into add-pie-langium-parser 2023-09-20 17:56:36 +03:00
Reda Al Sulais
91eb824c21 Merge branch 'develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-09-20 17:55:20 +03:00
Sidharth Vinod
3e3519e8ec docs: Add packet to index 2023-09-19 16:51:42 +05:30
Sidharth Vinod
566150977a Add mini-live editing to example.html 2023-09-18 23:31:23 +05:30
Sidharth Vinod
0ff3ba30b7 Add mini-live editing to example.html 2023-09-18 23:29:27 +05:30
Reda Al Sulais
3c90894e38 Merge branch 'develop' into next 2023-09-15 01:57:20 +03:00
Sidharth Vinod
136f1c50e7 fix: Diagram DB types 2023-09-14 23:24:03 +05:30
Sidharth Vinod
043729f557 feat: Support showBits 2023-09-14 23:12:42 +05:30
Sidharth Vinod
75f1f9228d test: Add rendering tests 2023-09-14 23:12:06 +05:30
Sidharth Vinod
38d9c6d26b test: Add unit tests 2023-09-14 23:00:59 +05:30
Sidharth Vinod
afd7cf51cf fix: Types and nomenclature 2023-09-14 22:46:43 +05:30
Sidharth Vinod
c41594d220 feat: Add packet diagram 2023-09-14 22:35:13 +05:30
Sidharth Vinod
fedbd48c0f Merge branch 'next' into pr/Yokozuna59/4751
* next: (98 commits)
  refactor: Simplify TokenBuilder and ValueConverter
  chore: Fix pnpm-lock
  Bump version
  chore: Fix type in 'getLineFunctionsWithOffset'
  Update cypress/platform/marker_unique_id.html
  refactor: Add getLineFunctionsWithOffset function
  refactor: Move EdgeData to types
  fix: PointStart marker refX
  Added cypress test
  chore(deps): update all patch dependencies
  refactor: Fix typings in utils.ts
  Give markers unique id's per graph
  chore: Fix type
  chore: Add @internal to createCSSStyles
  chore: Bump version
  refactor: Remove unused variables
  fix: #4818 support `getClasses` in external diagrams.
  Remove unnecessary tests
  Remove optional chaining
  chore: Update docs
  ...
2023-09-14 17:38:43 +05:30
Sidharth Vinod
271b779995 refactor: Simplify TokenBuilder and ValueConverter 2023-09-14 17:32:44 +05:30
Sidharth Vinod
52b33f6f47 chore: Fix pnpm-lock 2023-09-14 14:25:22 +05:30
Sidharth Vinod
5aee43d05b Merge branch 'develop' into next
* develop:
  Bump version
  chore: Fix type in 'getLineFunctionsWithOffset'
  Update cypress/platform/marker_unique_id.html
  refactor: Add getLineFunctionsWithOffset function
  refactor: Move EdgeData to types
  fix: PointStart marker refX
  Added cypress test
  chore(deps): update all patch dependencies
  refactor: Fix typings in utils.ts
  Give markers unique id's per graph
  chore: Add @internal to createCSSStyles
  chore: Bump version
  refactor: Remove unused variables
  fix: #4818 support `getClasses` in external diagrams.
2023-09-14 14:19:31 +05:30
Knut Sveidqvist
836d3a87be WIP 2023-09-14 10:11:43 +02:00
Sidharth Vinod
7b29a380fc chore: Fix type 2023-09-08 16:42:08 +05:30
Sidharth Vinod
997c23befa Merge branch 'develop' into next
* develop:
  Remove unnecessary tests
  Remove optional chaining
  refactor: Use `||` instead of `??`
  core: Adapt changes from 3f7bafb2d7
  Update cypress/helpers/util.js
  chore: Add deprecation notices, improve types
  chore: Cleanup gitGraph tests
  Update README.md
  refactor: Move setWrap to individual diagrams as necessary.
  refactor: Remove directives from grammar
  refactor: Update DBs to remove directive handling
  refactor: Move directive processing before parsing
  I refactored the code to improve its time complexity by removing unnecessary code and optimizing the existing code.
2023-09-08 16:36:45 +05:30
Reda Al Sulais
24d43849a0 chore: apply review suggestions
* pref: optimize `common` rules and matchers
* chore: rename diagrams services to short form
* chore: sort imports
2023-09-07 00:24:00 +03:00
Sidharth Vinod
4ce26296d6 Merge branch 'develop' into next
* develop:
  chore: Update docs
2023-09-06 23:25:57 +05:30
Sidharth Vinod
4342759da7 Merge branch 'develop' into next
* develop:
  Update flowchart.md (#4798)
  Update flowchart.md (#4792)
  chore: Update docs
  Added missing integration tests and release version in docs.
  chore: Fix warning formatting
  docs: Disable showValues in sankey example
  Added support for millisecond and second to gantt tickInterval
  Use utf8 encoding in Jupyter example
2023-09-06 23:16:03 +05:30
Sidharth Vinod
25f2d224f1 Merge branch 'develop' into next
* develop:
  fix: Add support for `~test Array~string~`
2023-09-06 16:53:18 +05:30
Reda Al Sulais
0abb4f8c6f Merge branch develop into next 2023-09-06 02:16:25 +03:00
Knut Sveidqvist
ccdb803501 Rendering, interim 2023-09-05 15:15:08 +02:00
Knut Sveidqvist
1e864a508d Rendering, tmp commit before refactoring 2023-09-05 11:13:27 +02:00
Sidharth Vinod
697ac18872 Merge branch 'develop' into next
* develop:
  chore: Align with convention
  add additional test case
  added test case
  add sanitize text
  Update docs
  modifications to generic parser
  improvements to parseGenericTypes
  Update packages/mermaid/src/diagrams/class/svgDraw.js
  return comment
  add tsdoc comments
  update tests
  apply suggesitons
  Update packages/mermaid/src/diagrams/class/classTypes.ts
  Update packages/mermaid/src/diagrams/class/classTypes.ts
  update tests and db name
  Fix tests
  spec changes
  update classes to handle , in generic
  Update and add tests
  Create new type for member handling
2023-09-03 12:27:44 +05:30
Sidharth Vinod
fc229cf274 Merge pull request #4803 from aloisklink/refactor/mermaid-config-limit-enum-types
[v11] Limit `MermaidConfig` enum TypesScript types to certain values
2023-09-03 05:29:25 +00:00
Alois Klink
b48136d994 refactor!: remove MermaidConfig type enum fallback
Currently (in Mermaid v10), pretty much all enum types in the
MermaidConfig have generic `string` or `number` fallbacks,
for backwards compatibility.

This commit drops this. The MermaidConfig TypeScript types now expects
a limited amount of values.

BREAKING-CHANGE: Remove `MermaidConfig` generic type fallbacks for
                 enum values.
2023-09-02 19:33:40 +01:00
Alois Klink
77ba7c987a test: rewrite some config vals to tighten types
We're planning on limiting some of MermaidConfig's types to specific
values (e.g. `0 | 1` instead of `number`).
2023-09-02 19:33:40 +01:00
Reda Al Sulais
84f3baf013 Merge branch 'develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-09-02 18:57:00 +03:00
Knut Sveidqvist
5f1cfc7519 Support for compound blocks with id, title and type 2023-09-01 16:22:23 +02:00
Knut Sveidqvist
e52de6c279 Some cleanup 2023-09-01 15:40:49 +02:00
Knut Sveidqvist
8a55b212a2 Saving data from compound blocks 2023-09-01 15:33:38 +02:00
Knut Sveidqvist
aa7f5a8387 before refactoring 2023-09-01 14:06:13 +02:00
Knut Sveidqvist
5fc99f1982 #3358 Adding db calls from node statements 2023-08-28 12:51:49 +02:00
Reda Al Sulais
795baedbb1 chore: run pnpm lint:fix 2023-08-28 12:14:49 +03:00
Reda Al Sulais
5469a7eb71 Update packages/mermaid/src/diagrams/pie/pieParser.ts
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-28 12:11:21 +03:00
Reda Al Sulais
23fc7c2c96 Update packages/parser/src/language/pie/pieValueConverter.ts
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-28 12:11:12 +03:00
sidharthv96
dff404a8c9 Update docs 2023-08-28 08:53:43 +00:00
Sidharth Vinod
146364aa67 chore: Fix imports 2023-08-28 14:19:43 +05:30
Sidharth Vinod
258dbf30e0 Merge branch 'next' into pr/Yokozuna59/4751
* next: (70 commits)
  chore: Add comment for `yy`.
  chore: Increase heap size when building
  chore: increase `test-util.ts` converage by returning `undefined`
  chore: add `vitest` imports to `test-util.ts`
  chore: run `pnpm lint:fix`
  create `noErrorsOrAlternatives` parser helper function
  chore: export `InfoModule` from `infoModule.ts`
  docs: Fix link
  Update docs
  fix(pie): align slices and legend orders
  Mermaid version v10.4.0
  unique batches every time, if not repeated tests end up in the same batch
  Added missed .md
  Increase JS heap
  More tests for redirects + prettier
  Fixed redirects inside vitepress, extended tests
  chore: Explain redirect.ts clearly
  docs: Fix npmjs link
  chore: Update editor.bash to build latest version
  chore: Build after clone
  ...
2023-08-28 14:13:20 +05:30
Sidharth Vinod
44b93c039a Merge pull request #4727 from Yokozuna59/add-info-langium-parser
feat: add `@mermaid-js/parser` package and `info` langium parser
2023-08-28 08:10:30 +00:00
Sidharth Vinod
4d5313699e chore: Add comment for yy. 2023-08-28 13:39:37 +05:30
Sidharth Vinod
cd198290d7 Merge branch 'next' into pr/Yokozuna59/4727
* next:
  chore: Increase heap size when building
  fix(er): bug if relationship is declared first
  test(er): add cypress test on entity name alias
  feat(er): use square brackets to add aliases
  docs(er): add release version for entity name aliases
  feat(er): add entity name alias
2023-08-28 13:32:27 +05:30
Sidharth Vinod
60ed7d3273 chore: Increase heap size when building 2023-08-26 23:43:27 +05:30
Sidharth Vinod
9bcfba6620 Merge branch 'develop' into next
* develop:
  fix(er): bug if relationship is declared first
  test(er): add cypress test on entity name alias
  feat(er): use square brackets to add aliases
  docs(er): add release version for entity name aliases
  feat(er): add entity name alias
2023-08-26 23:09:05 +05:30
Reda Al Sulais
7ea3c64268 chore: increase test-util.ts converage by returning undefined 2023-08-26 14:37:36 +03:00
Reda Al Sulais
2b6a34e9e0 chore: add vitest imports to test-util.ts 2023-08-26 14:20:22 +03:00
Reda Al Sulais
458b90c78d chore: run pnpm lint:fix 2023-08-26 14:06:41 +03:00
Reda Al Sulais
dd284c0986 Merge branch 'add-info-langium-parser' of https://github.com/Yokozuna59/mermaid into add-info-langium-parser 2023-08-26 14:02:19 +03:00
Reda Al Sulais
21539dfb6a create noErrorsOrAlternatives parser helper function 2023-08-26 14:01:56 +03:00
Reda Al Sulais
91785b8284 Merge branch 'next' into add-info-langium-parser 2023-08-26 13:48:31 +03:00
Reda Al Sulais
f202770b70 Merge branch develop into next 2023-08-26 13:44:24 +03:00
Reda Al Sulais
8186a54962 chore: export InfoModule from infoModule.ts 2023-08-26 13:39:17 +03:00
Sidharth Vinod
866909b803 Merge branch 'develop' into next
* develop:
  chore: Update editor.bash to build latest version
  chore: Build after clone
  chore: Force install npm to avoid cache.
  fix: live editor exists error
  chore: Add netlify.toml
  chore: Update editor script
  chore: Add live editor build script for previews
  docs: Fix sankey demo
  feat(sankey): Show values (#4674)
2023-08-25 10:07:46 +05:30
Sidharth Vinod
408910e6e8 Merge branch 'develop' into next
* develop:
  Fixed docs according review
  chore: Fix type imports
  Fixed links
  Split development documentation in several separate pages, fixes for the sidebar menu
2023-08-23 13:19:12 +05:30
Reda Al Sulais
24c8e575f4 docs(parser): create packages/parser README.md file 2023-08-22 20:39:19 +03:00
Reda Al Sulais
8d0ca2c876 build: build .langium file using generate from langium-cli 2023-08-22 13:38:23 +03:00
Reda Al Sulais
fc96ebefd4 build: update langium and langium-cli to v2.0.1 2023-08-22 13:19:52 +03:00
Reda Al Sulais
394330175f Merge remote-tracking branch 'upstream/next' into add-info-langium-parser
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-08-22 13:13:03 +03:00
Sidharth Vinod
f946c3da06 Merge branch 'develop' into next
* develop:
  chore: Remove circular dependency
  Update docs
  docs: Add frontmatter config demos
  docs: Add frontmatter config docs
  fix: XSS vulnerability
  chore: Minor typo fixes
  chore: Add test with both frontmatter and directive
  Update docs
  feat: Add support for config in frontmatter
  chore: Fix type in assignWithDepth
  refactor: Move `sanitizeDirective` into `addDirective`
  refactor: Rename and cleanup `directiveSanitizer`
2023-08-22 13:58:24 +05:30
Sidharth Vinod
156fbd1958 Merge branch 'develop' into next
* develop:
  chore: Remove duplicate CI action
  chore: Add circular dependency check in CI
  refactor: Remove circular dependencies
2023-08-22 13:31:59 +05:30
Sidharth Vinod
7dd0d126e2 Merge branch 'develop' into next
* develop:
  deps: Update unocss and webpack to address vulnerability.
  chore(deps): update all patch dependencies
  ci(release-drafter): add more release notes categories
2023-08-22 10:21:13 +05:30
Reda Al Sulais
205360c109 fix: fix if statment logic checks if parser is not undefined 2023-08-21 03:09:05 +03:00
Reda Al Sulais
984a0e6d06 chore: add a comment illustrate why we build packages sequentially 2023-08-21 03:05:23 +03:00
Reda Al Sulais
eb63568ceb chore: refactore && into if in populateCommonDb 2023-08-21 03:04:39 +03:00
Reda Al Sulais
cc6f896b69 chore: remove ./* part from exports in parser/package.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-21 03:03:50 +03:00
Reda Al Sulais
83e47a7216 fix: use execFileSync instead of execSync in generateLangium 2023-08-21 02:54:30 +03:00
Reda Al Sulais
1d64549cce fix(mermaid): mark mermaid-parser dependecy with ^
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-21 02:54:13 +03:00
Reda Al Sulais
d0c36c0de3 chore!: change addSection header into D3Section 2023-08-20 22:43:49 +03:00
Reda Al Sulais
341db13279 chore!: rename D3Sections type into D3Section 2023-08-20 22:36:11 +03:00
Reda Al Sulais
1c8e13b9c1 feat: integrate pir parser into mermaid package 2023-08-20 19:49:02 +03:00
Reda Al Sulais
49c5f3bb9c feat(parser): create pie parser and export it 2023-08-20 18:48:03 +03:00
Reda Al Sulais
4ae361bd1f reorder packages/parser after packages/mermaid/src/vitepress 2023-08-20 18:45:05 +03:00
Reda Al Sulais
6502496a2c Merge remote-tracking branch 'upstream/next' into add-info-langium-parser 2023-08-20 18:41:32 +03:00
Sidharth Vinod
8678ceeb3c Merge pull request #4749 from Yokozuna59/remove-duplicate-dev-dependency
remove duplicate `@types/d3-scale` dev dependency
2023-08-20 15:38:50 +00:00
Reda Al Sulais
9cb62f4d2e remove duplicate @types/d3-scale dev dependency 2023-08-20 18:20:06 +03:00
Reda Al Sulais
6c0ef54e18 Merge branch 'next' into add-info-langium-parser 2023-08-20 18:01:37 +03:00
Sidharth Vinod
fd731c5ccd Merge branch 'develop' into next
* develop: (56 commits)
  chore: Add comments on redirectMaps
  remove `chart` from `pie.spec.ts` description
  Update docs
  change `defaultConfig` type to `RequiredDeep` and use it in `pieDb`
  use `DiagramStylesProvider` in `pieStyles.ts`
  remove `setConfig` and `resetConfig` in pie
  add `structuredClone` in pie `getConfig`
  cleanAndMerge pieConfig
  remove cleanClone
  feat: Add cleanAndMerge and tests
  chore: Rename utils.spec.ts
  move db assignment from `beforeEach` to `beforeAll`
  create `structuredCleanClone` helper function
  add more types to pieRenderer
  add `resetConfig` to `clear` in pieDb
  rename `reset` to `resetConfig`
  use `structedClone` in `pieDb`
  remove `PieDiagramConfig` and import generated one
  remove unnecessary lines in pie files
  remove unused `HTML` import in pieRenderer
  ...
2023-08-20 20:28:52 +05:30
Reda Al Sulais
cbe9490dc0 feat!: integrate info parser into mermaid package
BREAKING CHANGE: remove `showInfo` from `infoDb`.
2023-08-20 17:25:49 +03:00
Reda Al Sulais
82054bfabc chore: make parser as optional in ParserDefinition 2023-08-20 17:22:13 +03:00
Reda Al Sulais
963dd75c39 chore(parser): build parser package using esbuild and vite
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-20 17:16:12 +03:00
Reda Al Sulais
1c24617f98 feat(parser): create info parser with exporting parser internals 2023-08-20 15:38:46 +03:00
Reda Al Sulais
1559c2ca21 feat(parser): create common directory for langium parsers 2023-08-20 15:36:02 +03:00
Reda Al Sulais
6141722b1f feat: create parser package in packages directory 2023-08-20 15:31:40 +03:00
Reda Al Sulais
222d8eed4e Merge remote-tracking branch 'upstream/develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-08-19 16:20:13 +03:00
Sidharth Vinod
718d52a72c chore: Move liveReload code into script. 2023-08-17 14:30:47 +05:30
Sidharth Vinod
fe1a06271a Fix minify undefined 2023-08-17 12:55:25 +05:30
Sidharth Vinod
bd2370555b Merge branch 'develop' into next
* develop:
  chore: Move SVG import to comment.
  build docs
  Remove whitespace on empty line
  Documentation for #2509
2023-08-17 12:18:40 +05:30
Sidharth Vinod
86c9ee4e90 Merge pull request #4733 from mermaid-js/sidv/splitChunks
Split chunks into individual dirs
2023-08-17 06:47:23 +00:00
Sidharth Vinod
b26bcf1343 chore: Fix minify 2023-08-17 08:22:00 +05:30
Sidharth Vinod
5d5c6275f9 Merge branch 'develop' into next
* develop:
  Update all minor dependencies
  Update all patch dependencies
  make more `RectData` required and remove optional assignment
  use lineBreakRegex in `svgDrawCommon`
  fix svgDrawCommon import by adding `.js`
  add types to `svgDrawCommon.ts`
  convert `svgDrawCommon` to TS
2023-08-17 08:20:11 +05:30
Sidharth Vinod
9c1a47d1fc Merge pull request #4729 from mermaid-js/sidv/esbuildV11
Use ESBuild (replaces UMD with IIFE bundle)
2023-08-16 12:06:07 +00:00
Sidharth Vinod
13852b7f4e Fix import 2023-08-14 09:24:34 +05:30
Sidharth Vinod
4fd7a88a15 chore: Fix outfile names 2023-08-14 08:52:56 +05:30
Sidharth Vinod
5c2a6b5eb1 chore: Add analyzer comment 2023-08-14 08:37:02 +05:30
Sidharth Vinod
9cbebbb8a0 chore: Split chunks into folders 2023-08-14 08:35:49 +05:30
Sidharth Vinod
e26d987c4e chore: Split chunks into folders 2023-08-14 08:34:11 +05:30
Sidharth Vinod
53669efaf8 chore: Add defaultOptions to server 2023-08-14 08:30:51 +05:30
Sidharth Vinod
b68f45ef59 chore: Split chunks into folders 2023-08-14 08:27:14 +05:30
Sidharth Vinod
8f44de651b chore: IIFE to cSpell 2023-08-14 00:55:48 +05:30
Sidharth Vinod
2ede244da0 chore: Minor comments
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-14 00:55:48 +05:30
Sidharth Vinod
77a181978e chore: Replace Date.now with console.time
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-14 00:55:48 +05:30
Sidharth Vinod
170bbce0d3 chore: Build at start 2023-08-14 00:55:41 +05:30
Sidharth Vinod
fc99d9be41 chore: Add build times to live reload 2023-08-14 00:55:41 +05:30
Sidharth Vinod
9fb9bed806 chore: Add live-reload 2023-08-14 00:55:34 +05:30
Sidharth Vinod
01b2f80a95 chore: Remove @vitest/coverage-c8 2023-08-14 00:54:33 +05:30
Sidharth Vinod
da7ff777d1 chore: Add esbuild (Breaking change)
mermaid.min.js and mermaid.js will now be IIFE instead of UMD.
2023-08-14 00:52:45 +05:30
Knut Sveidqvist
b9531d56c4 Adding support for compound blocks 2023-08-08 15:56:02 +02:00
Knut Sveidqvist
13114ebaa1 Merge branch 'develop' into 3358-blocks-diagram 2023-07-25 11:47:22 +02:00
Nikolay Rozhkov
e251baa61c Started layout and rendering 2023-07-11 02:51:10 +03:00
Nikolay Rozhkov
d165e8a642 Started block diag db development 2023-07-10 23:33:11 +03:00
Knut Sveidqvist
c10f76580f Adding some more tests 2023-07-09 12:28:14 +02:00
NicolasNewman
c2f60568cf chore(katex): lint-fix 2023-07-08 11:49:41 +09:00
Nicolas Newman
6518e1300f Update sequence.html 2023-07-08 11:39:37 +09:00
NicolasNewman
22a7234b54 chore(katex): generated types 2023-07-08 11:10:59 +09:00
NicolasNewman
67cbdb41f7 fix(katex): resolved legacyMathML config issues from previous merge 2023-07-08 11:04:35 +09:00
NicolasNewman
2cce8eebc3 Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-07-08 10:58:51 +09:00
NicolasNewman
3d5616cb35 docs(katex): version set to MERMAID_RELEASE_VERSION 2023-07-08 10:49:34 +09:00
NicolasNewman
f15e8c9edb Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-07-08 10:45:36 +09:00
NicolasNewman
a23f0da2a4 docs(katex): specified minimum version 2023-07-08 08:53:29 +09:00
Nikolay Rozhkov
975f36c7db Fixed block diagram parser import 2023-07-07 14:14:30 +03:00
Nikolay Rozhkov
fee2b244a1 Small cleanup 2023-07-07 14:12:18 +03:00
Nikolay Rozhkov
791e67641e Rename BlockDiagram to Block 2023-07-07 13:58:30 +03:00
Knut Sveidqvist
86e1bb38ee #3358 First commit with basic grammar and 1st test 2023-07-05 12:01:37 +02:00
NicolasNewman
40e75fe9b4 docs(katex): added documentation 2023-06-24 16:57:22 +09:00
NicolasNewman
f979ced49d refactor(katex): revision changes 2023-06-24 16:56:42 +09:00
NicolasNewman
fe8474f6c0 fix(katex): updated specs 2023-06-23 17:27:37 +09:00
NicolasNewman
8b42302f9b Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-06-23 16:57:30 +09:00
NicolasNewman
bee2b696aa Merge branch 'feature/2776_katex_math' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-06-23 16:54:32 +09:00
NicolasNewman
5c69e5fdb0 feat(katex): optimized importing of katex 2023-06-23 16:53:01 +09:00
NicolasNewman
9ee45767de Update docs 2023-05-31 08:43:09 +00:00
NicolasNewman
b193013c84 fix(katex): resolved removed class from demo during merging 2023-05-31 17:39:34 +09:00
NicolasNewman
a3930eb629 fix(katex): resolved broken lockfile 2023-05-31 17:37:53 +09:00
NicolasNewman
619ae2fb6d Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-05-31 17:31:32 +09:00
NicolasNewman
0605b85d99 Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-05-31 17:27:42 +09:00
NicolasNewman
077cc653d0 chore(katex): included uncommited files 2023-05-31 16:42:54 +09:00
NicolasNewman
cf54ddc62b chore(katex): lint:fix 2023-05-06 17:46:19 +09:00
NicolasNewman
e7a1d8390c Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-05-06 17:32:15 +09:00
NicolasNewman
4202488da0 feat(katex): added KaTeX support to sequence diagrams 2023-05-06 17:19:31 +09:00
NicolasNewman
f8a4488050 feat(katex): added common functions for aiding in KaTeX rendering 2023-05-06 11:33:23 +09:00
NicolasNewman
e0e038d223 Merge branch 'develop' of https://github.com/NicolasNewman/mermaid to feature/2776_katex_math 2023-04-14 11:02:24 +09:00
NicolasNewman
f4cb6a1927 chore(katex): fixed issues from merge 2023-04-14 10:58:14 +09:00
NicolasNewman
f3b939e03a Merge branch 'develop' of https://github.com/NicolasNewman/mermaid into feature/2776_katex_math 2023-04-13 09:36:48 +09:00
Nicolas Newman
12e1af44fc Merge branch 'mermaid-js:develop' into feature/2776_katex_math 2023-03-03 20:14:17 -06:00
NicolasNewman
7dd21d85ba fix(katex): disabled 4th katex cypress test due to recent changes to error handling in develop 2023-02-23 15:16:23 -06:00
NicolasNewman
fdd900060a chore(katex): lint:fix 2023-02-23 15:15:00 -06:00
NicolasNewman
ebef1c4f6b chore: merged with develop 2023-02-23 14:08:58 -06:00
NicolasNewman
bbc6eb6ee7 chore(katex): lint:fix 2023-02-13 16:02:49 -06:00
NicolasNewman
fb5d80a7a1 fix(katex): removed extra body tag from merge 2023-02-13 15:29:32 -06:00
NicolasNewman
2740edfc2b chore(katex): added katex to cSpell.json 2023-02-13 14:06:09 -06:00
NicolasNewman
4da9c71be9 fix(katex): fixed rendering of KaTeX errors 2023-02-13 14:04:16 -06:00
NicolasNewman
21479b2b28 fix(katex): fixed rendering of KaTeX errors 2023-02-13 14:03:23 -06:00
NicolasNewman
483722fb3d fix(katex): fixed rendering of KaTeX errors 2023-02-13 12:52:22 -06:00
Nicolas Newman
58bc6c7f02 Merge branch 'mermaid-js:develop' into feature/2776_katex_math 2023-02-13 11:34:05 -06:00
NicolasNewman
b243609e87 chore(katex): merged with branch develop 2023-02-13 11:32:31 -06:00
Nicolas Newman
f346056058 chore(katex): removed unused debugging code 2022-04-02 08:13:59 -09:00
Nicolas Newman
f67254cdc7 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into feature/2776_katex_math 2022-04-02 08:09:11 -09:00
Nicolas Newman
cc2c828e78 feat(katex): added cypress testing 2022-04-02 08:00:56 -09:00
Nicolas Newman
825f50299a feat(katex): improved handling of KaTeX errors 2022-03-31 13:01:10 -04:00
Nicolas Newman
1db4230d35 feat(katex): fixed node sizing issues, caused by KaTeX fonts not being loaded 2022-03-29 17:37:35 -04:00
Nicolas Newman
4736e59393 fix(katex): enforce html output for consistency 2022-03-29 17:25:51 -04:00
Nicolas Newman
275f2002b5 chore: added katex demo 2022-02-28 16:23:35 -05:00
Nicolas Newman
c2e8cb75bd chore: added katex rendering to flowcharts v1 & 2 2022-02-28 16:20:17 -05:00
Nicolas Newman
b746747650 chore: added css-loader, sass, sass-loader, style-loader 2022-02-28 16:19:17 -05:00
Nicolas Newman
1e53c121ae chore: added katex as a dependency 2022-02-26 12:51:05 -05:00
344 changed files with 15728 additions and 7730 deletions

30
.build/common.ts Normal file
View File

@@ -0,0 +1,30 @@
/**
* Shared common options for both ESBuild and Vite
*/
export const packageOptions = {
parser: {
name: 'mermaid-parser',
packageName: 'parser',
file: 'index.ts',
},
mermaid: {
name: 'mermaid',
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
'mermaid-zenuml': {
name: 'mermaid-zenuml',
packageName: 'mermaid-zenuml',
file: 'detector.ts',
},
'mermaid-flowchart-elk': {
name: 'mermaid-flowchart-elk',
packageName: 'mermaid-flowchart-elk',
file: 'detector.ts',
},
} as const;

View File

@@ -0,0 +1,5 @@
import { generate } from 'langium-cli';
export async function generateLangium() {
await generate({ file: `./packages/parser/langium-config.json` });
}

124
.build/jsonSchema.ts Normal file
View File

@@ -0,0 +1,124 @@
import { load, JSON_SCHEMA } from 'js-yaml';
import assert from 'node:assert';
import Ajv2019, { type JSONSchemaType } from 'ajv/dist/2019.js';
import type { MermaidConfig, BaseDiagramConfig } from '../packages/mermaid/src/config.type.js';
/**
* All of the keys in the mermaid config that have a mermaid diagram config.
*/
const MERMAID_CONFIG_DIAGRAM_KEYS = [
'flowchart',
'sequence',
'gantt',
'journey',
'class',
'state',
'er',
'pie',
'quadrantChart',
'xyChart',
'requirement',
'mindmap',
'timeline',
'gitGraph',
'c4',
'sankey',
'block',
'packet',
] as const;
/**
* Generate default values from the JSON Schema.
*
* AJV does not support nested default values yet (or default values with $ref),
* so we need to manually find them (this may be fixed in ajv v9).
*
* @param mermaidConfigSchema - The Mermaid JSON Schema to use.
* @returns The default mermaid config object.
*/
function generateDefaults(mermaidConfigSchema: JSONSchemaType<MermaidConfig>) {
const ajv = new Ajv2019({
useDefaults: true,
allowUnionTypes: true,
strict: true,
});
ajv.addKeyword({
keyword: 'meta:enum', // used by jsonschema2md
errors: false,
});
ajv.addKeyword({
keyword: 'tsType', // used by json-schema-to-typescript
errors: false,
});
// ajv currently doesn't support nested default values, see https://github.com/ajv-validator/ajv/issues/1718
// (may be fixed in v9) so we need to manually use sub-schemas
const mermaidDefaultConfig = {};
assert.ok(mermaidConfigSchema.$defs);
const baseDiagramConfig = mermaidConfigSchema.$defs.BaseDiagramConfig;
for (const key of MERMAID_CONFIG_DIAGRAM_KEYS) {
const subSchemaRef = mermaidConfigSchema.properties[key].$ref;
const [root, defs, defName] = subSchemaRef.split('/');
assert.strictEqual(root, '#');
assert.strictEqual(defs, '$defs');
const subSchema = {
$schema: mermaidConfigSchema.$schema,
$defs: mermaidConfigSchema.$defs,
...mermaidConfigSchema.$defs[defName],
} as JSONSchemaType<BaseDiagramConfig>;
const validate = ajv.compile(subSchema);
mermaidDefaultConfig[key] = {};
for (const required of subSchema.required ?? []) {
if (subSchema.properties[required] === undefined && baseDiagramConfig.properties[required]) {
mermaidDefaultConfig[key][required] = baseDiagramConfig.properties[required].default;
}
}
if (!validate(mermaidDefaultConfig[key])) {
throw new Error(
`schema for subconfig ${key} does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
}
const validate = ajv.compile(mermaidConfigSchema);
if (!validate(mermaidDefaultConfig)) {
throw new Error(
`Mermaid config JSON Schema does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
return mermaidDefaultConfig;
}
export const loadSchema = (src: string, filename: string): JSONSchemaType<MermaidConfig> => {
const jsonSchema = load(src, {
filename,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}) as JSONSchemaType<MermaidConfig>;
return jsonSchema;
};
export const getDefaults = (schema: JSONSchemaType<MermaidConfig>) => {
return `export default ${JSON.stringify(generateDefaults(schema), undefined, 2)};`;
};
export const getSchema = (schema: JSONSchemaType<MermaidConfig>) => {
return `export default ${JSON.stringify(schema, undefined, 2)};`;
};

18
.build/types.ts Normal file
View File

@@ -0,0 +1,18 @@
import { packageOptions } from './common.js';
import { execSync } from 'child_process';
const buildType = (packageName: string) => {
console.log(`Building types for ${packageName}`);
try {
const out = execSync(`tsc -p ./packages/${packageName}/tsconfig.json --emitDeclarationOnly`);
out.length > 0 && console.log(out.toString());
} catch (e) {
console.error(e);
e.stdout.length > 0 && console.error(e.stdout.toString());
e.stderr.length > 0 && console.error(e.stderr.toString());
}
};
for (const { packageName } of Object.values(packageOptions)) {
buildType(packageName);
}

141
.cspell/code-terms.txt Normal file
View File

@@ -0,0 +1,141 @@
# This file contains coding related terms
ALPHANUM
antiscript
APPLYCLASS
ARROWHEADSTYLE
ARROWTYPE
autonumber
axisl-line
Bigdecimal
birel
BIREL
bqstring
BQUOTE
bramp
BRKT
callbackargs
callbackname
classdef
classdefid
classentity
classname
COLONSEP
COMPOSIT_STATE
concat
controlx
controly
CSSCLASS
CYLINDEREND
CYLINDERSTART
datakey
DEND
descr
distp
distq
divs
docref
DOMID
doublecircle
DOUBLECIRCLEEND
DOUBLECIRCLESTART
DQUOTE
DSTART
edgesep
EMPTYSTR
enddate
ERDIAGRAM
flatmap
forwardable
frontmatter
funs
gantt
GENERICTYPE
getBoundarys
grammr
graphtype
iife
interp
introdcued
INVTRAPEND
INVTRAPSTART
JDBC
jison
Kaufmann
keyify
LABELPOS
LABELTYPE
lcov
LEFTOF
Lexa
linebreak
LINETYPE
LINKSTYLE
LLABEL
loglevel
LOGMSG
lookaheads
mdast
metafile
minlen
Mstartx
MULT
NODIR
NSTR
outdir
Qcontrolx
reinit
rels
reqs
rewritelinks
rgba
runtimes
RIGHTOF
sankey
sequencenumber
shrc
signaltype
someclass
SPACELINE
SPACELIST
STADIUMEND
STADIUMSTART
startdate
startx
starty
STMNT
stopx
stopy
strikethrough
stringifying
struct
STYLECLASS
STYLEOPTS
subcomponent
subcomponents
SUBROUTINEEND
SUBROUTINESTART
Subschemas
substr
TAGEND
TAGSTART
techn
TESTSTR
TEXTDATA
TEXTLENGTH
titlevalue
topbar
TRAPEND
TRAPSTART
ts-nocheck
tsdoc
typeof
typestr
unshift
verifymethod
VERIFYMTHD
WARN_DOCSDIR_DOESNT_MATCH
xhost
yaxis
yfunc
yytext
zenuml

8
.cspell/contributors.txt Normal file
View File

@@ -0,0 +1,8 @@
# Contributors to mermaidjs, one per line
Ashish Jain
cpettitt
Dong Cai
Nikolay Rozhkov
Peng Xiao
subhash-halder
Vinod Sidharth

View File

@@ -0,0 +1,52 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
dictionaryDefinitions:
- name: code-terms
path: ./code-terms.txt
description: A list of coding related terms.
addWords: true
- name: mermaid-terms
path: ./mermaid-terms.txt
description: A list of terms related to the mermaid project.
addWords: true
- name: misc-terms
path: ./misc-terms.txt
description: A list of miscellaneous terms.
- name: 3rd-party-terms
path: ./libraries.txt
description: A list of 3rd party terms from dependencies.
addWords: true
- name: contributors
path: ./contributors.txt
description: A list of contributors to the mermaid project.
type: 'W'
addWords: true
# cspell:disable
- name: suggestions
words:
- none
suggestWords:
- seperator:separator
- vertice:vertex
# cspell:enable
patterns:
- name: character-set-cyrillic
pattern: '/\p{Script_Extensions=Cyrillic}+/gu'
- name: svg-block
pattern: '<svg[\S\s]+?</svg>'
- name: json-property
pattern: '/"[\w/@-]+":/g'
dictionaries:
- mermaid-terms
- suggestions
- contributors
ignorePaths:
- '*.txt' # do not spell check local dictionaries
# cspell:dictionary misc-terms

71
.cspell/libraries.txt Normal file
View File

@@ -0,0 +1,71 @@
# Add third party library terms below
acyclicer
Antlr
Appli
applitools
Asciidoctor
Astah
automerge
bilkent
bisheng
Blazor
codedoc
Codemia
codepaths
csstree
cytoscape
cytoscape-cose-bilkent
dagre
dagre-d3
Deepdwn
Docsify
Docsy
DokuWiki
dompurify
elkjs
fontawesome
Foswiki
Gitea
graphlib
Grav
iconify
Inkdrop
jiti
jsdocs
jsfiddle
jsonschema
katex
khroma
langium
mathml
matplotlib
mdbook
Mermerd
mkdocs
Nextra
nodenext
npmjs
pageview
pathe
phpbb
pixelmatch
Podlite
presetAttributify
pyplot
redmine
rehype
rscratch
sparkline
sphinxcontrib
ssim
stylis
Swimm
tsbuildinfo
Tuleap
Typora
unocss
unplugin
unstub
vite
vitest
Zune

39
.cspell/mermaid-terms.txt Normal file
View File

@@ -0,0 +1,39 @@
Adamiecki
arrowend
bmatrix
braintree
catmull
compositTitleSize
doublecircle
elems
gantt
gitgraph
gzipped
knsv
Knut
marginx
marginy
Markdownish
mermaidjs
mindmap
mindmaps
multigraph
nodesep
NOTEGROUP
Pinterest
rankdir
ranksep
rect
rects
sandboxed
siebling
statediagram
substate
Sveidqvist
unfixable
Viewbox
viewports
visio
vitepress
xlink
xychart

1
.cspell/misc-terms.txt Normal file
View File

@@ -0,0 +1 @@
newbranch

65
.esbuild/build.ts Normal file
View File

@@ -0,0 +1,65 @@
import { build } from 'esbuild';
import { mkdir, writeFile } from 'node:fs/promises';
import { packageOptions } from '../.build/common.js';
import { generateLangium } from '../.build/generateLangium.js';
import { MermaidBuildOptions, defaultOptions, getBuildConfig } from './util.js';
const shouldVisualize = process.argv.includes('--visualize');
const buildPackage = async (entryName: keyof typeof packageOptions) => {
const commonOptions = { ...defaultOptions, entryName } as const;
const buildConfigs = [
// package.mjs
{ ...commonOptions },
// package.min.mjs
{
...commonOptions,
minify: true,
metafile: shouldVisualize,
},
// package.core.mjs
{ ...commonOptions, core: true },
];
if (entryName === 'mermaid') {
const iifeOptions: MermaidBuildOptions = { ...commonOptions, format: 'iife' };
buildConfigs.push(
// mermaid.js
{ ...iifeOptions },
// mermaid.min.js
{ ...iifeOptions, minify: true, metafile: shouldVisualize }
);
}
const results = await Promise.all(buildConfigs.map((option) => build(getBuildConfig(option))));
if (shouldVisualize) {
for (const { metafile } of results) {
if (!metafile) {
continue;
}
const fileName = Object.keys(metafile.outputs)
.filter((file) => !file.includes('chunks') && file.endsWith('js'))[0]
.replace('dist/', '');
// Upload metafile into https://esbuild.github.io/analyze/
await writeFile(`stats/${fileName}.meta.json`, JSON.stringify(metafile));
}
}
};
const handler = (e) => {
console.error(e);
process.exit(1);
};
const main = async () => {
await generateLangium();
await mkdir('stats').catch(() => {});
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
// it should build `parser` before `mermaid` because it's a dependency
for (const pkg of packageNames) {
await buildPackage(pkg).catch(handler);
}
};
void main();

15
.esbuild/jisonPlugin.ts Normal file
View File

@@ -0,0 +1,15 @@
import { readFile } from 'node:fs/promises';
import { transformJison } from '../.build/jisonTransformer.js';
import { Plugin } from 'esbuild';
export const jisonPlugin: Plugin = {
name: 'jison',
setup(build) {
build.onLoad({ filter: /\.jison$/ }, async (args) => {
// Load the file from the file system
const source = await readFile(args.path, 'utf8');
const contents = transformJison(source);
return { contents, warnings: [] };
});
},
};

View File

@@ -0,0 +1,35 @@
import type { JSONSchemaType } from 'ajv/dist/2019.js';
import type { MermaidConfig } from '../packages/mermaid/src/config.type.js';
import { readFile } from 'node:fs/promises';
import { getDefaults, getSchema, loadSchema } from '../.build/jsonSchema.js';
/**
* ESBuild plugin that handles JSON Schemas saved as a `.schema.yaml` file.
*
* Use `my-example.schema.yaml?only-defaults=true` to only load the default values.
*/
export const jsonSchemaPlugin = {
name: 'json-schema-plugin',
setup(build) {
let schema: JSONSchemaType<MermaidConfig> | undefined = undefined;
let content = '';
build.onLoad({ filter: /config\.schema\.yaml$/ }, async (args) => {
// Load the file from the file system
const source = await readFile(args.path, 'utf8');
const resolvedSchema: JSONSchemaType<MermaidConfig> =
content === source && schema ? schema : loadSchema(source, args.path);
if (content !== source) {
content = source;
schema = resolvedSchema;
}
const contents = args.suffix.includes('only-defaults')
? getDefaults(resolvedSchema)
: getSchema(resolvedSchema);
return { contents, warnings: [] };
});
},
};
export default jsonSchemaPlugin;

102
.esbuild/server.ts Normal file
View File

@@ -0,0 +1,102 @@
import express from 'express';
import type { NextFunction, Request, Response } from 'express';
import cors from 'cors';
import { getBuildConfig, defaultOptions } from './util.js';
import { context } from 'esbuild';
import chokidar from 'chokidar';
import { generateLangium } from '../.build/generateLangium.js';
import { packageOptions } from '../.build/common.js';
const configs = Object.values(packageOptions).map(({ packageName }) =>
getBuildConfig({ ...defaultOptions, minify: false, core: false, entryName: packageName })
);
const mermaidIIFEConfig = getBuildConfig({
...defaultOptions,
minify: false,
core: false,
entryName: 'mermaid',
format: 'iife',
});
configs.push(mermaidIIFEConfig);
const contexts = await Promise.all(configs.map((config) => context(config)));
const rebuildAll = async () => {
console.time('Rebuild time');
await Promise.all(contexts.map((ctx) => ctx.rebuild())).catch((e) => console.error(e));
console.timeEnd('Rebuild time');
};
let clients: { id: number; response: Response }[] = [];
function eventsHandler(request: Request, response: Response, next: NextFunction) {
const headers = {
'Content-Type': 'text/event-stream',
Connection: 'keep-alive',
'Cache-Control': 'no-cache',
};
response.writeHead(200, headers);
const clientId = Date.now();
clients.push({
id: clientId,
response,
});
request.on('close', () => {
clients = clients.filter((client) => client.id !== clientId);
});
}
let timeoutId: NodeJS.Timeout | undefined = undefined;
/**
* Debounce file change events to avoid rebuilding multiple times.
*/
function handleFileChange() {
if (timeoutId !== undefined) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(async () => {
await rebuildAll();
sendEventsToAll();
timeoutId = undefined;
}, 100);
}
function sendEventsToAll() {
clients.forEach(({ response }) => response.write(`data: ${Date.now()}\n\n`));
}
async function createServer() {
await generateLangium();
handleFileChange();
const app = express();
chokidar
.watch('**/src/**/*.{js,ts,langium,yaml,json}', {
ignoreInitial: true,
ignored: [/node_modules/, /dist/, /docs/, /coverage/],
})
.on('all', async (event, path) => {
// Ignore other events.
if (!['add', 'change'].includes(event)) {
return;
}
if (/\.langium$/.test(path)) {
await generateLangium();
}
console.log(`${path} changed. Rebuilding...`);
handleFileChange();
});
app.use(cors());
app.get('/events', eventsHandler);
for (const { packageName } of Object.values(packageOptions)) {
app.use(express.static(`./packages/${packageName}/dist`));
}
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));
app.listen(9000, () => {
console.log(`Listening on http://localhost:9000`);
});
}
createServer();

101
.esbuild/util.ts Normal file
View File

@@ -0,0 +1,101 @@
import { resolve } from 'path';
import { fileURLToPath } from 'url';
import type { BuildOptions } from 'esbuild';
import { readFileSync } from 'fs';
import jsonSchemaPlugin from './jsonSchemaPlugin.js';
import { packageOptions } from '../.build/common.js';
import { jisonPlugin } from './jisonPlugin.js';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
export interface MermaidBuildOptions {
minify: boolean;
core: boolean;
metafile: boolean;
format: 'esm' | 'iife';
entryName: keyof typeof packageOptions;
}
export const defaultOptions: Omit<MermaidBuildOptions, 'entryName'> = {
minify: false,
metafile: false,
core: false,
format: 'esm',
} as const;
const buildOptions = (override: BuildOptions): BuildOptions => {
return {
bundle: true,
minify: true,
keepNames: true,
platform: 'browser',
tsconfig: 'tsconfig.json',
resolveExtensions: ['.ts', '.js', '.json', '.jison', '.yaml'],
external: ['require', 'fs', 'path'],
outdir: 'dist',
plugins: [jisonPlugin, jsonSchemaPlugin],
sourcemap: 'external',
...override,
};
};
const getFileName = (fileName: string, { core, format, minify }: MermaidBuildOptions) => {
if (core) {
fileName += '.core';
} else if (format === 'esm') {
fileName += '.esm';
}
if (minify) {
fileName += '.min';
}
return fileName;
};
export const getBuildConfig = (options: MermaidBuildOptions): BuildOptions => {
const { core, entryName, metafile, format, minify } = options;
const external: string[] = ['require', 'fs', 'path'];
const { name, file, packageName } = packageOptions[entryName];
const outFileName = getFileName(name, options);
let output: BuildOptions = buildOptions({
absWorkingDir: resolve(__dirname, `../packages/${packageName}`),
entryPoints: {
[outFileName]: `src/${file}`,
},
metafile,
minify,
logLevel: 'info',
chunkNames: `chunks/${outFileName}/[name]-[hash]`,
define: {
'import.meta.vitest': 'undefined',
},
});
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.
// Ignore dependencies and any dependencies of dependencies
external.push(...Object.keys(dependencies));
output.external = external;
}
if (format === 'iife') {
output.format = 'iife';
output.splitting = false;
output.globalName = '__esbuild_esm_mermaid';
// Workaround for removing the .default access in esbuild IIFE.
// https://github.com/mermaid-js/mermaid/pull/4109#discussion_r1292317396
output.footer = {
js: 'globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default;',
};
output.outExtension = { '.js': '.js' };
} else {
output.format = 'esm';
output.splitting = true;
output.outExtension = { '.js': '.mjs' };
}
return output;
};

View File

@@ -6,3 +6,6 @@ cypress/plugins/index.js
coverage
*.json
node_modules
# autogenereated by langium-cli
generated/

View File

@@ -63,13 +63,24 @@ module.exports = {
minimumDescriptionLength: 10,
},
],
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'typeLike',
format: ['PascalCase'],
custom: {
regex: '^I[A-Z]',
match: false,
},
},
],
'json/*': ['error', 'allowComments'],
'@cspell/spellchecker': [
'error',
{
checkIdentifiers: false,
checkStrings: false,
checkStringTemplates: false,
checkIdentifiers: true,
checkStrings: true,
checkStringTemplates: true,
},
],
'no-empty': [
@@ -148,6 +159,19 @@ module.exports = {
'@typescript-eslint/no-unused-vars': 'off',
},
},
{
files: ['*.spec.{ts,js}', 'tests/**', 'cypress/**/*.js'],
rules: {
'@cspell/spellchecker': [
'error',
{
checkIdentifiers: false,
checkStrings: false,
checkStringTemplates: false,
},
],
},
},
{
files: ['*.html', '*.md', '**/*.md/*'],
rules: {

View File

@@ -3,9 +3,9 @@ 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: Slack
url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE
about: Join our Community on Slack for Help and a casual chat.
- name: Discord
url: https://discord.gg/AgrbSrBer3
about: Join our Community on Discord for Help and a casual chat.
- name: Documentation
url: https://mermaid.js.org
about: Read our documentation for all that Mermaid.js can offer.

View File

@@ -15,3 +15,4 @@ coverage:
# Turing off for now as code coverage isn't stable and causes unnecessary build failures.
# default:
# threshold: 2%
patch: off

10
.github/lychee.toml vendored
View File

@@ -34,8 +34,14 @@ exclude = [
# Don't check files that are generated during the build via `pnpm docs:code`
'packages/mermaid/src/docs/config/setup/*',
# Ignore slack invite
"https://join.slack.com/"
# Ignore Discord invite
"https://discord.gg",
# BundlePhobia has frequent downtime
"https://bundlephobia.com",
# Chrome webstore redirect issue
"https://chromewebstore.google.com"
]
# Exclude all private IPs from checking.

View File

@@ -12,7 +12,7 @@ Describe the way your implementation works or what design decisions you made if
Make sure you
- [ ] :book: have read the [contribution guidelines](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
- [ ] :book: have read the [contribution guidelines](https://mermaid.js.org/community/contributing.html)
- [ ] :computer: have added necessary unit/e2e tests.
- [ ] :notebook: have added documentation. Make sure [`MERMAID_RELEASE_VERSION`](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/community/contributing.md#update-documentation) is used for all new features.
- [ ] :notebook: have added documentation. Make sure [`MERMAID_RELEASE_VERSION`](https://mermaid.js.org/community/contributing.html#update-documentation) is used for all new features.
- [ ] :bookmark: targeted `develop` branch

View File

@@ -24,7 +24,7 @@ jobs:
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 18
node-version-file: '.node-version'
- name: Install Packages
run: pnpm install --frozen-lockfile

View File

@@ -15,20 +15,17 @@ permissions:
jobs:
build-mermaid:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
- name: Install Packages
run: |

View File

@@ -21,9 +21,9 @@ env:
jobs:
e2e-applitools:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
container:
image: cypress/browsers:node-20.11.0-chrome-121.0.6167.85-1-ff-120.0-edge-121.0.2277.83-1
options: --user 1001
steps:
- if: ${{ ! env.USE_APPLI }}
name: Warn if not using Applitools
@@ -35,10 +35,10 @@ jobs:
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
- if: ${{ env.USE_APPLI }}
name: Notify applitools of new batch

View File

@@ -15,22 +15,25 @@ on:
permissions:
contents: read
pull-requests: write
env:
# For PRs and MergeQueues, the target commit is used, and for push events, github.event.previous is used.
targetHash: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || github.event.before }}
targetHash: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || (github.event.before == '0000000000000000000000000000000000000000' && 'develop' || github.event.before) }}
jobs:
cache:
runs-on: ubuntu-latest
container:
image: cypress/browsers:node-20.11.0-chrome-121.0.6167.85-1-ff-120.0-edge-121.0.2277.83-1
options: --user 1001
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
node-version-file: '.node-version'
- name: Cache snapshots
id: cache-snapshot
uses: actions/cache@v4
@@ -46,22 +49,44 @@ jobs:
with:
ref: ${{ env.targetHash }}
- name: Install dependencies
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' }}
uses: cypress-io/github-action@v6
with:
# just perform install
runTests: false
- name: Build
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' && github.event_name == 'pull_request' }}
run: |
pnpm run build:viz
mkdir -p cypress/snapshots/stats/base
mv stats cypress/snapshots/stats/base
- name: Cypress run
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
id: cypress-snapshot-gen
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' }}
with:
install: false
start: pnpm run dev
wait-on: 'http://localhost:9000'
browser: chrome
- name: Move runtime data
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' }}
run: |
mv cypress/snapshots/runtimes/current cypress/snapshots/runtimes/base
e2e:
runs-on: ubuntu-latest
container:
image: cypress/browsers:node-20.11.0-chrome-121.0.6167.85-1-ff-120.0-edge-121.0.2277.83-1
options: --user 1001
needs: cache
strategy:
fail-fast: false
matrix:
node-version: [18.x]
containers: [1, 2, 3, 4]
steps:
- uses: actions/checkout@v4
@@ -69,10 +94,10 @@ jobs:
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
# These cached snapshots are downloaded, providing the reference snapshots.
- name: Cache snapshots
@@ -82,15 +107,42 @@ jobs:
path: ./cypress/snapshots
key: ${{ runner.os }}-snapshots-${{ env.targetHash }}
- name: Install dependencies
uses: cypress-io/github-action@v6
with:
runTests: false
- name: Build
id: size
if: ${{ github.event_name == 'pull_request' && matrix.containers == 1 }}
run: |
pnpm run build:viz
mv stats cypress/snapshots/stats/head
{
echo 'size_diff<<EOF'
npx tsx scripts/size.ts
echo EOF
} >> "$GITHUB_OUTPUT"
# Size diff only needs to be posted from one job, on PRs.
- name: Comment PR size difference
if: ${{ github.event_name == 'pull_request' && matrix.containers == 1 }}
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ steps.size.outputs.size_diff }}
comment_tag: size-diff
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
id: cypress
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
install: false
start: pnpm run dev:coverage
wait-on: 'http://localhost:9000'
browser: chrome
@@ -129,6 +181,16 @@ jobs:
runs-on: ubuntu-latest
if: ${{ always() }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
# Download all snapshot artifacts and merge them into a single folder
- name: Download All Artifacts
uses: actions/download-artifact@v4
@@ -137,6 +199,27 @@ jobs:
pattern: snapshots-*
merge-multiple: true
- name: Build
id: runtime
if: ${{ needs.e2e.result != 'failure' && github.event_name == 'pull_request' }}
run: |
mv ./snapshots/runtimes/current ./snapshots/runtimes/head
npm config set ignore-scripts true
pnpm install --frozen-lockfile
{
echo 'runtime_diff<<EOF'
npx tsx scripts/runTime.ts ./snapshots
echo EOF
} >> "$GITHUB_OUTPUT"
- name: Comment PR runtime difference
if: ${{ github.event_name == 'pull_request' }}
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ steps.runtime.outputs.runtime_diff }}
comment_tag: size-diff
# For successful push events, we save the snapshots cache
- name: Save snapshots cache
id: cache-upload

View File

@@ -36,7 +36,7 @@ jobs:
restore-keys: cache-lychee-
- name: Link Checker
uses: lycheeverse/lychee-action@v1.9.1
uses: lycheeverse/lychee-action@v1.9.3
with:
args: >-
--config .github/lychee.toml

View File

@@ -16,20 +16,17 @@ permissions:
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
- name: Install Packages
run: |

View File

@@ -31,7 +31,7 @@ jobs:
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 18
node-version-file: '.node-version'
- name: Install Packages
run: pnpm install --frozen-lockfile

View File

@@ -19,7 +19,7 @@ jobs:
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 18.x
node-version-file: '.node-version'
- name: Install Packages
run: |

View File

@@ -14,11 +14,11 @@ jobs:
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js v18
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 18.x
node-version-file: '.node-version'
- name: Install Packages
run: |

View File

@@ -8,20 +8,17 @@ permissions:
jobs:
unit-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
- name: Install Packages
run: |

5
.gitignore vendored
View File

@@ -29,6 +29,7 @@ Gemfile.lock
cypress/screenshots/
cypress/snapshots/
cypress/runtimes/
# eslint --cache file
.eslintcache
@@ -46,4 +47,8 @@ stats/
demos/dev/**
!/demos/dev/example.html
!/demos/dev/reload.js
tsx-0/**
# autogenereated by langium-cli
generated/

View File

@@ -6,6 +6,6 @@ export default {
// https://prettier.io/docs/en/cli.html#--cache
'prettier --write',
],
'cSpell.json': ['tsx scripts/fixCSpell.ts'],
'.cspell/*.txt': ['tsx scripts/fixCSpell.ts'],
'**/*.jison': ['pnpm -w run lint:jison'],
};

1
.node-version Normal file
View File

@@ -0,0 +1 @@
v20.11.1

1
.npmrc
View File

@@ -1,3 +1,4 @@
registry=https://registry.npmjs.org
auto-install-peers=true
strict-peer-dependencies=false
package-import-method=clone-or-copy

View File

@@ -1,6 +1,7 @@
dist
cypress/platform/xss3.html
.cache
.pnpm-store
coverage
# Autogenerated by PNPM
pnpm-lock.yaml
@@ -10,6 +11,8 @@ stats
.nyc_output
# Autogenerated by `pnpm run --filter mermaid types:build-config`
packages/mermaid/src/config.type.ts
# autogenereated by langium-cli
generated/
# Ignore the files creates in /demos/dev except for example.html
demos/dev/**
!/demos/dev/example.html
!/demos/dev/example.html

View File

@@ -3,11 +3,12 @@ import { resolve } from 'path';
import { fileURLToPath } from 'url';
import jisonPlugin from './jisonPlugin.js';
import jsonSchemaPlugin from './jsonSchemaPlugin.js';
import { readFileSync } from 'fs';
import typescript from '@rollup/plugin-typescript';
import { visualizer } from 'rollup-plugin-visualizer';
import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js';
import istanbul from 'vite-plugin-istanbul';
import { packageOptions } from '../.build/common.js';
import { generateLangium } from '../.build/generateLangium.js';
const visualize = process.argv.includes('--visualize');
const watch = process.argv.includes('--watch');
@@ -36,24 +37,6 @@ const visualizerOptions = (packageName: string, core = false): PluginOption[] =>
);
};
const packageOptions = {
mermaid: {
name: 'mermaid',
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
'mermaid-zenuml': {
name: 'mermaid-zenuml',
packageName: 'mermaid-zenuml',
file: 'detector.ts',
},
};
interface BuildOptions {
minify: boolean | 'esbuild';
core?: boolean;
@@ -72,34 +55,8 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
sourcemap,
entryFileNames: `${name}.esm${minify ? '.min' : ''}.mjs`,
},
{
name,
format: 'umd',
sourcemap,
entryFileNames: `${name}${minify ? '.min' : ''}.js`,
},
];
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.
// 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 = [
{
name,
format: 'esm',
sourcemap,
entryFileNames: `${name}.core.mjs`,
},
];
}
const config: InlineConfig = {
configFile: false,
build: {
@@ -129,7 +86,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
typescript({ compilerOptions: { declaration: false } }),
istanbul({
exclude: ['node_modules', 'test/', '__mocks__'],
exclude: ['node_modules', 'test/', '__mocks__', 'generated'],
extension: ['.js', '.ts'],
requireEnv: true,
forceBuildInstrument: coverage,
@@ -149,24 +106,28 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
const buildPackage = async (entryName: keyof typeof packageOptions) => {
await build(getBuildConfig({ minify: false, entryName }));
await build(getBuildConfig({ minify: 'esbuild', entryName }));
await build(getBuildConfig({ minify: false, core: true, entryName }));
};
const main = async () => {
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
for (const pkg of packageNames.filter((pkg) => !mermaidOnly || pkg === 'mermaid')) {
for (const pkg of packageNames.filter(
(pkg) => !mermaidOnly || pkg === 'mermaid' || pkg === 'parser'
)) {
await buildPackage(pkg);
}
};
await generateLangium();
if (watch) {
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
if (!mermaidOnly) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' }));
}
} else if (visualize) {
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' }));
await build(getBuildConfig({ minify: false, core: false, entryName: 'mermaid' }));
} else {

View File

@@ -1,10 +1,10 @@
import { transformJison } from './jisonTransformer.js';
import { transformJison } from '../.build/jisonTransformer.js';
const fileRegex = /\.(jison)$/;
export default function jison() {
return {
name: 'jison',
transform(src: string, id: string) {
if (fileRegex.test(id)) {
return {

View File

@@ -1,109 +1,5 @@
import { load, JSON_SCHEMA } from 'js-yaml';
import assert from 'node:assert';
import Ajv2019, { type JSONSchemaType } from 'ajv/dist/2019.js';
import { PluginOption } from 'vite';
import type { MermaidConfig, BaseDiagramConfig } from '../packages/mermaid/src/config.type.js';
/**
* All of the keys in the mermaid config that have a mermaid diagram config.
*/
const MERMAID_CONFIG_DIAGRAM_KEYS = [
'flowchart',
'sequence',
'gantt',
'journey',
'class',
'state',
'er',
'pie',
'quadrantChart',
'xyChart',
'requirement',
'mindmap',
'timeline',
'gitGraph',
'c4',
'sankey',
] as const;
/**
* Generate default values from the JSON Schema.
*
* AJV does not support nested default values yet (or default values with $ref),
* so we need to manually find them (this may be fixed in ajv v9).
*
* @param mermaidConfigSchema - The Mermaid JSON Schema to use.
* @returns The default mermaid config object.
*/
function generateDefaults(mermaidConfigSchema: JSONSchemaType<MermaidConfig>) {
const ajv = new Ajv2019({
useDefaults: true,
allowUnionTypes: true,
strict: true,
});
ajv.addKeyword({
keyword: 'meta:enum', // used by jsonschema2md
errors: false,
});
ajv.addKeyword({
keyword: 'tsType', // used by json-schema-to-typescript
errors: false,
});
// ajv currently doesn't support nested default values, see https://github.com/ajv-validator/ajv/issues/1718
// (may be fixed in v9) so we need to manually use sub-schemas
const mermaidDefaultConfig = {};
assert.ok(mermaidConfigSchema.$defs);
const baseDiagramConfig = mermaidConfigSchema.$defs.BaseDiagramConfig;
for (const key of MERMAID_CONFIG_DIAGRAM_KEYS) {
const subSchemaRef = mermaidConfigSchema.properties[key].$ref;
const [root, defs, defName] = subSchemaRef.split('/');
assert.strictEqual(root, '#');
assert.strictEqual(defs, '$defs');
const subSchema = {
$schema: mermaidConfigSchema.$schema,
$defs: mermaidConfigSchema.$defs,
...mermaidConfigSchema.$defs[defName],
} as JSONSchemaType<BaseDiagramConfig>;
const validate = ajv.compile(subSchema);
mermaidDefaultConfig[key] = {};
for (const required of subSchema.required ?? []) {
if (subSchema.properties[required] === undefined && baseDiagramConfig.properties[required]) {
mermaidDefaultConfig[key][required] = baseDiagramConfig.properties[required].default;
}
}
if (!validate(mermaidDefaultConfig[key])) {
throw new Error(
`schema for subconfig ${key} does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
}
const validate = ajv.compile(mermaidConfigSchema);
if (!validate(mermaidDefaultConfig)) {
throw new Error(
`Mermaid config JSON Schema does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
return mermaidDefaultConfig;
}
import { getDefaults, getSchema, loadSchema } from '../.build/jsonSchema.js';
/**
* Vite plugin that handles JSON Schemas saved as a `.schema.yaml` file.
@@ -120,32 +16,13 @@ export default function jsonSchemaPlugin(): PluginOption {
return;
}
if (idAsUrl.searchParams.get('only-defaults')) {
const jsonSchema = load(src, {
filename: idAsUrl.pathname,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}) as JSONSchemaType<MermaidConfig>;
return {
code: `export default ${JSON.stringify(generateDefaults(jsonSchema), undefined, 2)};`,
map: null, // no source map
};
} else {
return {
code: `export default ${JSON.stringify(
load(src, {
filename: idAsUrl.pathname,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}),
undefined,
2
)};`,
map: null, // provide source map if available
};
}
const jsonSchema = loadSchema(src, idAsUrl.pathname);
return {
code: idAsUrl.searchParams.get('only-defaults')
? getDefaults(jsonSchema)
: getSchema(jsonSchema),
map: null, // no source map
};
},
};
}

View File

@@ -1,6 +1,7 @@
import express from 'express';
import cors from 'cors';
import { createServer as createViteServer } from 'vite';
import { packageOptions } from '../.build/common.js';
async function createServer() {
const app = express();
@@ -14,9 +15,9 @@ async function createServer() {
});
app.use(cors());
app.use(express.static('./packages/mermaid/dist'));
app.use(express.static('./packages/mermaid-zenuml/dist'));
app.use(express.static('./packages/mermaid-example-diagram/dist'));
for (const { packageName } of Object.values(packageOptions)) {
app.use(express.static(`./packages/${packageName}/dist`));
}
app.use(vite.middlewares);
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));

View File

@@ -2,7 +2,7 @@
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"zixuanchen.vitest-explorer",
"vitest.explorer",
"luniclynx.bison"
]
}

View File

@@ -1,2 +1,2 @@
FROM node:18.19.0-alpine3.18 AS base
FROM node:20.11.1-alpine3.19 AS base
RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.shrc" SHELL="$(which sh)" sh -

View File

@@ -15,7 +15,7 @@ Generate diagrams from markdown-like text.
<a href="https://mermaid.live/"><b>Live Editor!</b></a>
</p>
<p align="center">
<a href="https://mermaid.js.org">📖 Documentation</a> | <a href="https://mermaid.js.org/intro/">🚀 Getting Started</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE" title="Slack invite">🙌 Join Us</a>
<a href="https://mermaid.js.org">📖 Documentation</a> | <a href="https://mermaid.js.org/intro/">🚀 Getting Started</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://discord.gg/AgrbSrBer3" title="Discord invite">🙌 Join Us</a>
</p>
<p align="center">
<a href="./README.zh-CN.md">简体中文</a>
@@ -33,7 +33,7 @@ Try Live Editor previews of future releases: <a href="https://develop.git.mermai
[![Coverage Status](https://codecov.io/github/mermaid-js/mermaid/branch/develop/graph/badge.svg)](https://app.codecov.io/github/mermaid-js/mermaid/tree/develop)
[![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid)
[![NPM Downloads](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)
[![Join our Discord!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=discord&label=discord)](https://discord.gg/AgrbSrBer3)
[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=X)](https://twitter.com/mermaidjs_)
<img src="./img/header.png" alt="" />
@@ -42,7 +42,7 @@ Try Live Editor previews of future releases: <a href="https://develop.git.mermai
**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/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>
<a href="https://mermaid.js.org/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>
## Table of content
@@ -53,7 +53,7 @@ Try Live Editor previews of future releases: <a href="https://develop.git.mermai
- [Examples](#examples)
- [Release](#release)
- [Related projects](#related-projects)
- [Contributors](#contributors)
- [Contributors](#contributors---)
- [Security and safe diagrams](#security-and-safe-diagrams)
- [Reporting vulnerabilities](#reporting-vulnerabilities)
- [Appreciation](#appreciation)
@@ -74,12 +74,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/>
For video tutorials, visit our [Tutorials](./docs/ecosystem/tutorials.md) page.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations-community.md).
For video tutorials, visit our [Tutorials](https://mermaid.js.org/ecosystem/tutorials.html) page.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](https://mermaid.js.org/ecosystem/integrations-community.html).
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/ecosystem/integrations-community.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](https://mermaid.js.org/ecosystem/integrations-community.html).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/intro/getting-started.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/ecosystem/tutorials.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](https://mermaid.js.org/intro/getting-started.html), [Usage](https://mermaid.js.org/config/usage.html) and [Tutorials](https://mermaid.js.org/ecosystem/tutorials.html).
In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests.
@@ -91,11 +91,11 @@ In our release process we rely heavily on visual regression tests using [applito
## Examples
**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).**
**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid.js.org/intro/syntax-reference.html).**
<!-- <Flowchart> -->
### Flowchart [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">docs</a> - <a href="https://mermaid.live/edit#pako:eNpNkMtqwzAQRX9FzKqFJK7t1km8KDQP6KJQSLOLvZhIY1tgS0GWmgbb_165IaFaiXvOFTPqgGtBkEJR6zOv0Fj2scsU8-ft8I5G5Gw6fe339GN7tnrYaafE45WvRsLW3Ya4bKVWwzVe_xU-FfVsc9hR62rLwvw_2591z7Y3FuUwgYZMg1L4ObrRzMBW1FAGqb8KKtCLGWRq8Ko7CbS0FdJqA2mBdUsTQGf110VxSK1xdJM2EkuDzd2qNQrypQ7s5TQuXcrW-ie5VoUsx9yZ2seVtac2DYIRz0ppK3eccd0ErRTjD1XfyyRIomSBUUzJPMaXOBb8GC4XRfQcFmL-FEYIwzD8AggvcHE">live editor</a>]
### Flowchart [<a href="https://mermaid.js.org/syntax/flowchart.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNpNkMtqwzAQRX9FzKqFJK7t1km8KDQP6KJQSLOLvZhIY1tgS0GWmgbb_165IaFaiXvOFTPqgGtBkEJR6zOv0Fj2scsU8-ft8I5G5Gw6fe339GN7tnrYaafE45WvRsLW3Ya4bKVWwzVe_xU-FfVsc9hR62rLwvw_2591z7Y3FuUwgYZMg1L4ObrRzMBW1FAGqb8KKtCLGWRq8Ko7CbS0FdJqA2mBdUsTQGf110VxSK1xdJM2EkuDzd2qNQrypQ7s5TQuXcrW-ie5VoUsx9yZ2seVtac2DYIRz0ppK3eccd0ErRTjD1XfyyRIomSBUUzJPMaXOBb8GC4XRfQcFmL-FEYIwzD8AggvcHE">live editor</a>]
```
flowchart LR
@@ -115,12 +115,12 @@ C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
### Sequence diagram [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNo9kMluwjAQhl_F-AykQMuSA1WrbuLQQ3v1ZbAnsVXHkzrjVhHi3etQwKfRv4w-z0FqMihL2eF3wqDxyUEdoVHhwTuNk-12RzaU4g29JzHMY2HpV0BE0VO6V8ETtdkGz1Zb1F8qiPyG5LX84mrLAmpwoWNh-5a0pWCiAxUwGBXeiVHEU4oq8V_6AHYUwAu2lLLTjVQ4bc1rT2yleI0IfJG320faZ9ABbk-Jz3hZnFxBduR9L2oiM5Jj2WBswJn8-cMArSRbbFDJMo8GK0ielVThmKOpNcD4bBxTlGUFvsOxhMT02QctS44JL6HzAS-iJzCYOwfJfTscunYd542aQuXqQU_RZ9kyt11ZFIM9rR3btJ9qaorOGQuR7c9mWSznyzXMF7hcLeBusTB6P9usq_ntrDKrm9kc5PF4_AMJE56Z">live editor</a>]
### Sequence diagram [<a href="https://mermaid.js.org/syntax/sequenceDiagram.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNo9kMluwjAQhl_F-AykQMuSA1WrbuLQQ3v1ZbAnsVXHkzrjVhHi3etQwKfRv4w-z0FqMihL2eF3wqDxyUEdoVHhwTuNk-12RzaU4g29JzHMY2HpV0BE0VO6V8ETtdkGz1Zb1F8qiPyG5LX84mrLAmpwoWNh-5a0pWCiAxUwGBXeiVHEU4oq8V_6AHYUwAu2lLLTjVQ4bc1rT2yleI0IfJG320faZ9ABbk-Jz3hZnFxBduR9L2oiM5Jj2WBswJn8-cMArSRbbFDJMo8GK0ielVThmKOpNcD4bBxTlGUFvsOxhMT02QctS44JL6HzAS-iJzCYOwfJfTscunYd542aQuXqQU_RZ9kyt11ZFIM9rR3btJ9qaorOGQuR7c9mWSznyzXMF7hcLeBusTB6P9usq_ntrDKrm9kc5PF4_AMJE56Z">live editor</a>]
```
sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
@@ -132,7 +132,7 @@ Bob-->>John: Jolly good!
```mermaid
sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
@@ -141,7 +141,7 @@ John->>Bob: How about you?
Bob-->>John: Jolly good!
```
### Gantt chart [<a href="https://mermaid-js.github.io/mermaid/#/gantt">docs</a> - <a href="https://mermaid.live/edit#pako:eNp90cGOgyAQBuBXIZxtFbG29bbZ3fsmvXKZylhJEAyOTZrGd1_sto3xsHMBhu-HBO689hp5xS_giJQbsCbjHTv9jcp9-q63SKhZpb3DhMXSOIiE5ZkoNpnYZGXynh6U-4jBK7JnVfBYJo9QvgjtEya1cj8QwFq0TMz4lZqxTBg0hOF5m1jifI2Lf7Bc490CyxUu1rhc4GLGPOEdhg6Mjq92V44xxanFDhWv4lRjA6MlxZWbIh17DYTf2pAPvGrADphwGMmfbq7mFYURX-jLwCVA91bWg8YYunO69Y8vMgPFI2vvGnOZ-2Owsd0S9UOVpvP29mKoHc_b2nfpYHQLgdrrsUzLvDxALrHcS9hJqeuzOB6avBCN3mciBz5N0y_wxZ0J">live editor</a>]
### Gantt chart [<a href="https://mermaid.js.org/syntax/gantt.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNp90cGOgyAQBuBXIZxtFbG29bbZ3fsmvXKZylhJEAyOTZrGd1_sto3xsHMBhu-HBO689hp5xS_giJQbsCbjHTv9jcp9-q63SKhZpb3DhMXSOIiE5ZkoNpnYZGXynh6U-4jBK7JnVfBYJo9QvgjtEya1cj8QwFq0TMz4lZqxTBg0hOF5m1jifI2Lf7Bc490CyxUu1rhc4GLGPOEdhg6Mjq92V44xxanFDhWv4lRjA6MlxZWbIh17DYTf2pAPvGrADphwGMmfbq7mFYURX-jLwCVA91bWg8YYunO69Y8vMgPFI2vvGnOZ-2Owsd0S9UOVpvP29mKoHc_b2nfpYHQLgdrrsUzLvDxALrHcS9hJqeuzOB6avBCN3mciBz5N0y_wxZ0J">live editor</a>]
```
gantt
@@ -165,7 +165,7 @@ gantt
Parallel 4 : des6, after des4, 1d
```
### Class diagram [<a href="https://mermaid-js.github.io/mermaid/#/classDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkTFPwzAQhf-K5QlQ2zQJJG1UBaGWDYmBgYEwXO1LYuTEwXYqlZL_jt02asXm--690zvfgTLFkWaUSTBmI6DS0BTt2lfzkKx-p1PytEO9f1FtdaQkI2ulZNGuVqK1qEtgmOfk7BitSzKdOhg59XuNGgk0RDxed-_IOr6uf8cZ6UhTZ8bvHqS5ub1mr9svZPbjk6DEBlu7AQuXyBkx4gcvDk9cUMJq0XT_YaW0kNK5j-ufAoRzcihaQvLcoN4Jv50vvVxw_xrnD3RCG9QNCO4-8OgpqK1dpoJm7smxhF7agp6kfcfB4jMXVmmalW4tnFDorXrbt4xmVvc4is53GKFUwNF5DtTuO3-sShjrJjLVlqLyvNfS4drazmRB4NuzSti6386YagIjeA3a1rtlEiRRsoAoxiSN4SGOOduGy0UZ3YclT-dhBHQYhj8dc6_I">live editor</a>]
### Class diagram [<a href="https://mermaid.js.org/syntax/classDiagram.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkTFPwzAQhf-K5QlQ2zQJJG1UBaGWDYmBgYEwXO1LYuTEwXYqlZL_jt02asXm--690zvfgTLFkWaUSTBmI6DS0BTt2lfzkKx-p1PytEO9f1FtdaQkI2ulZNGuVqK1qEtgmOfk7BitSzKdOhg59XuNGgk0RDxed-_IOr6uf8cZ6UhTZ8bvHqS5ub1mr9svZPbjk6DEBlu7AQuXyBkx4gcvDk9cUMJq0XT_YaW0kNK5j-ufAoRzcihaQvLcoN4Jv50vvVxw_xrnD3RCG9QNCO4-8OgpqK1dpoJm7smxhF7agp6kfcfB4jMXVmmalW4tnFDorXrbt4xmVvc4is53GKFUwNF5DtTuO3-sShjrJjLVlqLyvNfS4drazmRB4NuzSti6386YagIjeA3a1rtlEiRRsoAoxiSN4SGOOduGy0UZ3YclT-dhBHQYhj8dc6_I">live editor</a>]
```
classDiagram
@@ -207,7 +207,7 @@ class Class10 {
```
### State diagram [<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkEFvgzAMhf8K8nEqpYSNthx22Xbcqcexg0sCiZQQlDhIFeK_L8A6TfXp6fOz9ewJGssFVOAJSbwr7ByadGR1n8T6evpO0vQ1uZDSekOrXGFsPqJPO6q-2-imH8f_0TeHXm50lfelsAMjnEHFY6xpMdRAUhhRQxUlFy0GTTXU_RytYeAx-AdXZB1ULWovdoCB7OXWN1CRC-Ju-r3uz6UtchGHJqDbsPygU57iysb2reoWHpyOWBINvsqypb3vFMlw3TfWZF5xiY7keC6zkpUnZIUojwW-FAVvrvn51LLnvOXHQ84Q5nn-AVtLcwk">live editor</a>]
### State diagram [<a href="https://mermaid.js.org/syntax/stateDiagram.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkEFvgzAMhf8K8nEqpYSNthx22Xbcqcexg0sCiZQQlDhIFeK_L8A6TfXp6fOz9ewJGssFVOAJSbwr7ByadGR1n8T6evpO0vQ1uZDSekOrXGFsPqJPO6q-2-imH8f_0TeHXm50lfelsAMjnEHFY6xpMdRAUhhRQxUlFy0GTTXU_RytYeAx-AdXZB1ULWovdoCB7OXWN1CRC-Ju-r3uz6UtchGHJqDbsPygU57iysb2reoWHpyOWBINvsqypb3vFMlw3TfWZF5xiY7keC6zkpUnZIUojwW-FAVvrvn51LLnvOXHQ84Q5nn-AVtLcwk">live editor</a>]
```
stateDiagram-v2
@@ -229,7 +229,7 @@ Moving --> Crash
Crash --> [*]
```
### Pie chart [<a href="https://mermaid-js.github.io/mermaid/#/pie">docs</a> - <a href="https://mermaid.live/edit#pako:eNo9jsFugzAMhl8F-VzBgEEh13Uv0F1zcYkTIpEEBadShXj3BU3dzf_n77e8wxQUgYDVkvQSbsFsEgpRtEN_5i_kvzx05XiC-xvUHVzAUXRoVe7v0heFBJ7JkQSRR0Ua08ISpD-ymlaFTN_KcoggNC4bXQATh5-Xn0BwTPSWbhZNRPdvLQEV5dIO_FrPZ43dOJ-cgtfWnDzFJeOZed1EVZ3r0lie06Ocgqs2q2aMPD_HvuqbfsCmpf7aYte2anrU46Cbz1qr60fdIBzH8QvW9lkl">live editor</a>]
### Pie chart [<a href="https://mermaid.js.org/syntax/pie.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNo9jsFugzAMhl8F-VzBgEEh13Uv0F1zcYkTIpEEBadShXj3BU3dzf_n77e8wxQUgYDVkvQSbsFsEgpRtEN_5i_kvzx05XiC-xvUHVzAUXRoVe7v0heFBJ7JkQSRR0Ua08ISpD-ymlaFTN_KcoggNC4bXQATh5-Xn0BwTPSWbhZNRPdvLQEV5dIO_FrPZ43dOJ-cgtfWnDzFJeOZed1EVZ3r0lie06Ocgqs2q2aMPD_HvuqbfsCmpf7aYte2anrU46Cbz1qr60fdIBzH8QvW9lkl">live editor</a>]
```
pie
@@ -247,7 +247,7 @@ pie
### Git graph [experimental - <a href="https://mermaid.live/edit#pako:eNqNkMFugzAMhl8F-VyVAR1tOW_aA-zKxSSGRCMJCk6lCvHuNZPKZdM0n-zf3_8r8QIqaIIGMqnB8kfEybQ--y4VnLP8-9RF9Mpkmm40hmlnDKmvkPiH_kfS7nFo_VN0FAf6XwocQGgxa_nGsm1bYEOOWmik1dRjGrmF1q-Cpkkj07u2HCI0PY4zHQATh8-7V9BwTPSE3iwOEd1OjQE1iWkBvk_bzQY7s0Sq4Hs7bHqKo8iGeZqbPN_WR7mpSd1RHpvPVhuMbG7XOq_L-oJlRfW5wteq0qorrpe-PBW9Pr8UJcK6rg-BLYPQ">live editor</a>]
### Bar chart (using gantt chart) [<a href="https://mermaid-js.github.io/mermaid/#/gantt">docs</a> - <a href="https://mermaid.live/edit#pako:eNptkU1vhCAQhv8KIenNugiI4rkf6bmXpvEyFVxJFDYyNt1u9r8X63Z7WQ9m5pknLzieaBeMpQ3dg0dsPUkPOhwteXZIXmJcbCT3xMAxkuh8Z8kIEclyMIB209fqKcwTICFvG4IvFy_oLrZ-g9F26ILfQgvNFN94VaRXQ1iWqpumZBcu1J8p1E1TXDx59eQNr5LyEqjJn6hv5QnGNlxevZJmdLLpy5xJSzut45biYCfb0iaVxvawjNjS1p-TCguG16PvaIPzYjO67e3BwX6GiTY9jPFKH43DMF_hGMDY1J4oHg-_f8hFTJFd8L3br3yZx4QHxENsdrt1nO8dDstH3oVpF50ZYMbhU6ud4qoGLqyqBJRCmO6j0HXPZdGbihUc6Pmc0QP49xD-b5X69ZQv2gjO81IwzWqhC1lKrjJ6pA3nVS7SMiVjrKirWlYp5fs3osgrWeo00lorLWvOzz8JVbXm">live editor</a>]
### Bar chart (using gantt chart) [<a href="https://mermaid.js.org/syntax/gantt.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNptkU1vhCAQhv8KIenNugiI4rkf6bmXpvEyFVxJFDYyNt1u9r8X63Z7WQ9m5pknLzieaBeMpQ3dg0dsPUkPOhwteXZIXmJcbCT3xMAxkuh8Z8kIEclyMIB209fqKcwTICFvG4IvFy_oLrZ-g9F26ILfQgvNFN94VaRXQ1iWqpumZBcu1J8p1E1TXDx59eQNr5LyEqjJn6hv5QnGNlxevZJmdLLpy5xJSzut45biYCfb0iaVxvawjNjS1p-TCguG16PvaIPzYjO67e3BwX6GiTY9jPFKH43DMF_hGMDY1J4oHg-_f8hFTJFd8L3br3yZx4QHxENsdrt1nO8dDstH3oVpF50ZYMbhU6ud4qoGLqyqBJRCmO6j0HXPZdGbihUc6Pmc0QP49xD-b5X69ZQv2gjO81IwzWqhC1lKrjJ6pA3nVS7SMiVjrKirWlYp5fs3osgrWeo00lorLWvOzz8JVbXm">live editor</a>]
```
gantt
@@ -285,7 +285,7 @@ gantt
5 : 0, 5
```
### User Journey diagram [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">docs</a> - <a href="https://mermaid.live/edit#pako:eNplkMFuwjAQRH9l5TMiTVIC-FqqnjhxzWWJN4khsSN7XRSh_HsdKBVt97R6Mzsj-yoqq0hIAXCywRkaSwNxWHNHsB_hYt1ZmwYUfiueKtbWwIcFtjf5zgH2eCZgQgkrCXt64GgMg2fUzkvIn5Xd_V5COtMFvCH_62ht_5yk7MU8sn61HDTfxD8VYiF6cj1qFd94nWkpuKWYKWRcFdUYOi5FaaZoDYNCpnel2Toha-w8LQQGtofRVEKyC_Qw7TQ2DvsfV2dRUTy6Ch6H-UMb7TlGVtbUupl5cF3ELfPgZZLM8rLR3IbjsrJ94rVq0XH7uS2SIis2mOVUrHNc5bmqjul2U2evaa3WL2mGYpqmL2BGiho">live editor</a>]
### User Journey diagram [<a href="https://mermaid.js.org/syntax/userJourney.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNplkMFuwjAQRH9l5TMiTVIC-FqqnjhxzWWJN4khsSN7XRSh_HsdKBVt97R6Mzsj-yoqq0hIAXCywRkaSwNxWHNHsB_hYt1ZmwYUfiueKtbWwIcFtjf5zgH2eCZgQgkrCXt64GgMg2fUzkvIn5Xd_V5COtMFvCH_62ht_5yk7MU8sn61HDTfxD8VYiF6cj1qFd94nWkpuKWYKWRcFdUYOi5FaaZoDYNCpnel2Toha-w8LQQGtofRVEKyC_Qw7TQ2DvsfV2dRUTy6Ch6H-UMb7TlGVtbUupl5cF3ELfPgZZLM8rLR3IbjsrJ94rVq0XH7uS2SIis2mOVUrHNc5bmqjul2U2evaa3WL2mGYpqmL2BGiho">live editor</a>]
```
journey
@@ -311,7 +311,7 @@ gantt
Sit down: 3: Me
```
### C4 diagram [<a href="https://mermaid-js.github.io/mermaid/#/c4c">docs</a>]
### C4 diagram [<a href="https://mermaid.js.org/syntax/c4.html">docs</a>]
```
C4Context
@@ -405,7 +405,7 @@ The above command generates files into the `dist` folder and publishes them to <
Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md)
Detailed information about how to contribute can be found in the [contribution guide](https://mermaid.js.org/community/contributing.html)
## Security and safe diagrams

View File

@@ -15,7 +15,7 @@ Mermaid
<a href="https://mermaid.live/"><b>实时编辑器!</b></a>
</p>
<p align="center">
<a href="https://mermaid.js.org">📖 文档</a> | <a href="https://mermaid.js.org/intro/">🚀 入门</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE" title="Slack invite">🙌 加入我们</a>
<a href="https://mermaid.js.org">📖 文档</a> | <a href="https://mermaid.js.org/intro/">🚀 入门</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://discord.gg/AgrbSrBer3" title="Discord invite">🙌 加入我们</a>
</p>
<p align="center">
<a href="./README.md">English</a>
@@ -34,7 +34,7 @@ Mermaid
[![Coverage Status](https://codecov.io/github/mermaid-js/mermaid/branch/develop/graph/badge.svg)](https://app.codecov.io/github/mermaid-js/mermaid/tree/develop)
[![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid)
[![NPM Downloads](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)
[![Join our Discord!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=discord&label=discord)](https://discord.gg/AgrbSrBer3)
[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=X)](https://twitter.com/mermaidjs_)
<img src="./img/header.png" alt="" />
@@ -43,7 +43,7 @@ Mermaid
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<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>
<a href="https://mermaid.js.org/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
@@ -57,20 +57,20 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd
Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。<br/>
<br/>
Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。<br/>
你可以访问 [教程](./docs/ecosystem/tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/ecosystem/integrations-community.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
你可以访问 [教程](https://mermaid.js.org/ecosystem/tutorials.html) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](https://mermaid.js.org/ecosystem/integrations-community.html) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/intro/getting-started.md), [用法](./docs/config/usage.md) 和 [教程](./docs/ecosystem/tutorials.md).
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](https://mermaid.js.org/intro/getting-started.html), [用法](https://mermaid.js.org/config/usage.html) 和 [教程](https://mermaid.js.org/ecosystem/tutorials.html).
<!-- </Main description> -->
## 示例
**下面是一些可以使用 Mermaid 创建的图表示例。点击 [语法](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference) 查看详情。**
**下面是一些可以使用 Mermaid 创建的图表示例。点击 [语法](https://mermaid.js.org/intro/syntax-reference.html) 查看详情。**
<table>
<!-- <Flowchart> -->
### 流程图 [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
### 流程图 [<a href="https://mermaid.js.org/syntax/flowchart.html">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
```
flowchart LR
@@ -88,12 +88,12 @@ C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
### 时序图 [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 时序图 [<a href="https://mermaid.js.org/syntax/sequenceDiagram.html">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
@@ -105,7 +105,7 @@ Bob-->>John: Jolly good!
```mermaid
sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
@@ -114,7 +114,7 @@ John->>Bob: How about you?
Bob-->>John: Jolly good!
```
### 甘特图 [<a href="https://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 甘特图 [<a href="https://mermaid.js.org/syntax/gantt.html">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
gantt
@@ -138,7 +138,7 @@ gantt
Parallel 4 : des6, after des4, 1d
```
### 类图 [<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>]
### 类图 [<a href="https://mermaid.js.org/syntax/classDiagram.html">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
```
classDiagram
@@ -178,7 +178,7 @@ class Class10 {
}
```
### 状态图 [[<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>]
### 状态图 [<a href="https://mermaid.js.org/syntax/stateDiagram.html">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkLsOwjAMRX-l8ojahTEDCzB26kgYrMYtkfJAqVMJVf13QiIKqqfr44d8vUDvFYGAiZHponEMaJv5KF2V4na4V01zqjrWxhSUZYapuEetn7UbCy16P_5HzwGnR6FZfpdCDZaCRa3SWcunQQI_yJIEkaSiAaNhCdKtqRUj--7lehAcItUQn-pnBMSAZtroVWn2YYOU07b4z29Y37gJVYk">live editor</a>]
```
stateDiagram-v2
@@ -200,7 +200,7 @@ Moving --> Crash
Crash --> [*]
```
### 饼图 [<a href="https://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
### 饼图 [<a href="https://mermaid.js.org/syntax/pie.html">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
```
pie
@@ -218,7 +218,7 @@ pie
### 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://mermaid.live/edit#pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>]
### 用户体验旅程图 [<a href="https://mermaid.js.org/syntax/userJourney.html">文档</a> - <a href="https://mermaid.live/edit#pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>]
```
journey
@@ -244,7 +244,7 @@ pie
Sit down: 3: Me
```
### C4 图 [<a href="https://mermaid-js.github.io/mermaid/#/c4c">文档</a>]
### C4 图 [<a href="https://mermaid.js.org/syntax/c4.html">文档</a>]
```
C4Context
@@ -338,7 +338,7 @@ npm publish
Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 [这个 issue](https://github.com/mermaid-js/mermaid/issues/866)。
关于如何贡献的详细信息可以在 [贡献指南](CONTRIBUTING.md) 中找到。
关于如何贡献的详细信息可以在 [贡献指南](https://mermaid.js.org/community/contributing.html) 中找到。
## 安全

View File

@@ -1,21 +0,0 @@
/**
* 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

@@ -1,16 +0,0 @@
/**
* 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

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

View File

@@ -1 +0,0 @@
// DO NOT delete this file. It is used by vitest to mock the dagre-d3 module.

View File

@@ -1,3 +0,0 @@
module.exports = function (txt: string) {
return txt;
};

View File

@@ -1,16 +0,0 @@
/**
* 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

@@ -1,24 +0,0 @@
/**
* 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

@@ -1,16 +0,0 @@
/**
* 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

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

View File

@@ -1,15 +0,0 @@
/**
* 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,
};

View File

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

View File

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

View File

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

View File

@@ -1,23 +0,0 @@
/**
* 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

@@ -1,22 +0,0 @@
/**
* 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

@@ -1,19 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { defineConfig } = require('cypress');
module.exports = defineConfig({
testConcurrency: 1,
browser: [
// Add browsers with different viewports
// { width: 800, height: 600, name: 'chrome' },
// { width: 700, height: 500, name: 'firefox' },
// { width: 1600, height: 1200, name: 'ie11' },
// { width: 1024, height: 768, name: 'edgechromium' },
// { width: 800, height: 600, name: 'safari' },
// // Add mobile emulation devices in Portrait mode
// { deviceName: 'iPhone X', screenOrientation: 'portrait' },
// { deviceName: 'Pixel 2', screenOrientation: 'portrait' },
],
// set batch name to the configuration
// batchName: `Mermaid ${process.env.APPLI_BRANCH ?? "'no APPLI_BRANCH set'"}`,
});

View File

@@ -1,209 +0,0 @@
{
"version": "0.2",
"language": "en",
"words": [
"acyclicer",
"adamiecki",
"alois",
"aloisklink",
"antiscript",
"antlr",
"appli",
"applitools",
"asciidoctor",
"ashish",
"ashishjain",
"astah",
"bbox",
"bilkent",
"bisheng",
"blrs",
"braintree",
"brkt",
"brolin",
"brotli",
"catmull",
"città",
"classdef",
"codedoc",
"codemia",
"colour",
"commitlint",
"cpettitt",
"customizability",
"cuzon",
"cytoscape",
"dagre",
"deepdwn",
"descr",
"docsify",
"docsy",
"doku",
"dompurify",
"dont",
"doublecircle",
"edgechromium",
"elems",
"elkjs",
"elle",
"faber",
"flatmap",
"foswiki",
"frontmatter",
"ftplugin",
"gantt",
"gitea",
"gitgraph",
"globby",
"graphlib",
"graphviz",
"grav",
"greywolf",
"gzipped",
"huynh",
"huynhicode",
"inkdrop",
"jaoude",
"jgreywolf",
"jison",
"jiti",
"kaufmann",
"khroma",
"klemm",
"klink",
"knsv",
"knut",
"knutsveidqvist",
"laganeckas",
"linetype",
"lintstagedrc",
"logmsg",
"lucida",
"markdownish",
"matthieu",
"matthieumorel",
"mdast",
"mdbook",
"mermaidjs",
"mermerd",
"mindaugas",
"mindmap",
"mindmaps",
"mitigations",
"mkdocs",
"mmorel",
"mult",
"neurodiverse",
"nextra",
"nikolay",
"nirname",
"npmjs",
"orlandoni",
"pathe",
"pbrolin",
"phpbb",
"pixelmatch",
"plantuml",
"playfair",
"pnpm",
"podlite",
"quence",
"radious",
"ranksep",
"rect",
"rects",
"reda",
"redmine",
"regexes",
"rehype",
"roledescription",
"rozhkov",
"sandboxed",
"sankey",
"setupgraphviewbox",
"shiki",
"sidharth",
"sidharthv",
"sphinxcontrib",
"ssim",
"startx",
"starty",
"statediagram",
"steph",
"stopx",
"stopy",
"stylis",
"subhash-halder",
"substate",
"sulais",
"sveidqvist",
"swimm",
"techn",
"teststr",
"textlength",
"treemap",
"ts-nocheck",
"tsdoc",
"tuleap",
"tylerlong",
"typora",
"ugge",
"unist",
"unocss",
"upvoting",
"valign",
"verdana",
"viewports",
"vinod",
"visio",
"vitepress",
"vueuse",
"xlink",
"xychart",
"yash",
"yokozuna",
"zenuml",
"zune"
],
"patterns": [
{ "name": "Markdown links", "pattern": "\\((.*)\\)", "description": "" },
{
"name": "Markdown code blocks",
"pattern": "/^(\\s*`{3,}).*[\\s\\S]*?^\\1/gmx",
"description": "Taken from the cSpell example at https://cspell.org/configuration/patterns/#verbose-regular-expressions"
},
{
"name": "Inline code blocks",
"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": "Snippet references 2",
"pattern": "\\<\\[sample:(.*)",
"description": "another kind of snippet reference"
},
{ "name": "Multi-line code blocks", "pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm" },
{
"name": "HTML Tags",
"pattern": "<[^>]*>",
"description": "Reference: https://stackoverflow.com/questions/11229831/regular-expression-to-remove-html-tags-from-a-string"
}
],
"ignoreRegExpList": [
"Markdown links",
"Markdown code blocks",
"Inline code blocks",
"Link contents",
"Snippet references",
"Snippet references 2",
"Multi-line code blocks",
"HTML Tags"
],
"ignorePaths": [
"packages/mermaid/src/docs/CHANGELOG.md",
"packages/mermaid/src/docs/.vitepress/redirect.ts",
"packages/mermaid/src/docs/.vitepress/contributor-names.json"
]
}

45
cspell.config.yaml Normal file
View File

@@ -0,0 +1,45 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
version: '0.2'
language: en-US,en-GB
import:
- ./.cspell/cspell.config.yaml
ignoreRegExpList:
- character-set-cyrillic
- svg-block
ignorePaths:
- '*lock.{yaml,json}'
- dist
- CHANGELOG.md
- packages/mermaid/src/docs/.vitepress/redirect.ts
- packages/mermaid/src/docs/.vitepress/contributor-names.json
- backup
- '**/*.spec.{js,ts}' # checked by eslint
- 'tests/webpack/src/index.js' # checked by eslint
- 'cypress/**/*.js' # checked by eslint
- '*.csv'
- '*.patch'
- 'docs/**/*.html'
- 'cypress/platform/**'
dictionaries:
- misc-terms
overrides:
- filename:
- '**/*.{jison,ts,mts,cjs,mjs,js,json,yaml,yml,md,html}'
- 'run'
- Dockerfile
ignoreRegExpList:
- js-unicode-escape
dictionaries:
- code-terms
- 3rd-party-terms
- fonts
- html
- lorem-ipsum
- filename: '**/package.json'
ignoreRegExpList:
- json-property
# cspell:dictionaries code-terms

View File

@@ -1,32 +0,0 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { defineConfig } = require('cypress');
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
const coverage = require('@cypress/code-coverage/task');
module.exports = defineConfig({
projectId: 'n2sma2',
viewportWidth: 1440,
viewportHeight: 1024,
e2e: {
specPattern: 'cypress/integration/**/*.{js,ts}',
setupNodeEvents(on, config) {
coverage(on, config);
on('before:browser:launch', (browser = {}, launchOptions) => {
if (browser.name === 'chrome' && browser.isHeadless) {
launchOptions.args.push('--window-size=1440,1024', '--force-device-scale-factor=1');
}
return launchOptions;
});
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
// do not forget to return the changed config object!
return config;
},
},
video: false,
});
require('@applitools/eyes-cypress')(module);

45
cypress.config.ts Normal file
View File

@@ -0,0 +1,45 @@
import { defineConfig } from 'cypress';
import fs from 'fs';
import path from 'path';
import { addMatchImageSnapshotPlugin } from 'cypress-image-snapshot/plugin';
import coverage from '@cypress/code-coverage/task';
import eyesPlugin from '@applitools/eyes-cypress';
export default eyesPlugin(
defineConfig({
projectId: 'n2sma2',
viewportWidth: 1440,
viewportHeight: 1024,
e2e: {
specPattern: 'cypress/integration/**/*.{js,ts}',
setupNodeEvents(on, config) {
coverage(on, config);
on('before:browser:launch', (browser, launchOptions) => {
if (browser.name === 'chrome' && browser.isHeadless) {
launchOptions.args.push('--window-size=1440,1024', '--force-device-scale-factor=1');
}
return launchOptions;
});
on('task', {
recordRenderTime({ fileName, testName, timeTaken }) {
const resultsPath = path.join('cypress', 'snapshots', 'runtimes', 'current');
if (!fs.existsSync(resultsPath)) {
fs.mkdirSync(resultsPath, { recursive: true });
}
fs.appendFileSync(
path.join(resultsPath, `${fileName}.csv`),
`${testName},${timeTaken}\n`
);
return true;
},
});
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
// do not forget to return the changed config object!
return config;
},
},
video: false,
})
);

View File

@@ -110,6 +110,14 @@ export const openURLAndVerifyRendering = (
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.window().then((win) => {
cy.task('recordRenderTime', {
fileName: Cypress.spec.name,
testName: name,
// @ts-ignore Dynamically added property.
timeTaken: win.renderTime,
});
});
cy.get('svg').should('be.visible');
if (validation) {

View File

@@ -0,0 +1,14 @@
import { urlSnapshotTest, openURLAndVerifyRendering } from '../../helpers/util.ts';
describe('Flowchart elk', () => {
it('should use dagre as fallback', () => {
urlSnapshotTest('http://localhost:9000/flow-elk.html', {
name: 'flow-elk fallback to dagre',
});
});
it('should allow overriding with external package', () => {
urlSnapshotTest('http://localhost:9000/flow-elk.html?elk=true', {
name: 'flow-elk overriding dagre with elk',
});
});
});

View File

@@ -0,0 +1,11 @@
describe('IIFE', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/iife.html');
});
it('should render when using mermaid.min.js', () => {
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
cy.get('#d2').should('contain', 'Hello');
});
});

View File

@@ -1,16 +0,0 @@
describe('Sequencediagram', () => {
it('should render a simple sequence diagrams', () => {
const url = 'http://localhost:9000/webpackUsage.html';
cy.visit(url);
cy.get('body').find('svg').should('have.length', 1);
});
it('should handle html escapings properly', () => {
const url = 'http://localhost:9000/webpackUsage.html?test-html-escaping=true';
cy.visit(url);
cy.get('body').find('svg').should('have.length', 1);
cy.get('g.label > foreignobject > div').should('not.contain.text', '<b>');
});
});

View File

@@ -0,0 +1,386 @@
import { imgSnapshotTest } from '../../helpers/util';
/* eslint-disable no-useless-escape */
describe('Block diagram', () => {
it('BL1: should calculate the block widths', () => {
imgSnapshotTest(
`block-beta
columns 2
block
id2["I am a wide one"]
id1
end
id["Next row"]
`
);
});
it('BL2: should handle colums statement in sub-blocks', () => {
imgSnapshotTest(
`block-beta
id1["Hello"]
block
columns 3
id2["to"]
id3["the"]
id4["World"]
id5["World"]
end
`,
{}
);
});
it('BL3: should align block widths and handle colums statement in sub-blocks', () => {
imgSnapshotTest(
`block-beta
block
columns 1
id1
id2
id2.1
end
id3
id4
`,
{}
);
});
it('BL4: should align block widths and handle colums statements in deeper sub-blocks then 1 level', () => {
imgSnapshotTest(
`block-beta
columns 1
block
columns 1
block
columns 3
id1
id2
id2.1(("XYZ"))
end
id48
end
id3
`,
{}
);
});
it('BL5: should align block widths and handle colums statements in deeper sub-blocks then 1 level (alt)', () => {
imgSnapshotTest(
`block-beta
columns 1
block
id1
id2
block
columns 1
id3("Wider then")
id5(("id5"))
end
end
id4
`,
{}
);
});
it('BL6: should handle block arrows and spece statements', () => {
imgSnapshotTest(
`block-beta
columns 3
space:3
ida idb idc
id1 id2
blockArrowId<["Label"]>(right)
blockArrowId2<["Label"]>(left)
blockArrowId3<["Label"]>(up)
blockArrowId4<["Label"]>(down)
blockArrowId5<["Label"]>(x)
blockArrowId6<["Label"]>(y)
blockArrowId6<["Label"]>(x, down)
`,
{}
);
});
it('BL7: should handle different types of edges', () => {
imgSnapshotTest(
`block-beta
columns 3
A space:5
A --o B
A --> C
A --x D
`,
{}
);
});
it('BL8: should handle sub-blocks without columns statements', () => {
imgSnapshotTest(
`block-beta
columns 2
C A B
block
D
E
end
`,
{}
);
});
it('BL9: should handle edges from blocks in sub blocks to other blocks', () => {
imgSnapshotTest(
`block-beta
columns 3
B space
block
D
end
D --> B
`,
{}
);
});
it('BL10: should handle edges from composite blocks', () => {
imgSnapshotTest(
`block-beta
columns 3
B space
block BL
D
end
BL --> B
`,
{}
);
});
it('BL11: should handle edges to composite blocks', () => {
imgSnapshotTest(
`block-beta
columns 3
B space
block BL
D
end
B --> BL
`,
{}
);
});
it('BL12: edges should handle labels', () => {
imgSnapshotTest(
`block-beta
A
space
A -- "apa" --> E
`,
{}
);
});
it('BL13: should handle block arrows in different directions', () => {
imgSnapshotTest(
`block-beta
columns 3
space blockArrowId1<["down"]>(down) space
blockArrowId2<["right"]>(right) blockArrowId3<["Sync"]>(x, y) blockArrowId4<["left"]>(left)
space blockArrowId5<["up"]>(up) space
blockArrowId6<["x"]>(x) space blockArrowId7<["y"]>(y)
`,
{}
);
});
it('BL14: should style statements and class statements', () => {
imgSnapshotTest(
`block-beta
A
B
classDef blue fill:#66f,stroke:#333,stroke-width:2px;
class A blue
style B fill:#f9F,stroke:#333,stroke-width:4px
`,
{}
);
});
it('BL15: width alignment - D and E should share available space', () => {
imgSnapshotTest(
`block-beta
block
D
E
end
db("This is the text in the box")
`,
{}
);
});
it('BL16: width alignment - C should be as wide as the composite block', () => {
imgSnapshotTest(
`block-beta
block
A("This is the text")
B
end
C
`,
{}
);
});
it('BL16: width alignment - blocks shold be equal in width', () => {
imgSnapshotTest(
`block-beta
A("This is the text")
B
C
`,
{}
);
});
it('BL17: block types 1 - square, rounded and circle', () => {
imgSnapshotTest(
`block-beta
A["square"]
B("rounded")
C(("circle"))
`,
{}
);
});
it('BL18: block types 2 - odd, diamond and hexagon', () => {
imgSnapshotTest(
`block-beta
A>"rect_left_inv_arrow"]
B{"diamond"}
C{{"hexagon"}}
`,
{}
);
});
it('BL19: block types 3 - stadium', () => {
imgSnapshotTest(
`block-beta
A(["stadium"])
`,
{}
);
});
it('BL20: block types 4 - lean right, lean left, trapezoid and inv trapezoid', () => {
imgSnapshotTest(
`block-beta
A[/"lean right"/]
B[\"lean left"\]
C[/"trapezoid"\]
D[\"trapezoid alt"/]
`,
{}
);
});
it('BL21: block types 1 - square, rounded and circle', () => {
imgSnapshotTest(
`block-beta
A["square"]
B("rounded")
C(("circle"))
`,
{}
);
});
it('BL22: sizing - it should be possible to make a block wider', () => {
imgSnapshotTest(
`block-beta
A("rounded"):2
B:2
C
`,
{}
);
});
it('BL23: sizing - it should be possible to make a composite block wider', () => {
imgSnapshotTest(
`block-beta
block:2
A
end
B
`,
{}
);
});
it('BL24: block in the middle with space on each side', () => {
imgSnapshotTest(
`block-beta
columns 3
space
middle["In the middle"]
space
`,
{}
);
});
it('BL25: space and an edge', () => {
imgSnapshotTest(
`block-beta
columns 5
A space B
A --x B
`,
{}
);
});
it('BL26: block sizes for regular blocks', () => {
imgSnapshotTest(
`block-beta
columns 3
a["A wide one"] b:2 c:2 d
`,
{}
);
});
it('BL27: composite block with a set width - f should use the available space', () => {
imgSnapshotTest(
`block-beta
columns 3
a:3
block:e:3
f
end
g
`,
{}
);
});
it('BL23: composite block with a set width - f and g should split the available space', () => {
imgSnapshotTest(
`block-beta
columns 3
a:3
block:e:3
f
g
end
h
i
j
`,
{}
);
});
});

View File

@@ -92,6 +92,31 @@ describe('Gantt diagram', () => {
{}
);
});
it('should handle multiple dependencies syntax with after and until', () => {
imgSnapshotTest(
`
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
todayMarker off
section team's critical event
deadline A :milestone, crit, deadlineA, 2024-02-01, 0
deadline B :milestone, crit, deadlineB, 2024-02-15, 0
boss on leave :bossaway, 2024-01-28, 2024-02-11
section new intern
onboarding :onboarding, 2024-01-02, 1w
literature review :litreview, 2024-01-02, 10d
project A :projectA, after onboarding litreview, until deadlineA bossaway
chilling :chilling, after projectA, until deadlineA
project B :projectB, after deadlineA, until deadlineB
`,
{}
);
});
it('should FAIL redering a gantt chart for issue #1060 with invalid date', () => {
imgSnapshotTest(
`
@@ -583,4 +608,106 @@ describe('Gantt diagram', () => {
{}
);
});
it("should render when there's a semicolon in the title", () => {
imgSnapshotTest(
`
gantt
title ;Gantt With a Semicolon in the Title
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
`,
{}
);
});
it("should render when there's a semicolon in a section is true", () => {
imgSnapshotTest(
`
gantt
title Gantt Digram
dateFormat YYYY-MM-DD
section ;Section With a Semicolon
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
`,
{}
);
});
it("should render when there's a semicolon in the task data", () => {
imgSnapshotTest(
`
gantt
title Gantt Digram
dateFormat YYYY-MM-DD
section Section
;A task with a semiclon :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
`,
{}
);
});
it("should render when there's a hashtag in the title", () => {
imgSnapshotTest(
`
gantt
title #Gantt With a Hashtag in the Title
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
`,
{}
);
});
it("should render when there's a hashtag in a section is true", () => {
imgSnapshotTest(
`
gantt
title Gantt Digram
dateFormat YYYY-MM-DD
section #Section With a Hashtag
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
`,
{}
);
});
it("should render when there's a hashtag in the task data", () => {
imgSnapshotTest(
`
gantt
title Gantt Digram
dateFormat YYYY-MM-DD
section Section
#A task with a hashtag :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
`,
{}
);
});
});

View File

@@ -943,4 +943,74 @@ gitGraph TB:
{ gitGraph: { parallelCommits: true } }
);
});
it('46: should render GitGraph with merge back and merge forward', () => {
imgSnapshotTest(
`gitGraph LR:
commit id:"1-abcdefg"
branch branch-A
branch branch-B
commit id:"2-abcdefg"
checkout branch-A
merge branch-B
checkout branch-B
merge branch-A
`,
{ gitGraph: { parallelCommits: true } }
);
});
it('47: should render GitGraph with merge back and merge forward | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id:"1-abcdefg"
branch branch-A
branch branch-B
commit id:"2-abcdefg"
checkout branch-A
merge branch-B
checkout branch-B
merge branch-A
`,
{ gitGraph: { parallelCommits: true } }
);
});
it('48: should render GitGraph with merge on a new branch | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph LR:
commit id:"1-abcdefg"
branch branch-B order: 2
commit id:"2-abcdefg"
branch branch-A
merge main
checkout branch-B
merge branch-A
`,
{ gitGraph: { parallelCommits: true } }
);
});
it('49: should render GitGraph with merge on a new branch | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id:"1-abcdefg"
branch branch-B order: 2
commit id:"2-abcdefg"
branch branch-A
merge main
checkout branch-B
merge branch-A
`,
{ gitGraph: { parallelCommits: true } }
);
});
});

View File

@@ -0,0 +1,36 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('Katex', () => {
it('1: should render a complex Katex flowchart no htmlLabels', () => {
imgSnapshotTest(
`graph LR
A["$$f(\\relax{x}) = \\int_{-\\infty}^\\infty \\hat{f}(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi$$"] -->|"$$\\Bigg(\\bigg(\\Big(\\big((\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a})\\big)\\Big)\\bigg)\\Bigg)$$"| B("$$1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\cdots}}}}$$")
A -->|"$$\\overbrace{a+b+c}^{\\text{note}}$$"| C("$$\\phase{-78^\\circ}$$")
B --> D("$$x = \\begin{cases} a &\\text{if } b \\\\ c &\\text{if } d \\end{cases}$$")
C --> E("$$x(t)=c_1\\begin{bmatrix}-\\cos{t}+\\sin{t}\\\\ 2\\cos{t} \\end{bmatrix}e^{2t}$$")`,
{ fontFamily: 'courier' }
);
});
it('2: should render a Katex flowchart containing the Greek alphabet', () => {
imgSnapshotTest(
`graph LR
A["$$\\alpha\\beta\\gamma\\delta\\epsilon\\zeta\\eta\\theta\\iota\\kappa\\lambda\\mu\\nu\\xi\\omicron\\pi\\rho\\sigma\\tau\\upsilon\\phi\\chi\\psi\\omega$$"] --> B["$$\\Alpha\\Beta\\Gamma\\Delta\\Epsilon\\Zeta\\Eta\\Theta\\Iota\\Kappa\\Lambda\\Mu\\Nu\\Xi\\Omicron\\Pi\\Rho\\Sigma\\Tau\\Upsilon\\Phi\\Chi\\Psi\\Omega$$"]`,
{ fontFamily: 'courier' }
);
});
it('3: should render a Katex flowchart containing set theory symbols', () => {
imgSnapshotTest(
`graph LR
A["$$\\forall\\complement\\therefore\\emptyset\\exists\\subset\\because\\empty\\exist\\supset\\mapsto\\varnothing\\nexists\\mid\\to\\implies\\in\\land\\gets\\impliedby\\isin\\lor\\leftrightarrow\\iff\\notin\\ni\\notni\\lnot$$"] --> B["$$\\nabla\\Im\\Reals\\jmath\\partial\\image\\wp\\aleph\\Game\\weierp\\alef\\Finv\\N\\Z\\alefsym\\cnums\\natnums\\beth\\Complex\\R\\gimel\\ell\\Re\\daleth\\hbar\\real\\eth\\hslash\\reals$$"]`,
{ fontFamily: 'courier' }
);
});
// TODO: changes made to develop between Feb 13 - Feb 23 cause this test to no longer function
// it.skip('4: should render an error box originating from Katex', () => {
// imgSnapshotTest(
// `graph LR
// A["$$\\shouldBeError$$"]`,
// { fontFamily: 'courier' }
// );
// });
});

View File

@@ -0,0 +1,67 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('packet structure', () => {
it('should render a simple packet diagram', () => {
imgSnapshotTest(
`packet-beta
title Hello world
0-10: "hello"
`
);
});
it('should render a complex packet diagram', () => {
imgSnapshotTest(
`packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
`
);
});
it('should render a complex packet diagram with showBits false', () => {
imgSnapshotTest(
`
---
title: "Packet Diagram"
config:
packet:
showBits: false
---
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
`
);
});
});

View File

@@ -375,6 +375,26 @@ context('Sequence diagram', () => {
{}
);
});
it('should have actor-top and actor-bottom classes on top and bottom actor box and symbol', () => {
imgSnapshotTest(
`
sequenceDiagram
actor Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
`,
{}
);
cy.get('.actor').should('have.class', 'actor-top');
cy.get('.actor-man').should('have.class', 'actor-top');
cy.get('.actor.actor-top').should('not.have.class', 'actor-bottom');
cy.get('.actor-man.actor-top').should('not.have.class', 'actor-bottom');
cy.get('.actor').should('have.class', 'actor-bottom');
cy.get('.actor-man').should('have.class', 'actor-bottom');
cy.get('.actor.actor-bottom').should('not.have.class', 'actor-top');
cy.get('.actor-man.actor-bottom').should('not.have.class', 'actor-top');
});
it('should render long notes left of actor', () => {
imgSnapshotTest(
`
@@ -792,6 +812,34 @@ context('Sequence diagram', () => {
});
});
context('links', () => {
it('should support actor links', () => {
renderGraph(
`
sequenceDiagram
link Alice: Dashboard @ https://dashboard.contoso.com/alice
link Alice: Wiki @ https://wiki.contoso.com/alice
link John: Dashboard @ https://dashboard.contoso.com/john
link John: Wiki @ https://wiki.contoso.com/john
Alice->>John: Hello John<br/>
John-->>Alice: Great<br/><br/>day!
`,
{ securityLevel: 'loose' }
);
cy.get('#actor0_popup').should((popupMenu) => {
const style = popupMenu.attr('style');
expect(style).to.undefined;
});
cy.get('#root-0').click();
cy.get('#actor0_popup').should((popupMenu) => {
const style = popupMenu.attr('style');
expect(style).to.match(/^display: block;$/);
});
cy.get('#root-0').click();
cy.get('#actor0_popup').should((popupMenu) => {
const style = popupMenu.attr('style');
expect(style).to.match(/^display: none;$/);
});
});
it('should support actor links and properties EXPERIMENTAL: USE WITH CAUTION', () => {
//Be aware that the syntax for "properties" is likely to be changed.
imgSnapshotTest(

View File

@@ -1,7 +1,7 @@
<html>
<head>
<meta charset="utf-8" />
<script src="./viewer.js" type="module"></script>
<script type="module" src="./viewer.js"></script>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"

View File

@@ -11,8 +11,7 @@ example-diagram
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<!-- <script type="module" src="./external-diagrams-mindmap.mjs" /> -->
<script type="module">
import exampleDiagram from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import exampleDiagram from './mermaid-example-diagram.esm.mjs';
import mermaid from './mermaid.esm.mjs';
await mermaid.registerExternalDiagrams([exampleDiagram]);

View File

@@ -0,0 +1,28 @@
<html>
<body>
<pre class="mermaid">
flowchart-elk
a[hello] --> b[world]
b --> c{test}
c --> one
c --> two
c --> three
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import elk from './mermaid-flowchart-elk.esm.min.mjs';
if (window.location.search.includes('elk')) {
await mermaid.registerExternalDiagrams([elk]);
}
mermaid.initialize({
logLevel: 3,
startOnLoad: false,
});
await mermaid.run();
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -0,0 +1,29 @@
<html>
<body>
<pre id="diagram" class="mermaid">
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<div id="d2"></div>
<script src="/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: true,
});
const value = `graph TD\nHello --> World`;
const el = document.getElementById('d2');
mermaid.render('did', value).then(({ svg }) => {
console.log(svg);
el.innerHTML = svg;
if (window.Cypress) {
window.rendered = true;
}
});
</script>
</body>
</html>

View File

@@ -17,20 +17,20 @@
graph TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click URL "http://localhost:9000/info.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid2">
graph TB
1Function-->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/info.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid2">
classDiagram
class Test
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/info.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</pre>
@@ -42,7 +42,7 @@
<pre id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/info.html" "This is a tooltip for a link"
</pre>
</div>
@@ -77,7 +77,7 @@
Calling a Callback (look at the console log) :cl2, after cl1, 3d
Calling a Callback with args :cl3, after cl1, 3d
click cl1 href "http://localhost:9000/webpackUsage.html"
click cl1 href "http://localhost:9000/info.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)
@@ -102,9 +102,15 @@
div.className = 'created-by-gant-click';
div.style = 'padding: 20px; background: green; color: white;';
div.innerText = 'Clicked By Gant';
if (arg1) div.innerText += ' ' + arg1;
if (arg2) div.innerText += ' ' + arg2;
if (arg3) div.innerText += ' ' + arg3;
if (arg1) {
div.innerText += ' ' + arg1;
}
if (arg2) {
div.innerText += ' ' + arg2;
}
if (arg3) {
div.innerText += ' ' + arg3;
}
document.getElementsByTagName('body')[0].appendChild(div);
}

View File

@@ -17,24 +17,30 @@
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
background: #333;
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 {
color: grey;
}
.mermaid {
border: 1px solid #ddd;
margin: 10px;
}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
background-color: #efefef;
background-image: radial-gradient(#fff 51%, transparent 91%),
radial-gradient(#fff 51%, transparent 91%);
/* background-color: #efefef; */
background-color: #333;
background-image: radial-gradient(#333 51%, transparent 91%),
radial-gradient(#333 51%, transparent 91%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
border: 2px solid rgb(131, 142, 205);
}
.malware {
position: fixed;
@@ -58,46 +64,192 @@
</head>
<body>
<pre id="diagram" class="mermaid">
flowchart TB
C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z & A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z & A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8
block-beta
blockArrowId<["Label"]>(right)
blockArrowId2<["Label"]>(left)
blockArrowId3<["Label"]>(up)
blockArrowId4<["Label"]>(down)
blockArrowId5<["Label"]>(x)
blockArrowId6<["Label"]>(y)
blockArrowId6<["Label"]>(x, down)
</pre>
<pre id="diagram" class="mermaid">
block-beta
block:e:4
columns 2
f
g
end
</pre>
<pre id="diagram" class="mermaid">
block-beta
block:e:4
columns 2
f
g
h
end
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 4
a b c d
block:e:4
columns 2
f
g
h
end
i:4
</pre>
<pre id="diagram" class="mermaid2">
flowchart TB
A & A & A & A & A & A & A & A ---> C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z
flowchart LR
X-- "y" -->z
</pre>
<pre id="diagram" class="mermaid2">
flowchart TB
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 --> C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z
block-beta
columns 5
A space B
A --x B
</pre>
<pre id="diagram" class="mermaid2">
block-beta
columns 3
a["A wide one"] b:2 c:2 d
</pre>
<pre id="diagram" class="mermaid2">
block-beta
block:e
f
end
</pre>
<pre id="diagram" class="mermaid2">
block-beta
columns 3
a:3
block:e:3
f
end
g
</pre>
<pre id="diagram" class="mermaid2">
block-beta
columns 3
a:3
block:e:3
f
g
end
h
i
j
</pre>
<pre id="diagram" class="mermaid2">
block-beta
columns 3
a b:2
block:e:3
f
end
g h i
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 3
a b c
e:3
f g h
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 1
db(("DB"))
blockArrowId6<["&nbsp;&nbsp;&nbsp;"]>(down)
block:ID
A
B["A wide one in the middle"]
C
end
space
D
ID --> D
C --> D
style B fill:#f9F,stroke:#333,stroke-width:4px
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 5
A1:3
A2:1
A3
B1 B2 B3:3
</pre>
<pre id="diagram" class="mermaid2">
block-beta
block
D
E
end
db("This is the text in the box")
</pre>
<pre id="diagram" class="mermaid2">
block-beta
block
D
end
A["A: I am a wide one"]
</pre>
<pre id="diagram" class="mermaid2">
block-beta
A["square"]
B("rounded")
C(("circle"))
</pre>
<pre id="diagram" class="mermaid2">
block-beta
A>"rect_left_inv_arrow"]
B{"diamond"}
C{{"hexagon"}}
</pre>
<pre id="diagram" class="mermaid2">
block-beta
A(["stadium"])
</pre>
<pre id="diagram" class="mermaid2">
block-beta
%% A[["subroutine"]]
%% B[("cylinder")]
C>"surprise"]
</pre>
<pre id="diagram" class="mermaid2">
block-beta
A[/"lean right"/]
B[\"lean left"\]
C[/"trapezoid"\]
D[\"trapezoid"/]
</pre>
<pre id="diagram" class="mermaid2">
flowchart
Node1:::class1 --> Node2:::class2
Node1:::class1 --> Node3:::class2
Node3 --> Node4((I am a circle)):::larger
B
style B fill:#f9F,stroke:#333,stroke-width:4px
</pre>
classDef class1 fill:lightblue
classDef class2 fill:pink
classDef larger font-size:30px,fill:yellow
</pre
>
<pre id="diagram" class="mermaid2">
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*] </pre
>
flowchart LR
a1 -- apa --> b1
</pre>
<pre id="diagram" class="mermaid2">
flowchart RL
subgraph "`one`"
a1 -- l1 --> a2
a1 -- l2 --> a2
end
subgraph "`one`"
id
end
</pre>
<pre id="diagram" class="mermaid2">
flowchart RL
@@ -442,14 +594,8 @@ mindmap
// useMaxWidth: false,
// });
mermaid.initialize({
flowchart: { titleTopMargin: 10 },
fontFamily: 'courier',
sequence: {
actorFontFamily: 'courier',
noteFontFamily: 'courier',
messageFontFamily: 'courier',
},
fontSize: 16,
theme: 'dark',
startOnLoad: true,
logLevel: 0,
});
function callback() {

View File

@@ -1,6 +1,6 @@
import mermaid2 from './mermaid.esm.mjs';
import externalExample from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
import zenUml from '../../packages/mermaid-zenuml/dist/mermaid-zenuml.core.mjs';
import mermaid from './mermaid.esm.mjs';
import externalExample from './mermaid-example-diagram.esm.mjs';
import zenUml from './mermaid-zenuml.esm.mjs';
function b64ToUtf8(str) {
return decodeURIComponent(escape(window.atob(str)));
@@ -8,6 +8,7 @@ function b64ToUtf8(str) {
// Adds a rendered flag to window when rendering is done, so cypress can wait for it.
function markRendered() {
window.renderTime = Date.now() - window.loadTime;
if (window.Cypress) {
window.rendered = true;
}
@@ -45,9 +46,9 @@ const contentLoaded = async function () {
document.getElementsByTagName('body')[0].appendChild(div);
}
await mermaid2.registerExternalDiagrams([externalExample, zenUml]);
mermaid2.initialize(graphObj.mermaid);
await mermaid2.run();
await mermaid.registerExternalDiagrams([externalExample, zenUml]);
mermaid.initialize(graphObj.mermaid);
await mermaid.run();
}
};
@@ -95,18 +96,14 @@ const contentLoadedApi = async function () {
divs[i] = div;
}
const defaultE2eCnf = { theme: 'forest' };
const defaultE2eCnf = { theme: 'forest', startOnLoad: false };
const cnf = merge(defaultE2eCnf, graphObj.mermaid);
mermaid2.initialize(cnf);
mermaid.initialize(cnf);
for (let i = 0; i < numCodes; i++) {
const { svg, bindFunctions } = await mermaid2.render(
'newid' + i,
graphObj.code[i],
divs[i]
);
const { svg, bindFunctions } = await mermaid.render('newid' + i, graphObj.code[i], divs[i]);
div.innerHTML = svg;
bindFunctions(div);
}
@@ -114,24 +111,28 @@ const contentLoadedApi = async function () {
const div = document.createElement('div');
div.id = 'block';
div.className = 'mermaid';
console.warn('graphObj.mermaid', graphObj.mermaid);
console.warn('graphObj', graphObj);
document.getElementsByTagName('body')[0].appendChild(div);
mermaid2.initialize(graphObj.mermaid);
const { svg, bindFunctions } = await mermaid2.render('newid', graphObj.code, div);
mermaid.initialize(graphObj.mermaid);
const { svg, bindFunctions } = await mermaid.render('newid', graphObj.code, div);
div.innerHTML = svg;
console.log(div.innerHTML);
bindFunctions(div);
}
}
};
if (typeof document !== 'undefined') {
mermaid.initialize({
startOnLoad: false,
});
/*!
* Wait for document loaded before starting the execution
*/
window.addEventListener(
'load',
function () {
this.window.loadTime = Date.now();
if (this.location.href.match('xss.html')) {
this.console.log('Using api');
void contentLoadedApi().finally(markRendered);

View File

@@ -1,19 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<style>
/* .mermaid {
font-family: "trebuchet ms", verdana, arial;;
} */
/* .mermaid {
font-family: 'arial';
} */
</style>
</head>
<body>
<div id="graph-to-be"></div>
<script type="module" charset="utf-8">
import './bundle-test.js';
</script>
</body>
</html>

View File

@@ -1,6 +1,5 @@
<html>
<head>
<script src="./viewer.js" type="module"></script>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
.malware {
@@ -33,12 +32,6 @@
</script>
</head>
<body>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
startOnLoad: false,
useMaxWidth: true,
});
</script>
<script type="module" src="./viewer.js"></script>
</body>
</html>

139
demos/block.html Normal file
View File

@@ -0,0 +1,139 @@
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Block diagram demo page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
</head>
<body>
<h1>Block diagram demos</h1>
<pre id="diagram" class="mermaid">
block-beta
columns 1
db(("DB"))
blockArrowId6<["&nbsp;&nbsp;&nbsp;"]>(down)
block:ID
A
B["A wide one in the middle"]
C
end
space
D
ID --> D
C --> D
style B fill:#f9F,stroke:#333,stroke-width:4px
</pre>
<pre id="diagram" class="mermaid">
block-beta
A1["square"]
B1("rounded")
C1(("circle"))
A2>"rect_left_inv_arrow"]
B2{"diamond"}
C2{{"hexagon"}}
</pre>
<pre id="diagram" class="mermaid">
block-beta
A1(["stadium"])
A2[["subroutine"]]
B1[("cylinder")]
C1>"surprise"]
A3[/"lean right"/]
B2[\"lean left"\]
C2[/"trapezoid"\]
D2[\"trapezoid"/]
</pre>
<pre id="diagram" class="mermaid">
block-beta
block:e:4
columns 2
f
g
end
</pre>
<pre id="diagram" class="mermaid">
block-beta
block:e:4
columns 2
f
g
h
end
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 3
a:3
block:e:3
f
g
end
h
i
j
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 4
a b c d
block:e:4
columns 2
f
g
h
end
i:4
</pre>
<pre id="diagram" class="mermaid">
flowchart LR
X-- "a label" -->z
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 5
A space B
A --x B
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 3
a["A wide one"] b:2 c:2 d
</pre>
<pre id="diagram" class="mermaid">
block-beta
columns 3
a b c
e:3
f g h
</pre>
<pre id="diagram" class="mermaid">
block-beta
A1:3
A2:1
A3
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'default',
logLevel: 3,
securityLevel: 'loose',
block: {
padding: 10,
},
});
</script>
</body>
</html>

View File

@@ -3,6 +3,22 @@
<html>
<head>
<title>Mermaid development page</title>
<style>
.container {
display: flex;
flex-direction: row;
}
#code {
max-width: 30vw;
width: 30vw;
}
#dynamicDiagram {
padding-left: 2em;
flex: 1;
}
</style>
</head>
<body>
<pre id="diagram" class="mermaid">
@@ -13,22 +29,37 @@ graph TB
c --> d
</pre>
<div id="dynamicDiagram"></div>
<hr />
Type code to view diagram:
<div class="container">
<textarea name="code" id="code" cols="30" rows="10"></textarea>
<div id="dynamicDiagram"></div>
</div>
<pre class="mermaid">info</pre>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
console.error('Mermaid error: ', err);
};
async function render(str) {
const { svg } = await mermaid.render('dynamic', str);
document.getElementById('dynamicDiagram').innerHTML = svg;
}
const storeKey = window.location.pathname;
const code = localStorage.getItem(storeKey);
if (code) {
document.getElementById('code').value = code;
await render(code);
}
mermaid.initialize({
startOnLoad: true,
logLevel: 0,
});
const value = `graph TD\nHello --> World`;
const el = document.getElementById('dynamicDiagram');
const { svg } = await mermaid.render('dd', value);
console.log(svg);
el.innerHTML = svg;
document.getElementById('code').addEventListener('input', async (e) => {
const value = e.target.value;
localStorage.setItem(storeKey, value);
await render(value);
});
</script>
<script src="/dev/reload.js"></script>
</body>
</html>

22
demos/dev/reload.js Normal file
View File

@@ -0,0 +1,22 @@
// Connect to the server and reload the page if the server sends a reload message
const connectToEvents = () => {
const events = new EventSource('/events');
const loadTime = Date.now();
events.onmessage = (event) => {
const time = JSON.parse(event.data);
if (time && time > loadTime) {
location.reload();
}
};
events.onerror = (error) => {
console.error(error);
events.close();
// Try to reconnect after 1 second in case of errors
setTimeout(connectToEvents, 1000);
};
events.onopen = () => {
console.log('Connected to live reload server');
};
};
setTimeout(connectToEvents, 500);

35
demos/flowchart-elk.html Normal file
View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Flowchart ELK Test Page</title>
</head>
<body>
<h1>Flowchart ELK</h1>
<pre class="mermaid">
flowchart-elk TD
A([Start]) ==> B[Step 1]
B ==> C{Flow 1}
C -- Choice 1.1 --> D[Step 2.1]
C -- Choice 1.3 --> I[Step 2.3]
C == Choice 1.2 ==> E[Step 2.2]
D --> F{Flow 2}
E ==> F{Flow 2}
F{Flow 2} == Choice 2.1 ==> H[Feedback node]
H[Feedback node] ==> B[Step 1]
F{Flow 2} == Choice 2.2 ==> G((Finish))
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import flowchartELK from './mermaid-flowchart-elk.esm.mjs';
await mermaid.registerExternalDiagrams([flowchartELK]);
mermaid.initialize({
logLevel: 3,
});
</script>
</body>
</html>

View File

@@ -1102,6 +1102,57 @@
</pre>
<hr />
<h2>Sample 20</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
A["$$f(\relax{x}) = \int_{-\infty}^\infty \hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$$"] -->|"$$\Bigg(\bigg(\Big(\big((\frac{-b\pm\sqrt{b^2-4ac}}{2a})\big)\Big)\bigg)\Bigg)$$"| B("$$1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots}}}}$$")
A -->|"$$\overbrace{a+b+c}^{\text{note}}$$"| C("$$\phase{-78^\circ}$$")
B --> D("$$x = \begin{cases} a &\text{if } b \\ c &\text{if } d \end{cases}$$")
C --> E("$$x(t)=c_1\begin{bmatrix}-\cos{t}+\sin{t}\\ 2\cos{t} \end{bmatrix}e^{2t}$$")
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
flowchart LR
A["$$f(\relax{x}) = \int_{-\infty}^\infty \hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$$"] -->|"$$\Bigg(\bigg(\Big(\big((\frac{-b\pm\sqrt{b^2-4ac}}{2a})\big)\Big)\bigg)\Bigg)$$"| B("$$1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots}}}}$$")
A -->|"$$\overbrace{a+b+c}^{\text{note}}$$"| C("$$\phase{-78^\circ}$$")
B --> D("$$x = \begin{cases} a &\text{if } b \\ c &\text{if } d \end{cases}$$")
C --> E("$$x(t)=c_1\begin{bmatrix}-\cos{t}+\sin{t}\\ 2\cos{t} \end{bmatrix}e^{2t}$$")
</pre>
<hr />
<h2>Sample 21</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
A["$$\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\omicron\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega$$"] --> B["$$\Alpha\Beta\Gamma\Delta\Epsilon\Zeta\Eta\Theta\Iota\Kappa\Lambda\Mu\Nu\Xi\Omicron\Pi\Rho\Sigma\Tau\Upsilon\Phi\Chi\Psi\Omega$$"]
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
graph LR
A["$$\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\omicron\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega$$"] --> B["$$\Alpha\Beta\Gamma\Delta\Epsilon\Zeta\Eta\Theta\Iota\Kappa\Lambda\Mu\Nu\Xi\Omicron\Pi\Rho\Sigma\Tau\Upsilon\Phi\Chi\Psi\Omega$$"]
</pre>
<hr />
<h2>Sample 22</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
A["$$\forall\complement\therefore\emptyset\exists\subset\because\empty\exist\supset\mapsto\varnothing\nexists\mid\to\implies\in\land\gets\impliedby\isin\lor\leftrightarrow\iff\notin\ni\notni\lnot$$"] --> B["$$\nabla\Im\Reals\jmath\partial\image\wp\aleph\Game\weierp\alef\Finv\N\Z\alefsym\cnums\natnums\beth\Complex\R\gimel\ell\Re\daleth\hbar\real\eth\hslash\reals$$"]
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
graph LR
A["$$\forall\complement\therefore\emptyset\exists\subset\because\empty\exist\supset\mapsto\varnothing\nexists\mid\to\implies\in\land\gets\impliedby\isin\lor\leftrightarrow\iff\notin\ni\notni\lnot$$"] --> B["$$\nabla\Im\Reals\jmath\partial\image\wp\aleph\Game\weierp\alef\Finv\N\Z\alefsym\cnums\natnums\beth\Complex\R\gimel\ell\Re\daleth\hbar\real\eth\hslash\reals$$"]
</pre>
<hr />
<hr />
<pre class="mermaid">
@@ -1524,11 +1575,11 @@
F{Flow 2} == Choice 2.1 ==> H[Feedback node]
H[Feedback node] ==> B[Step 1]
F{Flow 2} == Choice 2.2 ==> G((Finish))
linkStyle 0,1,4,6,7,8,9 stroke:gold, stroke-width:4px
classDef active_node fill:#0CF,stroke:#09F,stroke-width:6px
classDef unactive_node fill:#e0e0e0,stroke:#bdbdbd,stroke-width:3px
classDef unactive_node fill:#e0e0e0,stroke:#bdbdbd,stroke-width:3px
classDef bugged_node fill:#F88,stroke:#F22,stroke-width:3px
classDef start_node,finish_node fill:#3B1,stroke:#391,stroke-width:8px

View File

@@ -30,6 +30,21 @@
</pre>
<hr />
<pre class="mermaid">
gantt
title #; Gantt Diagrams Allow Semicolons and Hashtags #;!
accTitle: A simple sample gantt diagram
accDescr: 2 sections with 2 tasks each, from 2014
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
</pre>
<hr />
<pre class="mermaid">
gantt
title Airworks roadmap

View File

@@ -81,6 +81,12 @@
<li>
<h2><a href="./sankey.html">Sankey</a></h2>
</li>
<li>
<h2><a href="./packet.html">Packet</a></h2>
</li>
<li>
<h2><a href="./block.html">Layered Blocks</a></h2>
</li>
</ul>
</body>
</html>

141
demos/packet.html Normal file
View File

@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Packet diagram demo</h1>
<div class="diagrams">
<pre class="mermaid">
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid">
---
config:
packet:
showBits: false
---
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid">
---
config:
theme: forest
---
packet-beta
title Forest theme
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid" style="background-color: black">
---
config:
theme: dark
---
packet-beta
title Dark theme
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
</div>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
logLevel: 3,
securityLevel: 'loose',
});
</script>
<style>
.diagrams {
display: flex;
flex-wrap: wrap;
}
pre {
width: 45vw;
padding: 2em;
}
</style>
</body>
</html>

View File

@@ -15,7 +15,7 @@
<body>
<h1>Pie chart demos</h1>
<pre class="mermaid">
pie title Pets adopted by volunteers
pie title Default text position: Animal adoption
accTitle: simple pie char demo
accDescr: pie chart with 3 sections: dogs, cats, rats. Most are dogs.
"Dogs": 386
@@ -27,7 +27,7 @@
<pre class="mermaid">
%%{init: {"pie": {"textPosition": 0.9}, "themeVariables": {"pieOuterStrokeWidth": "5px"}}}%%
pie
title Key elements in Product X
title Offset labels close to border: Product X
accTitle: Key elements in Product X
accDescr: This is a pie chart showing the key elements in Product X.
"Calcium": 42.96
@@ -36,8 +36,21 @@
"Iron": 5
</pre>
<pre class="mermaid">
%%{init: {"pie": {"textPosition": 0.45}, "themeVariables": {"pieOuterStrokeWidth": "5px"}}}%%
pie
title Centralized labels: Languages
accTitle: Key elements in Product X
accDescr: This is a pie chart showing the key elements in Product X.
"JavaScript": 30
"Python": 25
"Java": 20
"C#": 15
"Others": 10
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
logLevel: 3,

View File

@@ -16,50 +16,74 @@
<body>
<h1>Sequence diagram demos</h1>
<pre class="mermaid">
sequenceDiagram
accTitle: test the accTitle
accDescr: Test a description
sequenceDiagram
accTitle: test the accTitle
accDescr: Test a description
participant Alice
participant Bob
participant John as John<br />Second Line
link Alice: Dashboard @ https://dashboard.contoso.com/alice
link Alice: Wiki @ https://wiki.contoso.com/alice
link John: Dashboard @ https://dashboard.contoso.com/john
link John: Wiki @ https://wiki.contoso.com/john
autonumber 10 10
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: John thinks a long<br />long time, so long<br />that the text does<br />not fit on a row.
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: John thinks a long<br />long time, so long<br />that the text does<br />not fit on a row.
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John - we're still waiting to know<br />how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John<br />finally snaps out of it.
end
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John - we're still waiting to know<br />how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John<br />finally snaps out of it.
end
autonumber off
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
autonumber
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
autonumber 200
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
</pre>
autonumber off
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
autonumber
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
autonumber 200
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
</pre>
<hr />
<pre class="mermaid">
---
title: With forced menus
config:
sequence:
forceMenus: true
---
sequenceDiagram
participant Alice
participant John
link Alice: Dashboard @ https://dashboard.contoso.com/alice
link Alice: Wiki @ https://wiki.contoso.com/alice
link John: Dashboard @ https://dashboard.contoso.com/john
link John: Wiki @ https://wiki.contoso.com/john
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
</pre
>
<hr />
<pre class="mermaid">
sequenceDiagram
@@ -129,18 +153,18 @@
<hr />
<pre class="mermaid">
sequenceDiagram
box lightgreen Alice & John
participant A
participant J
end
box Another Group very very long description not wrapped
participant B
end
A->>J: Hello John, how are you?
J->>A: Great!
A->>B: Hello Bob, how are you ?
</pre
sequenceDiagram
box lightgreen Alice & John
participant A
participant J
end
box Another Group very very long description not wrapped
participant B
end
A->>J: Hello John, how are you?
J->>A: Great!
A->>B: Hello Bob, how are you ?
</pre
>
<hr />
@@ -163,7 +187,57 @@
Note left of Bob: Alice/Bob Note
end
</pre>
<pre class="mermaid">
sequenceDiagram
actor Alice
actor John
Alice-xJohn: Hello John, how are you?
John--xAlice: Great!
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
participant 1 as $$\frac{\lim_{x\rightarrow0}{\frac{1}{x}}}{\frac{-b\pm\sqrt{b^2-4ac}}{2a}}$$
participant 2 as $$\beta$$
participant 3 as $$\delta$$
participant 4 as $$\frac{\frac{\lim_{x\rightarrow0}{\frac{1}{x}}}{\frac{-b\pm\sqrt{b^2-4ac}}{2a}}}{\frac{\text{d}}{\text{d}x}{x^2}}$$
1->>2: $$\sqrt{2}$$
note right of 2: $$\frac{1+\frac{1+\frac{1+\frac{1}{2}}{2}}{2}}{2}+\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
2->>3: $$\frac{\lim_{x\rightarrow0}{\frac{1}{x}}}{\frac{-b\pm\sqrt{b^2-4ac}}{2a}}$$
note right of 3: $$\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
3->>4: $$\lim_{x\rightarrow0}{\frac{1}{x}}$$;
note right of 4: multiline
4->>1: multiline<br />using #lt;br /#gt;
note right of 1: multiline<br />$$\frac{1}{2}$$<br />3rd line
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
autonumber
participant 1 as $$\alpha$$lex
participant 2 as $$\beta$$ob
participant 3 as $$\theta$$iffany
1->>2: Hello John, does&nbsp; $$\frac{1}{2}+1=2$$?
loop $$\frac{1}{2}+1=2$$
2->>2: $$\frac{1}{2}+1=\frac{3}{2}$$
end
Note right of 2: $$x = \begin{cases} 1 &\text{if } \frac{1}{2}+1=2 \\ 0 &\text{if } \frac{1}{2}+1\ne2 \end{cases}$$
2-->>1: $$\frac{1}{2}+1\ne2\implies 1$$
2->>3: $$\frac{\text{d}}{\text{d}x}{3x^2+2x+1}$$
3-->>2: $$6x+2$$
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
actor Alice
actor John
Alice-xJohn: Hello John, how are you?
John--xAlice: Great!
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({

View File

@@ -137,7 +137,7 @@ config:
plotReservedSpacePercent: 60
---
xychart-beta
title "Sales Revene"
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
@@ -163,7 +163,7 @@ config:
plotColorPalette: "#008000, #faba63"
---
xychart-beta
title "Sales Revene"
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]

View File

@@ -8,7 +8,7 @@ services:
tty: true
working_dir: /mermaid
mem_limit: '8G'
entrypoint: '/mermaid/docker-entrypoint.sh'
entrypoint: docker-entrypoint.sh
environment:
- NODE_OPTIONS=--max_old_space_size=8192
volumes:

View File

@@ -132,7 +132,7 @@ All tests should run successfully without any errors or failures.
## Workflow
Contributing process is very simple and strightforward:
Contributing process is very simple and straightforward:
```mermaid
flowchart LR
@@ -370,13 +370,13 @@ If the users have no way to know that things have changed, then you haven't real
Likewise, if users don't know that there is a new feature that you've implemented, it will forever remain unknown and unused.
The documentation has to be updated for users to know that things have been changed and added!
If you are adding a new feature, add `(v<MERMAID_RELEASE_VERSION>+)` in the title or description. It will be replaced automatically with the current version number when the release happens.
If you are adding a new feature, add `(v10.8.0+)` in the title or description. It will be replaced automatically with the current version number when the release happens.
eg: `# Feature Name (v<MERMAID_RELEASE_VERSION>+)`
eg: `# Feature Name (v10.8.0+)`
We know it can sometimes be hard to code _and_ write user documentation.
Create another issue specifically for the documentation.\
Create another issue specifically for the documentation.
You will need to help with the PR, but definitely ask for help if you feel stuck.
When it feels hard to write stuff out, explaining it to someone and having that person ask you clarifying questions can often be 80% of the work!
@@ -401,14 +401,14 @@ The contents of [mermaid.js.org](https://mermaid.js.org/) are based on the docs
flowchart LR
classDef default fill:#fff,color:black,stroke:black
source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be publised on Official Website"]
source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be published on Official Website"]
```
```mermaid
flowchart LR
classDef default fill:#fff,color:black,stroke:black
source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be publised on Official Website"]
source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be published on Official Website"]
```
### Running the Documentation Website Locally
@@ -519,3 +519,5 @@ You have successfully submitted your improvements! What is next?
- When a release is ready, the `release/x.x.x` branch will be created, extensively tested and knsv will be in charge of the release process.
Thanks for you help!
<!--- cspell:ignore florbs --->

View File

@@ -43,7 +43,7 @@ Where to start:
- You could work on a new feature! [These](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Development%22+label%3A%22Type%3A+Enhancement%22+label%3A%22Status%3A+Approved%22+) are some ideas!
- You could confirm the bugs in [these issues](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Status%3A+Triage%22++label%3A%22Type%3A+Bug+%2F+Error%22).
[Join our slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE)
[You can join our Discord server if you want closer contact!](https://discord.gg/AgrbSrBer3)
## A Question Or a Suggestion?
@@ -55,6 +55,6 @@ If you have faced a vulnerability [report it to us](./security.md).
Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So, if you get stuck, ask for help and hints in the Slack forum. If you want to show off something good, show it off there.
[Join our Slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE)
[You can join our Discord server if you want closer contact!](https://discord.gg/AgrbSrBer3)
![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif)

View File

@@ -16,7 +16,7 @@ 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 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.
You may also reach out to the team via our public Discord 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

@@ -19,7 +19,7 @@ Mermaid will automatically insert the [aria-roledescription](#aria-roledescripti
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.):_
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-roledescription set to "stateDiagram". _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_
```html
<svg

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