Compare commits

...

976 Commits

Author SHA1 Message Date
Knut Sveidqvist
8e5275d844 Mermaid version v10.4.0 2023-08-25 14:19:00 +02:00
Knut Sveidqvist
c51afa4dd2 Merge branch 'release/10.4.0' 2023-08-25 14:16:18 +02:00
Knut Sveidqvist
671ad82ad3 unique batches every time, if not repeated tests end up in the same batch 2023-08-25 14:13:11 +02:00
Sidharth Vinod
9dccf4d9c9 chore: Update editor.bash to build latest version 2023-08-25 10:04:53 +05:30
Sidharth Vinod
6563a6ea26 chore: Build after clone 2023-08-25 09:43:53 +05:30
Sidharth Vinod
a3a6eb9bf5 chore: Force install npm to avoid cache. 2023-08-25 09:37:22 +05:30
Sidharth Vinod
5f8f79fc3e fix: live editor exists error 2023-08-25 09:15:21 +05:30
Sidharth Vinod
f553fa5eb8 Merge pull request #4769 from mermaid-js/sidv/liveEditor
chore: Preview PRs with mermaid-live-editor on Netlify
2023-08-25 03:00:42 +00:00
Sidharth Vinod
c3939d3fb3 chore: Add netlify.toml 2023-08-25 08:26:34 +05:30
Sidharth Vinod
32d1783390 chore: Update editor script
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-25 08:22:24 +05:30
Sidharth Vinod
54de763a66 chore: Add live editor build script for previews 2023-08-25 00:12:14 +05:30
Sidharth Vinod
2537152c7a Merge pull request #4768 from mermaid-js/latest-news
Docs: update Latest News section
2023-08-24 10:32:58 +00:00
Steph
14c1c1cc59 update latest news 2023-08-23 23:11:58 -07:00
Knut Sveidqvist
72b4a74bee Merge branch 'master' of github.com:mermaid-js/mermaid 2023-08-23 10:24:56 +02:00
Knut Sveidqvist
c3160b2693 Merge pull request #4748 from mermaid-js/feature/4674_sankeyValues
feat(sankey): Show values
2023-08-23 07:42:30 +00:00
Knut Sveidqvist
2ab393cd16 Merge pull request #4763 from mermaid-js/sidv/fixTypeImports
chore: Enforce type imports
2023-08-23 07:37:45 +00:00
Sidharth Vinod
bd98da16a0 Merge pull request #4744 from nirname/docs/2910_split-development-documentation
Split development documentation into several pages
2023-08-23 06:36:46 +00:00
Nikolay Rozhkov
cee2a458f1 Fixed docs according review
Update docs
2023-08-23 00:30:17 +03:00
Sidharth Vinod
ce6992ea9b docs: Fix sankey demo 2023-08-22 14:06:46 +05:30
Sidharth Vinod
0114a87f15 Merge branch 'develop' into feature/4674_sankeyValues
* develop:
  chore: Remove circular dependency
2023-08-22 13:58:55 +05:30
Sidharth Vinod
adfed1e432 Merge pull request #4750 from mermaid-js/feature/frontmatterConfig
feat: Support config in frontmatter.
2023-08-22 08:22:59 +00:00
Sidharth Vinod
11b599d77c chore: Fix type imports 2023-08-22 13:44:11 +05:30
Sidharth Vinod
3944e9ac00 chore: Remove circular dependency 2023-08-22 13:36:32 +05:30
Sidharth Vinod
37aa6632aa Merge branch 'feature/frontmatterConfig' into feature/4674_sankeyValues
* feature/frontmatterConfig:
  chore: Remove duplicate CI action
  chore: Add circular dependency check in CI
  refactor: Remove circular dependencies
2023-08-22 13:32:25 +05:30
Sidharth Vinod
7e251ee8bc Merge remote-tracking branch 'origin/develop' into feature/frontmatterConfig
* origin/develop:
  chore: Remove duplicate CI action
  chore: Add circular dependency check in CI
  refactor: Remove circular dependencies
2023-08-22 13:30:36 +05:30
Knut Sveidqvist
6e0f41180f Merge pull request #4761 from mermaid-js/sidv/RemoveCircularDeps
Remove Circular Dependencies
2023-08-22 07:37:32 +00:00
Sidharth Vinod
52f05552a1 chore: Remove duplicate CI action 2023-08-22 11:42:12 +05:30
Sidharth Vinod
bb01b3972d chore: Add circular dependency check in CI 2023-08-22 11:38:55 +05:30
Sidharth Vinod
1a50a326cb refactor: Remove circular dependencies 2023-08-22 11:38:25 +05:30
Sidharth Vinod
d21eb29672 Merge branch 'feature/frontmatterConfig' into feature/4674_sankeyValues
* feature/frontmatterConfig:
  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
  deps: Update unocss and webpack to address vulnerability.
  chore: Fix type in assignWithDepth
  refactor: Move `sanitizeDirective` into `addDirective`
  refactor: Rename and cleanup `directiveSanitizer`
  chore(deps): update all patch dependencies
  ci(release-drafter): add more release notes categories
2023-08-21 20:23:08 +05:30
Sidharth Vinod
fd45dbfc14 Merge branch 'develop' into feature/frontmatterConfig 2023-08-21 14:18:12 +00:00
sidharthv96
5c9eafabae Update docs 2023-08-21 09:36:24 +00:00
Sidharth Vinod
2b9dc0ea80 docs: Add frontmatter config demos 2023-08-21 15:02:29 +05:30
Sidharth Vinod
8ac7dc81e0 docs: Add frontmatter config docs 2023-08-21 15:02:05 +05:30
Sidharth Vinod
2967b3c1bb fix: XSS vulnerability 2023-08-21 14:25:25 +05:30
Sidharth Vinod
534fd85339 chore: Minor typo fixes 2023-08-21 12:53:29 +05:30
Sidharth Vinod
7298008374 Merge branch 'feature/frontmatterConfig' of https://github.com/mermaid-js/mermaid into feature/frontmatterConfig
* 'feature/frontmatterConfig' of https://github.com/mermaid-js/mermaid:
  Update docs
2023-08-21 12:30:23 +05:30
Sidharth Vinod
844a175039 chore: Add test with both frontmatter and directive 2023-08-21 12:30:04 +05:30
sidharthv96
fd35a54735 Update docs 2023-08-21 06:43:15 +00:00
Sidharth Vinod
a6e6c3fb18 feat: Add support for config in frontmatter 2023-08-21 12:09:38 +05:30
Sidharth Vinod
31c0a0cbab deps: Update unocss and webpack to address vulnerability. 2023-08-21 10:26:41 +05:30
Sidharth Vinod
767baa4ec6 chore: Fix type in assignWithDepth 2023-08-21 10:18:23 +05:30
Sidharth Vinod
f422a66dde refactor: Move sanitizeDirective into addDirective 2023-08-21 10:17:55 +05:30
Sidharth Vinod
fae976e994 refactor: Rename and cleanup directiveSanitizer 2023-08-21 10:13:48 +05:30
Sidharth Vinod
f4c62436ea Merge pull request #4753 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2023-08-21 03:53:05 +00:00
renovate[bot]
21d0998db8 chore(deps): update all patch dependencies 2023-08-21 03:01:21 +00:00
Sidharth Vinod
0899f7918a Merge pull request #4752 from mermaid-js/chore/add-more-release-notes-categories
ci(release-drafter): add more release notes categories
2023-08-21 02:55:59 +00:00
Alois Klink
7a547abd89 ci(release-drafter): add more release notes categories
Add the following new categories to the release notes:
  - **BREAKING CHANGES**
  - Performance
  - Documentation

I've also made the `feature`, `fix`, and `chore` label point to
their appropriate section.
2023-08-20 23:42:18 +01:00
Sidharth Vinod
4d84f1cd71 feat(sankey): Show values (#4674) 2023-08-20 21:18:09 +05:30
Sidharth Vinod
72fa3488b5 Merge pull request #4501 from Yokozuna59/standardized-pie-definitions
standardized pie definitions
2023-08-20 14:56:42 +00:00
Sidharth Vinod
cfffba2817 chore: Add comments on redirectMaps 2023-08-20 00:59:58 +05:30
Reda Al Sulais
e7ee3eb9ea Merge branch 'develop' into standardized-pie-definitions 2023-08-19 01:07:55 +03:00
Nikolay Rozhkov
7b45dbea1a Fixed links 2023-08-18 03:14:12 +03:00
Nikolay Rozhkov
341130856f Split development documentation in several separate pages, fixes for the sidebar menu
United similar sections at the intro page

Fix spelling

Update docs
2023-08-18 02:17:15 +03:00
Nikolay Rozhkov
b85c011cd1 Merge pull request #4742 from nirname/docs/2910_small-fixes
Fixes to Docs sidebar, main page and badges
2023-08-17 17:59:12 +00:00
Nikolay Rozhkov
aec97d68cc Fixed wrong collapsible option at the left menu, updated vue
Fixed badges

Rely on classes instead of DOM structure

Prettier

Update docs
2023-08-17 16:37:22 +03:00
Sidharth Vinod
7b7e281ec7 Merge pull request #4740 from jason-curtis/issue-2509-subgraph-direction-limitation
Documentation for #2509
2023-08-17 04:57:56 +00:00
Sidharth Vinod
35cc34d422 chore: Move SVG import to comment. 2023-08-17 10:28:50 +05:30
Jason Curtis
edb6ceae43 build docs 2023-08-17 03:48:00 +00:00
Jason Curtis
ef8b75a6da Remove whitespace on empty line 2023-08-17 03:32:42 +00:00
Reda Al Sulais
02daf5417b Merge branch 'standardized-pie-definitions' of https://github.com/Yokozuna59/mermaid into standardized-pie-definitions 2023-08-17 02:22:12 +03:00
Reda Al Sulais
77d8e15dc4 remove chart from pie.spec.ts description 2023-08-17 02:21:15 +03:00
Yokozuna59
62142089f1 Update docs 2023-08-16 22:47:51 +00:00
Reda Al Sulais
defe40692a change defaultConfig type to RequiredDeep and use it in pieDb 2023-08-17 01:42:41 +03:00
Jason Curtis
337ff3c32b Documentation for #2509 2023-08-16 21:12:32 +00:00
Reda Al Sulais
744cc792f4 Merge branch 'develop' into standardized-pie-definitions 2023-08-15 23:27:03 +03:00
Reda Al Sulais
99978da55b Merge pull request #4724 from Yokozuna59/chore/convert-svgDrawCommon-to-ts
convert `diagrams/common/svgDrawCommon.js` to ts
2023-08-15 16:41:11 +00:00
Reda Al Sulais
50eb3cf1c9 Merge branch 'develop' into chore/convert-svgDrawCommon-to-ts 2023-08-15 19:37:02 +03:00
Reda Al Sulais
c1b9c54fc9 use DiagramStylesProvider in pieStyles.ts 2023-08-15 17:56:18 +03:00
Reda Al Sulais
0d179c501e Merge branch 'develop' into standardized-pie-definitions 2023-08-15 14:01:09 +03:00
Sidharth Vinod
085e8f78b3 Merge pull request #4731 from mermaid-js/renovate/patch-all-patch
Update all patch dependencies (patch)
2023-08-14 11:05:49 +00:00
Sidharth Vinod
f9d4a62609 Merge pull request #4732 from mermaid-js/renovate/all-minor
Update all minor dependencies (minor)
2023-08-14 11:04:27 +00:00
renovate[bot]
2a8374312f Update all minor dependencies 2023-08-14 03:07:45 +00:00
renovate[bot]
b60410161d Update all patch dependencies 2023-08-14 02:02:28 +00:00
Reda Al Sulais
d219f92a19 Merge branch 'develop' into chore/convert-svgDrawCommon-to-ts 2023-08-13 17:45:37 +03:00
Reda Al Sulais
3f3a7340e3 remove setConfig and resetConfig in pie 2023-08-12 21:18:07 +03:00
Reda Al Sulais
cb5f70c139 add structuredClone in pie getConfig 2023-08-12 21:09:14 +03:00
Reda Al Sulais
99c1758490 make more RectData required and remove optional assignment 2023-08-12 20:25:10 +03:00
Sidharth Vinod
43217e1395 Merge branch 'master' into develop
* master:
  Version update and adjusted error diagram
  Fix for broker error diagram related #4178
  Adding new flowchart tests related to issue #2139
  Fix for interim issue with classes in state diagrams
  #2139 Applying user defined classes properly when calculating shape width
  chore: Ignore localhost
  Update packages/mermaid/src/docs/community/development.md
  Update docs/community/development.md
  docs: Add development example page.
2023-08-12 17:04:25 +05:30
Sidharth Vinod
aa34b99203 Merge remote-tracking branch 'origin/release/10.3.1'
* origin/release/10.3.1: (85 commits)
  Version update and adjusted error diagram
  Fix for broker error diagram related #4178
  Adding new flowchart tests related to issue #2139
  Fix for interim issue with classes in state diagrams
  use default export in `error` diagram
  create `ParserDefinition` type
  standardized `error` diagram'
  #2139 Applying user defined classes properly when calculating shape width
  style: format packages/mermaid/src/config.type.ts
  build(types): use prettier conf on config.types.ts
  Syntax Update CONTRIBUTING.md
  docs: Correct detectType filename
  chore: Minor cleanups
  chore: remove comment
  chore: Remove comments, cleanup
  fix!(deps): fix zenuml style leakage. update @zenuml/core to ^3.0.6 to fix the style leakage.
  Update selectSvgElement.ts
  create `Group` type
  Add specialChars in textNoTagsToken, alphaNumToken
  Return Unicode Text to idStringToken definition
  ...
2023-08-12 17:04:06 +05:30
Reda Al Sulais
541ee1eade Merge remote-tracking branch 'upstream/develop' into chore/convert-svgDrawCommon-to-ts 2023-08-11 23:07:45 +03:00
Reda Al Sulais
f01ad644e3 Merge remote-tracking branch 'upstream/develop' into standardized-pie-definitions
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-08-11 22:44:05 +03:00
Reda Al Sulais
9538233573 use lineBreakRegex in svgDrawCommon 2023-08-11 21:16:53 +03:00
Reda Al Sulais
5a2ea7c297 fix svgDrawCommon import by adding .js 2023-08-11 21:13:17 +03:00
Reda Al Sulais
22b172d873 add types to svgDrawCommon.ts 2023-08-11 20:56:00 +03:00
Reda Al Sulais
92098e23eb convert svgDrawCommon to TS 2023-08-11 20:54:39 +03:00
Sidharth Vinod
591cb794eb Merge pull request #4717 from Yokozuna59/chore/convert-assignWithDepth-to-ts
convert `assignWithDepth` to TS
2023-08-11 17:32:40 +00:00
Reda Al Sulais
f9d978859e Merge branch 'develop' into standardized-pie-definitions 2023-08-11 19:56:22 +03:00
Reda Al Sulais
6170538c47 Merge branch 'develop' into chore/convert-assignWithDepth-to-ts 2023-08-11 19:54:57 +03:00
Reda Al Sulais
c37c494a1e Update assignWithDepth.ts 2023-08-11 19:54:37 +03:00
Knut Sveidqvist
8ed9ddc7aa Merge branch 'release/10.3.1' 2023-08-11 14:21:10 +02:00
Knut Sveidqvist
a0b80f5490 Version update and adjusted error diagram 2023-08-11 14:03:56 +02:00
Knut Sveidqvist
493023118f Fix for broker error diagram related #4178 2023-08-11 13:59:16 +02:00
Knut Sveidqvist
c5e7e6040c Adding new flowchart tests related to issue #2139 2023-08-11 13:58:19 +02:00
Knut Sveidqvist
c938c7a438 Fix for interim issue with classes in state diagrams 2023-08-11 13:57:26 +02:00
Knut Sveidqvist
c7bcf72c69 Merge branch 'develop' into release/10.4.0 2023-08-11 11:46:30 +02:00
Sidharth Vinod
da602add5d Merge pull request #4697 from mermaid-js/sidv/fixTripleParsing
fix: Remove triple parsing of diagrams
2023-08-11 15:14:33 +05:30
Knut Sveidqvist
9049a99c8d Merge pull request #4722 from mermaid-js/2139-handling-styling-properly-when-calculating-width
#2139 Applying user defined classes properly when calculating shape width
2023-08-11 09:58:29 +02:00
Knut Sveidqvist
60957519c8 Merge branch 'develop' into release/10.4.0 2023-08-11 09:43:58 +02:00
Reda Al Sulais
8a8e062342 cleanAndMerge pieConfig 2023-08-11 03:55:04 +03:00
Reda Al Sulais
1721282182 Merge branch 'develop' into standardized-pie-definitions 2023-08-11 01:46:33 +03:00
Reda Al Sulais
d8dd68cad2 redeclare config parameter add default value for each variable 2023-08-11 01:42:26 +03:00
Reda Al Sulais
9b9ad1da7d Merge pull request #4718 from Yokozuna59/chore/standardized-error-definitions
standardized `error` diagram
2023-08-10 22:35:02 +00:00
Reda Al Sulais
0d380bb2c7 Merge branch 'develop' into chore/standardized-error-definitions 2023-08-11 01:24:47 +03:00
Reda Al Sulais
120bdabee1 Merge branch 'develop' into standardized-pie-definitions 2023-08-11 01:04:06 +03:00
Reda Al Sulais
9ab048c7e9 use default export in error diagram 2023-08-11 00:55:31 +03:00
Reda Al Sulais
a5a3ffc768 Merge pull request #2 from mermaid-js/sidv/cleanMerge
Sidv/clean merge
2023-08-11 00:49:38 +03:00
Sidharth Vinod
1078b1c8f6 Merge pull request #4719 from Yokozuna59/chore/create-ParserDefinition-type
create `ParserDefinition` type
2023-08-10 21:35:57 +00:00
Sidharth Vinod
dfeb25127b remove cleanClone 2023-08-11 02:50:24 +05:30
Sidharth Vinod
396bda8d95 feat: Add cleanAndMerge and tests 2023-08-11 02:47:46 +05:30
Sidharth Vinod
cc70d37166 chore: Rename utils.spec.ts 2023-08-11 02:38:57 +05:30
Reda Al Sulais
3f5da06bb0 move db assignment from beforeEach to beforeAll 2023-08-10 22:43:39 +03:00
Reda Al Sulais
be106befff create structuredCleanClone helper function 2023-08-10 23:10:06 +03:00
Reda Al Sulais
980a5ac8b5 create ParserDefinition type 2023-08-10 22:26:04 +03:00
Reda Al Sulais
d5f11fc80a convert assignWithDepth to TS 2023-08-10 22:09:14 +03:00
Reda Al Sulais
46de343785 standardized error diagram'
* remove empty `styles.js`
* use named imports/exports instead of default
* remove unnecessary data in diagram definition
2023-08-10 22:07:39 +03:00
Reda Al Sulais
c4113541e1 Merge remote-tracking branch 'upstream/develop' into standardized-pie-definitions 2023-08-10 21:44:29 +03:00
Reda Al Sulais
fb49f25eef add more types to pieRenderer 2023-08-10 21:36:39 +03:00
Reda Al Sulais
a9681d1b1c add resetConfig to clear in pieDb 2023-08-10 21:19:56 +03:00
Reda Al Sulais
545d361d3f rename reset to resetConfig 2023-08-10 21:01:32 +03:00
Sidharth Vinod
66b579cd89 Merge pull request #4715 from aloisklink/chore/use-our-prettier-config-for-types
Use our prettier config on the `packages/mermaid/src/config.type.ts` file
2023-08-10 14:36:03 +00:00
Knut Sveidqvist
c55a0947be #2139 Applying user defined classes properly when calculating shape width 2023-08-10 13:15:16 +02:00
Alois Klink
0b9f6d1ff9 style: format packages/mermaid/src/config.type.ts
Run `pnpm run --filter mermaid types:build-config` to format
the `packages/mermaid/src/config.type.ts` file with the new prettier
config.
2023-08-09 19:22:30 +01:00
Alois Klink
7742a6c485 build(types): use prettier conf on config.types.ts
Currently, the `packages/mermaid/src/config.type.ts` types file
(auto-generated via `pnpm run --filter mermaid types:build-config`)
uses the default prettier config.

Instead, we should use the prettier config in the Mermaid repo, as it's
slightly different from the default prettier config.
2023-08-09 19:15:09 +01:00
Nikolay Rozhkov
3e598f4e8e Merge pull request #4714 from mermaid-js/sidv/exampleDev
docs: Add development example page.
2023-08-09 17:08:29 +03:00
Sidharth Vinod
eb397fdb04 Merge branch 'sidv/exampleDev' of https://github.com/mermaid-js/mermaid into sidv/exampleDev
* 'sidv/exampleDev' of https://github.com/mermaid-js/mermaid:
  Update packages/mermaid/src/docs/community/development.md
  Update docs/community/development.md
2023-08-09 19:00:01 +05:30
Sidharth Vinod
6c1afb7a8d chore: Ignore localhost 2023-08-09 18:59:55 +05:30
Sidharth Vinod
fee6f459a8 Update packages/mermaid/src/docs/community/development.md 2023-08-09 17:44:49 +05:30
Sidharth Vinod
e128a11f3b Update docs/community/development.md 2023-08-09 17:44:24 +05:30
Reda Al Sulais
38dc17f426 use structedClone in pieDb 2023-08-09 14:12:08 +03:00
Reda Al Sulais
453c67e5ea remove PieDiagramConfig and import generated one 2023-08-09 13:47:08 +03:00
Reda Al Sulais
a69a97fdd9 remove unnecessary lines in pie files 2023-08-09 13:41:01 +03:00
Reda Al Sulais
820cc48c11 Merge remote-tracking branch 'upstream/develop' into standardized-pie-definitions 2023-08-09 13:31:34 +03:00
Sidharth Vinod
06e4a6398c docs: Add development example page. 2023-08-09 14:59:50 +05:30
Sidharth Vinod
85a988c31c Merge pull request #4713 from soomrozaid/soomrozaid-patch-1
Syntax Update CONTRIBUTING.md
2023-08-09 07:58:58 +00:00
Zaid Soomro
776035553a Syntax Update CONTRIBUTING.md 2023-08-09 01:04:04 -06:00
Reda Al Sulais
ca1cdb1d94 remove unused HTML import in pieRenderer 2023-08-08 19:00:27 +03:00
Reda Al Sulais
5485517b27 remove SVG import logs in setupGraphViewbox 2023-08-08 18:55:46 +03:00
Reda Al Sulais
96380600d9 Merge remote-tracking branch 'upstream/develop' into standardized-pie-definitions 2023-08-08 15:02:23 +03:00
Sidharth Vinod
da8112afa5 Merge branch 'develop' into sidv/fixTripleParsing
* develop: (59 commits)
  fix!(deps): fix zenuml style leakage. update @zenuml/core to ^3.0.6 to fix the style leakage.
  Update selectSvgElement.ts
  create `Group` type
  Add specialChars in textNoTagsToken, alphaNumToken
  Return Unicode Text to idStringToken definition
  Add underscore to unit test on special Chars
  Revert to old docs concerning quotations marks in string
  Refactor unit tests and remove repetition
  Correct idStringToken definition to include all individual special tokens
  Add unit tests for node ids with special Chars
  Create lychee.toml
  create `selectSvgElement`
  change `svgElem` to `SVG` in `configureSvgSize`
  add `configureSvgSize` in infoRenderer
  run docs:build
  remove info sandbox test case
  Remove replaceAll method in addLink
  Modify HREF token regex to contain space
  Add unit tests for stange node names
  Remove escaped quotes with backslash feature
  ...
2023-08-08 13:37:02 +05:30
Sidharth Vinod
bae9a7c1b8 docs: Correct detectType filename 2023-08-08 11:13:45 +05:30
Sidharth Vinod
776b219c03 chore: Minor cleanups 2023-08-08 00:31:17 +05:30
Sidharth Vinod
4471001ef2 chore: remove comment
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-08 00:24:38 +05:30
Sidharth Vinod
bcb0817ecd Merge pull request #4705 from danshuitaihejie/fix_zenuml_style_leakage
fix!(deps): fix zenuml style leakage.
2023-08-07 18:50:03 +00:00
Sidharth Vinod
646f7662d0 chore: Remove comments, cleanup
Co-authored-by: Alois Klink <alois@aloisklink.com>
Co-authored-by: Nikolay Rozhkov <nironame@gmail.com>
Co-authored-by: Yokozuna59 <u.yokozuna@gmail.com>
2023-08-07 15:12:37 +05:30
Reda Al Sulais
9563b22132 refactor pieRenderer 2023-08-06 21:23:42 +03:00
danshuitaihejie
6df76d93e5 fix!(deps): fix zenuml style leakage.
update @zenuml/core to ^3.0.6 to fix the style leakage.
2023-08-07 00:21:57 +08:00
Reda Al Sulais
e6a18eea91 Merge remote-tracking branch upstream/develop into standardized-pie-definitions 2023-08-06 18:30:51 +03:00
Reda Al Sulais
7da38b9afe Merge pull request #4514 from Yokozuna59/resolve-info-html-assignment
resolve info `HTML` and `Document` assignment
2023-08-06 15:16:00 +00:00
Reda Al Sulais
71205f5bd6 Merge branch 'mermaid-js:develop' into standardized-pie-definitions 2023-08-05 21:33:03 +03:00
Reda Al Sulais
1802f5d0c0 Update selectSvgElement.ts 2023-08-05 20:45:23 +03:00
Reda Al Sulais
ef29388d68 Merge branch 'develop' into resolve-info-html-assignment 2023-08-05 19:03:35 +03:00
Nikolay Rozhkov
e1379ee048 Merge pull request #4657 from ibrahimWassouf/bug/4645_graph_node_containing_keyword
Bug/4645 graph node containing keyword
2023-08-05 15:56:32 +00:00
Reda Al Sulais
4845635f48 create Group type 2023-08-05 16:00:06 +03:00
Ibrahim Wassouf
34bf618ecb Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-08-03 20:25:51 -04:00
Ibrahim Wassouf
c9db0ee749 Add specialChars in textNoTagsToken, alphaNumToken
This will ensure that alphaNumToken does not lose any of
the previously used tokens in its definition. The same
tokens were added to textNoTagsToken explicitly, because it used to
have alphaNumToken in its definition before I removed it.

Previously, textNoTagsToken and alphaNumToken had many tokens in
common in their definition. To avoid grammar conflicts, the
alphaNumStatement grammar was created. However, I found this
unintuitive and was an extra step just to avoid repetition in
the definitions.

I opted to have repetition in the definitions of textNoTagsToken
and alphaNumToken and it be explicitly clear right away, rather than
have extra grammar statements like alphaNumStatement which don't look
like they do anything at first glance
2023-08-03 21:05:41 -03:00
Ibrahim Wassouf
850513fa3d Return Unicode Text to idStringToken definition 2023-08-03 20:58:37 -03:00
Ibrahim Wassouf
aaf333676c Add underscore to unit test on special Chars 2023-08-03 20:15:11 -03:00
Ibrahim Wassouf
5a165e4c1d Revert to old docs concerning quotations marks in string 2023-08-03 20:11:50 -03:00
Ibrahim Wassouf
ee6fa94aa2 Refactor unit tests and remove repetition 2023-08-03 20:05:11 -03:00
Reda Al Sulais
23b6d53f80 Merge branch 'standardized-pie-definitions' of https://github.com/Yokozuna59/mermaid into standardized-pie-definitions 2023-08-04 01:33:29 +03:00
Reda Al Sulais
f4671e4e3a Merge branch 'mermaid-js:develop' into standardized-pie-definitions 2023-08-04 01:32:12 +03:00
Ibrahim Wassouf
971215e353 Correct idStringToken definition to include all individual special tokens 2023-08-03 19:15:23 -03:00
Ibrahim Wassouf
199fdce982 Add unit tests for node ids with special Chars 2023-08-03 18:59:39 -03:00
Reda Al Sulais
90c8dd1dab Merge branch 'develop' into resolve-info-html-assignment 2023-08-04 00:42:55 +03:00
Sidharth Vinod
f8ebfeefec Merge pull request #4699 from mermaid-js/lychee-config
Lychee config
2023-08-03 19:13:59 +00:00
Matthieu MOREL
8db2fb8f90 Create lychee.toml
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2023-08-03 19:04:24 +00:00
Reda Al Sulais
e2fac72166 create selectSvgElement 2023-08-03 21:34:22 +03:00
Reda Al Sulais
c954e0eb1d rename styles.ts into pieStyles.ts 2023-08-03 21:00:22 +03:00
Reda Al Sulais
de37efefd7 add type for PieStyleOptions 2023-08-03 20:58:39 +03:00
Reda Al Sulais
bdfd8974d4 change default useWidth in pie to 984 2023-08-03 20:56:18 +03:00
Sidharth Vinod
95efc1786f fix: unitTests after tripleParsing removal 2023-08-03 23:21:49 +05:30
Reda Al Sulais
0c55e4c2ad Merge branch 'develop' into resolve-info-html-assignment 2023-08-03 20:44:29 +03:00
Sidharth Vinod
10d5b5d1d6 fix: Remove triple parsing of diagrams 2023-08-03 22:54:37 +05:30
Sidharth Vinod
23fea41fb4 Merge branch 'master' into develop
* master:
  fix: #4676 redirect fix
  fix style in contributors section of intro
  add latest blog post
2023-08-03 22:16:17 +05:30
Reda Al Sulais
a4f778f4de change svgElem to SVG in configureSvgSize 2023-08-03 15:55:05 +03:00
Reda Al Sulais
bb6664a2c6 add configureSvgSize in infoRenderer 2023-08-03 15:47:31 +03:00
Sidharth Vinod
939d082a8e Merge pull request #4668 from mermaid-js/latest-news
Docs: add latest blog post
2023-08-02 23:52:50 +05:30
Steph
b26449f338 Merge branch 'master' into latest-news 2023-08-02 11:18:28 -07:00
Reda Al Sulais
b99eb8b624 run docs:build 2023-08-02 16:30:55 +03:00
Reda Al Sulais
ffdfe11f10 Merge branch 'develop' into resolve-info-html-assignment 2023-08-02 16:26:15 +03:00
Reda Al Sulais
7465384e1d remove info sandbox test case 2023-08-02 16:18:21 +03:00
Reda Al Sulais
aecf451ed1 update pnpm-lock.yaml 2023-08-02 15:55:02 +03:00
Reda Al Sulais
7d69ad2d5b Merge remote-tracking branch upstream/develop into standardized-pie-definitions 2023-08-02 15:54:23 +03:00
Reda Al Sulais
74fa9956a3 run pnpm lint:fix 2023-08-02 15:46:18 +03:00
Reda Al Sulais
e33340331a add type-fest to mermaid dev deps 2023-08-02 15:44:44 +03:00
Sidharth Vinod
bdd9394d0b Merge pull request #4693 from mermaid-js/sidv/fix/4676
fix: #4676 redirect fix
2023-08-02 09:40:37 +05:30
Sidharth Vinod
7ebfc272e4 fix: #4676 redirect fix 2023-08-02 09:36:40 +05:30
Sidharth Vinod
b87f1f2098 Merge pull request #4692 from mermaid-js/dependabot/npm_and_yarn/pnpm-8.6.8
build(deps-dev): bump pnpm from 8.3.1 to 8.6.8
2023-08-02 03:08:17 +00:00
Sidharth Vinod
c9c2f6c121 Merge pull request #4677 from djadmin/chore_dompurify_unpin_dependency
chore(deps): unpin the dompurify dependency
2023-08-02 03:06:18 +00:00
Sidharth Vinod
585834c561 Merge pull request #4689 from Incognito/chore/4678_misleading-ts-ignore-comment
chore: ts-ignore comment was misleading, JISON doesn't support types
2023-08-02 03:05:51 +00:00
Ibrahim Wassouf
dc57fcf7e7 Remove replaceAll method in addLink 2023-08-01 16:46:37 -03:00
dependabot[bot]
8b79060829 build(deps-dev): bump pnpm from 8.3.1 to 8.6.8
Bumps [pnpm](https://github.com/pnpm/pnpm) from 8.3.1 to 8.6.8.
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Commits](https://github.com/pnpm/pnpm/compare/v8.3.1...v8.6.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 17:07:15 +00:00
Ibrahim Wassouf
daf43f8d34 Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-08-01 11:07:25 -04:00
Brian Graham
4cdb43f791 ts-ignore comment was misleading, JISON doesn't support types 2023-08-01 14:30:58 +02:00
Sidharth Vinod
660162686b Merge pull request #4681 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2023-08-01 12:16:41 +00:00
Sidharth Vinod
6e2bf00a43 Merge pull request #4688 from Incognito/docs/4659_new-diagrams-no-directives
Docs: Directives not needed in new diagrams as yaml formatter does this for all new diagrams
2023-08-01 12:16:20 +00:00
Brian Graham
cc01ff9129 Directives not needed in new diagrams as yaml formatter does this for all new diagrams 2023-08-01 14:08:41 +02:00
Ibrahim Wassouf
7dc985712a Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-08-01 06:59:12 -04:00
Ibrahim Wassouf
e3c5e6f095 Modify HREF token regex to contain space
This attempts to maintain the current behaviour.
Previously, because HREF contained a space and called
a state, the href token was able to be placed in the
beginning of node ids (because it wouldn't conflict
without the space). We require the space to keep that
behaviour.
2023-08-01 07:54:48 -03:00
Ibrahim Wassouf
ef4f22841f Add unit tests for stange node names 2023-08-01 07:54:32 -03:00
renovate[bot]
c292c897a1 chore(deps): update all patch dependencies 2023-08-01 08:42:21 +00:00
Alois Klink
cc7fd337ac Merge pull request #4687 from mermaid-js/dependabot/npm_and_yarn/vite-4.3.9
build(deps-dev): bump vite from 4.3.3 to 4.3.9
2023-08-01 08:28:15 +00:00
Alois Klink
6b41420ddd Merge pull request #4686 from mermaid-js/dependabot/npm_and_yarn/braintree/sanitize-url-6.0.1
build(deps): bump @braintree/sanitize-url from 6.0.0 to 6.0.1
2023-08-01 08:27:58 +00:00
Alois Klink
351b229c37 Merge pull request #4685 from mermaid-js/dependabot/npm_and_yarn/json5-2.2.3
build(deps-dev): bump json5 from 2.2.1 to 2.2.3
2023-08-01 08:27:48 +00:00
dependabot[bot]
266a5e8133 build(deps-dev): bump vite from 4.3.3 to 4.3.9
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.3 to 4.3.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.3.9/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 06:38:37 +00:00
dependabot[bot]
55963107d0 build(deps): bump @braintree/sanitize-url from 6.0.0 to 6.0.1
Bumps [@braintree/sanitize-url](https://github.com/braintree/sanitize-url) from 6.0.0 to 6.0.1.
- [Changelog](https://github.com/braintree/sanitize-url/blob/main/CHANGELOG.md)
- [Commits](https://github.com/braintree/sanitize-url/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: "@braintree/sanitize-url"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 06:38:16 +00:00
dependabot[bot]
a7e37d0c8b build(deps-dev): bump json5 from 2.2.1 to 2.2.3
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 06:36:36 +00:00
Sidharth Vinod
ead48600be Merge pull request #4682 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2023-08-01 06:28:51 +00:00
Ibrahim Wassouf
834c67ecaa Remove escaped quotes with backslash feature 2023-07-31 22:47:05 -03:00
renovate[bot]
1a99825ab2 chore(deps): update all minor dependencies 2023-07-31 01:25:54 +00:00
Ibrahim Wassouf
b5456813e8 Show escaped quotes in docs using old and new method 2023-07-29 22:44:18 -03:00
Ibrahim Wassouf
ed4feaebf2 Remove required space from TAGEND token regex
Originally, I thought this was necessary to prevent parsing
the token as part of an edge. I forgot that the token will always
be separated from the link/edge by the node id. Added an unit test
for an edge case to be certain.
2023-07-29 22:27:31 -03:00
Ibrahim Wassouf
844f9d96e7 Update and add new imgSnapshotTest 2023-07-29 22:16:28 -03:00
Ibrahim Wassouf
bed05ce061 Disallow any vertex shape start or end token in any text state 2023-07-29 21:23:05 -03:00
Ibrahim Wassouf
f269f8cc5b Refactor unit tests for vertex shape 2023-07-29 21:14:02 -03:00
Ibrahim Wassouf
e25763d645 Modified docs to mention escaping quotes with backslash 2023-07-28 21:19:30 -03:00
Dheeraj Joshi
6c12bbb80f chore(deps): unpin the dompurify dependency 2023-07-28 16:02:17 +05:30
Ibrahim Wassouf
d8897426cd Correct edge strings to have same configuration as vertex strings 2023-07-27 09:29:26 -03:00
Ibrahim Wassouf
9eed2e278b Add imgSnapshotTest for escaped quotes 2023-07-27 09:29:26 -03:00
Ibrahim Wassouf
1df68f9a5f Remove class statement to show application of default class 2023-07-27 09:29:26 -03:00
Sidharth Vinod
1397a873c2 Merge pull request #4670 from keer4n/docs/fix-style-in-contributors-section-of-intro
fix style in contributors section of intro
2023-07-27 17:27:36 +05:30
Ibrahim Wassouf
1dfb400a46 Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-07-26 16:59:54 -04:00
Knut Sveidqvist
35299978a4 Merge branch 'master' into develop 2023-07-26 09:49:59 +02:00
Knut Sveidqvist
165e0b6c68 Merge pull request #4669 from mermaid-js/release/10.3.0
Release/10.3.0
2023-07-26 09:49:15 +02:00
Knut Sveidqvist
9c92f779ae Updates after testing and new version for mermaid-zenuml 2023-07-26 09:44:24 +02:00
Kiran
304d8844f0 fix style in contributors section of intro 2023-07-26 00:19:50 -06:00
Sidharth Vinod
aa54127784 Set proper release version 2023-07-26 11:34:10 +05:30
Sidharth Vinod
21b90cbcd2 Add release version 2023-07-26 11:33:20 +05:30
Sidharth Vinod
e1ca108b00 Update version 2023-07-26 11:26:07 +05:30
Sidharth Vinod
29d078c822 Merge branch 'master' into release/10.3.0
* master:
  chore: Rename C4C to C4
  update latest news section
  Corrects name of C4 link
  Bump zenuml package version
2023-07-26 11:23:24 +05:30
Sidharth Vinod
40d30b7045 Merge remote-tracking branch 'origin/release/10.3.2' into develop
* origin/release/10.3.2:
2023-07-26 11:21:11 +05:30
Sidharth Vinod
dbee34aba7 fix: edgeLabel width 2023-07-26 11:14:46 +05:30
Ibrahim Wassouf
9655ba9e63 Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-07-25 20:57:14 -03:00
Ibrahim Wassouf
fd461b7860 Reimplement old alphaNumToken 2023-07-25 20:56:08 -03:00
Ibrahim Wassouf
30a9b5574d Correct classDef and class grammar
Previously, you were allowed to define a class called 'default'
but were not allowed to use it because the classStatement grammar
expected an alphanum, which did not include the word DEFAULT
2023-07-25 20:35:08 -03:00
Steph
edf94790f2 add latest blog post 2023-07-25 10:22:17 -07:00
Sidharth Vinod
68909a43f7 Update lockfile 2023-07-25 21:57:48 +05:30
Sidharth Vinod
d178626bac Merge branch 'develop' into release/10.4.0
* develop:
  Add MERMAID_RELEASE_VERSION in sankey
2023-07-25 21:55:24 +05:30
Sidharth Vinod
d69a2f7895 Merge branches 'develop' and 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid: (21 commits)
  Add comments
  Update packages/mermaid/src/rendering-util/types.d.ts
  Remove redundant test. Already checked in lint.
  Update docs
  Fix lint
  Update packages/mermaid/src/rendering-util/splitText.spec.ts
  Add comments
  Add tests without Intl.Segmenter
  Cleanup
  Fix flowchart failure
  Handle proper formatting for markdown strings
  createText to TS
  Use joiner to split unicode
  Add types
  rename handle-markdown-text
  Add logs
  Cleanup
  Use splitLineToFitWidth function
  Update docs
  feat: split unicode properly
  ...

* 'develop' of https://github.com/mermaid-js/mermaid: (21 commits)
  Add comments
  Update packages/mermaid/src/rendering-util/types.d.ts
  Remove redundant test. Already checked in lint.
  Update docs
  Fix lint
  Update packages/mermaid/src/rendering-util/splitText.spec.ts
  Add comments
  Add tests without Intl.Segmenter
  Cleanup
  Fix flowchart failure
  Handle proper formatting for markdown strings
  createText to TS
  Use joiner to split unicode
  Add types
  rename handle-markdown-text
  Add logs
  Cleanup
  Use splitLineToFitWidth function
  Update docs
  feat: split unicode properly
  ...
2023-07-25 21:54:32 +05:30
Knut Sveidqvist
97f457ca4a Merge branch 'develop' into release/10.4.0 2023-07-25 17:30:24 +02:00
Sidharth Vinod
48c8311369 Add MERMAID_RELEASE_VERSION in sankey 2023-07-25 20:49:54 +05:30
Knut Sveidqvist
c99e1c689e Merge pull request #4470 from mermaid-js/sidv/splitUnicode
Split formatted markdown strings with unicode support.
2023-07-25 15:16:01 +00:00
Knut Sveidqvist
15c6dfcbb5 Updates after tests 2023-07-25 16:43:09 +02:00
Sidharth Vinod
651bc980d2 Merge branch 'sidv/splitUnicode' of https://github.com/mermaid-js/mermaid into sidv/splitUnicode
* 'sidv/splitUnicode' of https://github.com/mermaid-js/mermaid:
  Update packages/mermaid/src/rendering-util/types.d.ts
2023-07-25 20:10:17 +05:30
Sidharth Vinod
841ae15fb5 Add comments 2023-07-25 20:10:05 +05:30
Sidharth Vinod
a7d40724b4 Update packages/mermaid/src/rendering-util/types.d.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-07-25 19:13:54 +05:30
Sidharth Vinod
409dedb3ef Remove redundant test.
Already checked in lint.
2023-07-25 19:08:40 +05:30
sidharthv96
4ea1227e29 Update docs 2023-07-25 13:33:37 +00:00
Sidharth Vinod
68305fea9e Fix lint 2023-07-25 18:56:58 +05:30
Sidharth Vinod
ea192ccf4d Merge branch 'develop' into sidv/splitUnicode 2023-07-25 18:55:34 +05:30
Sidharth Vinod
509a580f9d Merge pull request #4396 from gjtorikian/patch-2
Fix a typo
2023-07-25 18:54:56 +05:30
Sidharth Vinod
db9051b03e Merge pull request #4660 from Incognito/patch-1
Docs: Corrects name of C4 link
2023-07-25 18:53:14 +05:30
Sidharth Vinod
91ae9a2901 Merge branch 'master' into pr/Incognito/4660
* master:
  update latest news section
2023-07-25 18:41:26 +05:30
Sidharth Vinod
27d98728a6 chore: Rename C4C to C4 2023-07-25 17:42:12 +05:30
Knut Sveidqvist
cfbd38d5fa Merge branch 'develop' into release/10.4.0 2023-07-25 13:02:43 +02:00
Knut Sveidqvist
c67b4178bd Merge pull request #4667 from mermaid-js/develop
2023-07-25
2023-07-25 11:56:58 +02:00
Sidharth Vinod
9ea4b1388f Merge pull request #4666 from kgilbert78/docs/add-typora-to-integrations-list
added Typora to integrations list
2023-07-25 07:57:14 +00:00
Sidharth Vinod
934735372f Merge pull request #4655 from mermaid-js/update-latest-news
Docs: update Latest News section
2023-07-25 13:26:31 +05:30
Steph
28bb0df6c8 update latest news section 2023-07-24 22:15:22 -07:00
Ibrahim Wassouf
20cd685ae3 Allow escaped quotations in strings 2023-07-24 22:43:55 -03:00
Ibrahim Wassouf
47c100809b Add unit tests for all cases of TEXT and STR combinations 2023-07-24 21:46:28 -03:00
Ibrahim Wassouf
651274bc6f Only allow quotes to wrap entire string 2023-07-24 21:23:21 -03:00
Ibrahim Wassouf
4cfbd0d380 Remove unused definitions 2023-07-24 21:05:17 -03:00
Ibrahim Wassouf
45d92769aa Change rest of grammar statements to use variable name instead of position 2023-07-24 21:04:36 -03:00
kgilbert78
3e3e784fd9 added Typora to integrations list 2023-07-24 13:24:33 -04:00
Sidharth Vinod
1f3902e598 Merge pull request #4662 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2023-07-24 07:01:06 +00:00
Sidharth Vinod
3ef02ee66f Merge pull request #4663 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2023-07-24 07:00:51 +00:00
Ibrahim Wassouf
474e0b9c82 Refactor vertex grammars to use name values instead of position in production 2023-07-23 21:54:42 -03:00
Ibrahim Wassouf
087738df78 Refactor statement grammars to use name values instead of positions in production 2023-07-23 21:39:21 -03:00
Ibrahim Wassouf
fa8e02721a Refactor directive grammar to use name instead of position in production 2023-07-23 21:32:52 -03:00
Ibrahim Wassouf
4b9773a272 Refactor token precedence that concern vertex text states 2023-07-23 21:25:19 -03:00
renovate[bot]
45400240d4 chore(deps): update all minor dependencies 2023-07-24 00:19:12 +00:00
renovate[bot]
e4699ef02a chore(deps): update all patch dependencies 2023-07-24 00:18:49 +00:00
Brian Graham
60cf043c3d Corrects name of C4 link 2023-07-23 08:27:54 +02:00
Ibrahim Wassouf
fd88b424b4 Add unit test for vertex and edge having both strings and text 2023-07-22 15:09:24 -03:00
Ibrahim Wassouf
3ab0e9998d Remove href state and give call higher precedence
Similar to what was done in the class diagram parser,
this will allow string tokens to appear in any state.
This is especially helpful, because it will simplify the
code and any future refactoring
2023-07-22 14:39:45 -03:00
Ibrahim Wassouf
f48a9c8696 Merge branch 'develop' into bug/4645_graph_node_containing_keyword 2023-07-21 21:12:16 -03:00
Ibrahim Wassouf
eea0ea5e07 Add unit tests for node id strings with keywords 2023-07-21 21:10:37 -03:00
Ibrahim Wassouf
20011c6882 Add unit tests for edge text 2023-07-21 20:44:37 -03:00
Ibrahim Wassouf
0cc8f89115 Add edgeText states 2023-07-21 19:40:04 -03:00
Ibrahim Wassouf
8ff06e88ce Correct expected error message in unit test 2023-07-21 18:27:20 -03:00
Ibrahim Wassouf
3fa3ed7b18 Remove grammar and unit test that expects HEX token
This was never really used and had many things wrong with it.
I believe that if a hex was provided in the diagram specification,
the alphanum grammar would break it up into a BRKT and NUM token
and use the first line with the addVertex() function.

Second, the styleLink grammar provides the exact same functionality
with the linkStyle keyword.

Third, updateLink() expects an array of nums, not a hex digit.

Fourth, no documentation is provided on this grammar statement existing.
Fifth, the unit test does not work in version 10.2.4
2023-07-21 18:15:43 -03:00
Ibrahim Wassouf
0a4e5f5f6b Slightly alter unit test node idString 2023-07-21 18:15:27 -03:00
Ibrahim Wassouf
0d7cc748b8 Replace alphanum with idString where appropriate 2023-07-21 17:33:33 -03:00
Nikolay Rozhkov
a3c645c3eb Merge pull request #4639 from mastersibin/feature/4451-vertical-branches-in-gitgraph
feat | Vertical branches in Git Diagram
2023-07-21 16:30:06 +00:00
Sibin Thomas
bb7b3491e5 Merge branch 'develop' into feature/4451-vertical-branches-in-gitgraph 2023-07-21 14:00:01 +05:30
Ibrahim Wassouf
69c91ae5ed Add unit test for edge case with lean_right/left vertices 2023-07-21 00:06:18 -03:00
Ibrahim Wassouf
7adb1bccb3 Replace alphanum with NODE_STRING for most usecases
What this allows is for idStrings that are separated by
dashes or underscores to be considered one whole string
rather than a bunch of tokens mixed together.

This is necessary for examples such as a-node-graph[text].
Now, the last part of the idString 'graph' will be read as
part of the NODE_STRING token rather than attempting to add
a GRAPH token to the idString.
2023-07-20 23:49:43 -03:00
Alois Klink
38f2ff0bca Merge pull request #4652 from mermaid-js/dependabot/npm_and_yarn/word-wrap-1.2.4
build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4
2023-07-20 22:05:59 +00:00
dependabot[bot]
cd0da4e060 build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-20 17:44:05 +00:00
Sibin Thomas
df89b92e2c ran docs:build for documentation 2023-07-20 21:45:47 +05:30
Ibrahim Wassouf
5b987dee93 Put parser in stable state 2023-07-20 13:05:18 -03:00
Sibin Thomas
114f918417 Merge branch 'develop' into feature/4451-vertical-branches-in-gitgraph 2023-07-20 21:29:56 +05:30
Sibin Thomas
346a7fe8b2 Merge branch 'feature/4451-vertical-branches-in-gitgraph' of https://github.com/mastersibin/mermaid into feature/4451-vertical-branches-in-gitgraph 2023-07-20 21:28:21 +05:30
Sibin Thomas
8ae35c1382 updated documentation for vertical branches 2023-07-20 21:27:34 +05:30
Sidharth Vinod
687a9a08d7 Merge pull request #4612 from mermaid-js/sidv/docsVersion
Support MERMAID_RELEASE_VERSION in docs.
2023-07-20 15:30:11 +00:00
Sidharth Vinod
478d350188 Update .github/pull_request_template.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-07-20 20:48:12 +05:30
Sidharth Vinod
4795204719 Merge branch 'develop' into sidv/docsVersion
* develop:
  build(docs): handle YAML edgecases in markdown
  run pnpm lint:fix
  Update cypress/helpers/util.ts
  change deprecated `btoa` into `Buffer.from`
  allow ts extension imports in cypress ts files
  build(docs): allow using custom `editLink`
  build(docs): add `editLink: ` to MD frontmatter
  build(docs): run remark plugins on MermaidConfig
  Fix import file extension
  Batch by commit
  resolve lint issues for `no-inferrable-types`
  fix wrong config paramater in some cypress spec
  convert cypress/helpers/util.js into ts
  convert file from js into ts
2023-07-20 20:46:53 +05:30
Sibin Thomas
99e88e4d0d Merge branch 'develop' into feature/4451-vertical-branches-in-gitgraph 2023-07-20 16:03:19 +05:30
Sibin Thomas
a171903088 added tests for overlapping commits 2023-07-20 13:15:05 +05:30
Sidharth Vinod
1b2340ba75 Merge pull request #4640 from aloisklink/docs/fix-edit-url
Fix the "Edit this page on GitHub" link in Vitepress documentation for the Mermaid Config pages
2023-07-20 06:59:46 +00:00
Ibrahim Wassouf
3496f275bc Re-implement markdown as its own text type 2023-07-19 22:56:53 -03:00
Ibrahim Wassouf
b46c28425e Add text state and tests 2023-07-19 22:49:39 -03:00
Alois Klink
4d2d790cc8 build(docs): handle YAML edgecases in markdown
Our current method of adding a entry using `+=` is not safe in YAML,
since it's valid to make a YAML object entirely in JSON,
see https://github.com/mermaid-js/mermaid/pull/4640#discussion_r1265133463

We're already using `js-yaml` elsewhere in this file, so we may as well
use it for parsing/stringifying.

Reported-by: Remco Haszing <remcohaszing@gmail.com>
2023-07-19 23:40:46 +01:00
Sidharth Vinod
477bb4308d Merge pull request #4552 from Yokozuna59/convert-cypress-util-to-ts
convert `cypress/helpers/util.js` to ts
2023-07-19 17:49:42 +00:00
Yokozuna59
8cd8714aaf run pnpm lint:fix 2023-07-19 23:45:02 +03:00
Sidharth Vinod
e25faeee4c Update cypress/helpers/util.ts 2023-07-19 22:36:55 +05:30
Sibin Thomas
cba5b5a7e3 ran preetier 2023-07-19 21:55:24 +05:30
Yokozuna59
66e5f8ae18 Merge branch 'develop' into convert-cypress-util-to-ts 2023-07-19 19:09:58 +03:00
Sibin Thomas
52a4f8f077 added tests for vertical branches 2023-07-19 20:22:59 +05:30
Sibin Thomas
d81e4fabd5 positioned tags, tilted commit labels and fixed some bugs 2023-07-19 20:22:29 +05:30
Sibin Thomas
863d1bfd4d removed BT and added TB 2023-07-19 20:21:15 +05:30
Sibin Thomas
9c2afac319 Merge branch 'mermaid-js:develop' into feature/4451-vertical-branches-in-gitgraph 2023-07-19 20:13:53 +05:30
Sidharth Vinod
568d686d2f Merge branch 'develop' into sidv/docsVersion 2023-07-18 22:07:42 +05:30
Sidharth Vinod
3fcb071592 Move docs.cli to scripts 2023-07-18 22:06:43 +05:30
Sidharth Vinod
483385b2f6 Update PR template 2023-07-18 21:59:00 +05:30
Sidharth Vinod
fff3acd064 Verify release-version on push to release or master 2023-07-18 21:55:44 +05:30
Sidharth Vinod
e66135b67e Merge pull request #4496 from moka-care/bug/4439_graph_doesnt_load_when_img_fail_to_load
Fix graph not loading when the img loads too fast or fail to load
2023-07-18 07:57:38 +00:00
Yokozuna59
072638ce9d Merge pull request #4634 from leinelissen/develop
feat: allow specifying on which weekday a tickInterval should start
2023-07-18 07:33:08 +00:00
Yokozuna59
d9314a869a change deprecated btoa into Buffer.from 2023-07-17 15:58:58 +03:00
Yokozuna59
662eb431ab allow ts extension imports in cypress ts files 2023-07-17 15:53:26 +03:00
Yokozuna59
bed8710dbb Merge branch 'mermaid-js:develop' into convert-cypress-util-to-ts 2023-07-17 15:31:11 +03:00
Sidharth Vinod
38c0a94067 Merge pull request #4633 from ibrahimWassouf/bug/4592_fix_newLine_padding_class_diagram
Bug/4592 fix new line padding class diagram
2023-07-17 09:50:47 +00:00
Sidharth Vinod
d3006f6298 chore: Remove numbers from tests 2023-07-17 15:16:05 +05:30
Sidharth Vinod
24f04bb24d Merge branch 'develop' into bug/4592_fix_newLine_padding_class_diagram 2023-07-17 15:11:39 +05:30
Sidharth Vinod
b5bcc3b992 Revert "Refactor integration tests"
This reverts commit 80add648e6.
2023-07-17 15:11:14 +05:30
Sidharth Vinod
48a49b1b4d Merge pull request #4588 from ibrahimWassouf/enhancement/4158_Add_primary_key_beginning_with_asterisk
Allow entity diagram attribute names to start with asterisk
2023-07-17 09:26:46 +00:00
Sidharth Vinod
5e6d42cb5b Merge pull request #4641 from aloisklink/chore/remove-unused-coveralls-devDependency
chore: remove unused `devDependency` on coveralls
2023-07-17 09:20:02 +00:00
Sidharth Vinod
417c69d7e2 Merge pull request #4646 from guilhermgonzaga/docs/fix_checkbox_format
docs: Fix checkbox syntax
2023-07-17 09:07:08 +00:00
Guilherme Gonzaga
855f6ef9bf docs: Fix checkbox syntax 2023-07-16 23:16:37 +00:00
Alois Klink
a0a25ed756 chore: remove unused devDependency on coveralls
This `devDependency` hasn't been used for a long time.
2023-07-16 00:21:43 +01:00
Alois Klink
af9b3f77cb build(docs): allow using custom editLink
In Vitepress, allow using a custom `editLink`, if specified in the YAML
frontmatter.
2023-07-15 23:43:24 +01:00
Alois Klink
57ee181fad build(docs): add editLink: to MD frontmatter
Add a YAML front-matter entry called `editLink` to Markdown files in
Vitepress, e.g.

```markdown
---
editLink: "https://github.com/mermaid-js/mermaid/edit/develop/packages/mermaid/src/schemas/config.schema.yaml"
---

Here is my markdown file!
```

Although Vitepress doesn't officially support adding a URL as a
`editLink:` YAML front-matter, we can add a custom `editLink` function
to our Vitepress config that does allow it.
2023-07-15 23:43:24 +01:00
Yokozuna59
39ccad8e5e Merge branch 'develop' into develop 2023-07-15 15:44:19 +02:00
Lei Nelissen
7e39c13836 chore: narrow down tstype 2023-07-15 15:38:21 +02:00
Lei Nelissen
85515bcf8d chore: leave the newLine out of the jison spec 2023-07-15 15:28:48 +02:00
Sibin Thomas
383bbefa9e Added code for Vertical branches for GitGraph and Added TB option in the parser file. 2023-07-15 18:27:42 +05:30
Ibrahim Wassouf
9b9671b57c Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-15 08:50:01 -04:00
Ibrahim Wassouf
d6c88ab589 Merge branch 'develop' into bug/4592_fix_newLine_padding_class_diagram 2023-07-15 08:49:38 -04:00
Sidharth Vinod
840609af63 Merge pull request #4577 from kislerdm/bug/4576-c4-support-for-ContainerQueue_Ext
Fixes support of the macro `ContainerQueue_Ext` for C4 diagrams definition.
2023-07-15 07:35:05 +00:00
Lei Nelissen
eff9f7e5db chore: re-generate config 2023-07-15 00:24:02 +02:00
Lei Nelissen
803cd826ed chore: replace switch-case with map 2023-07-15 00:17:10 +02:00
Lei Nelissen
90c68f5069 chore: add tsType for weekday config 2023-07-15 00:17:09 +02:00
Lei Nelissen
103321bf72 chore: return after scanning weekday in jison 2023-07-15 00:17:09 +02:00
Lei Nelissen
d0afc3bffe feat: validate individual values of weekdays 2023-07-14 14:13:18 +02:00
Lei Nelissen
11f2e31ff1 fix: also set weekday value to sunday in clear 2023-07-14 14:13:18 +02:00
Lei Nelissen
d9c15b1e7a chore: move spec test to it.each 2023-07-14 14:13:18 +02:00
Lei Nelissen
4e8eeda30e chore: also apply weekday to topXAxis 2023-07-14 14:13:18 +02:00
Lei Nelissen
cfe31fe89f chore: generate new docs 2023-07-14 14:13:18 +02:00
Lei Nelissen
ebf639377b chore: generate typescript config type 2023-07-14 14:13:18 +02:00
Lei Nelissen
37adc23ae2 chore: also default to sundat in ganttDb 2023-07-14 14:13:18 +02:00
Lei Nelissen
5f7212c769 chore: move default value to config.schema.yaml 2023-07-14 14:13:18 +02:00
Lei Nelissen
cd92c46f31 chore: format example more correctly 2023-07-14 14:13:18 +02:00
Lei Nelissen
df10ab501a chore: add tests for all days 2023-07-14 14:13:18 +02:00
Lei Nelissen
0d7427ed20 chore: add cypress test 2023-07-14 14:13:18 +02:00
Lei Nelissen
e360e90f88 chore: move documentation to source file 2023-07-14 14:13:18 +02:00
Lei Nelissen
03ce2810b5 feat: allow specifying on which weekday a tickInterval should start 2023-07-14 14:13:18 +02:00
Lei Nelissen
5631a218d1 fix: make gantt chart interval weeks start on monday instead of sunday 2023-07-14 14:13:18 +02:00
Alois Klink
7cb009cd38 build(docs): run remark plugins on MermaidConfig
We use the `unified.stringify()` function on our remark plugins to
stringify the Markdown AST for our MermaidConfig documentation.
However, [`.stringify()`][1] only runs the stringify phase in unified,
not the "run" phase. If we want to run our plugins on the Markdown AST,
we need to also use the [`.run()`][2] function.

[1]: https://github.com/unifiedjs/unified#processorstringifytree-file
[2]: https://github.com/unifiedjs/unified#processorruntree-file-done
2023-07-13 23:59:27 +01:00
Ibrahim Wassouf
bb220b8b87 Add test for string label 2023-07-13 16:53:29 -03:00
Ibrahim Wassouf
80add648e6 Refactor integration tests 2023-07-13 16:43:52 -03:00
Ibrahim Wassouf
081d1b1144 Merge branch 'develop' into bug/4592_fix_newLine_padding_class_diagram 2023-07-13 16:38:47 -03:00
Sidharth Vinod
946b5f161e Merge pull request #4623 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2023-07-13 19:09:27 +00:00
Ibrahim Wassouf
e9f032cceb Update packages/mermaid/src/dagre-wrapper/nodes.js
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-07-13 15:57:58 -03:00
Ibrahim Wassouf
aeba7a1d0e Update packages/mermaid/src/dagre-wrapper/nodes.js
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-07-13 15:57:28 -03:00
Yokozuna59
14d3d203d7 Merge branch 'develop' into convert-cypress-util-to-ts 2023-07-13 17:29:33 +02:00
Dmitry Kisler
584b51d7c5 Merge branch 'develop' into bug/4576-c4-support-for-ContainerQueue_Ext 2023-07-13 12:07:46 +02:00
Ibrahim Wassouf
12c657f514 Add imgSnapshotTests 2023-07-12 16:46:29 -03:00
Ibrahim Wassouf
d47c9d754a Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-11 20:04:20 -03:00
Ibrahim Wassouf
d2ab132a18 Change class member height to use own BBox 2023-07-11 19:39:39 -03:00
renovate[bot]
d46ef4cc91 chore(deps): update all patch dependencies 2023-07-11 17:19:31 +00:00
Nikolay Rozhkov
0a493c79ff Merge pull request #4631 from nirname/refactoring/removed-unused-code-in-state-diagrams
Removed unused code in state diagrams
2023-07-11 17:13:03 +00:00
Nikolay Rozhkov
3664ff4463 Removed unused code in state diagrams 2023-07-11 18:12:27 +03:00
Pierrick Wauquier
9e5ccbe13f Merge branch 'develop' into bug/4439_graph_doesnt_load_when_img_fail_to_load 2023-07-11 17:10:19 +02:00
Nikolay Rozhkov
cd1765a012 Merge pull request #4597 from ibrahimWassouf/bug/4590_allow_notes_identical_to_keywords
Bug/4590 allow notes identical to keywords
2023-07-11 11:52:33 +00:00
Ibrahim Wassouf
1bafc7b84f Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-10 19:35:24 -04:00
Ibrahim Wassouf
7bf1d38bad Merge branch 'develop' into bug/4590_allow_notes_identical_to_keywords 2023-07-10 19:34:51 -04:00
Sidharth Vinod
8e0cb185e9 Merge pull request #4624 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2023-07-10 06:58:59 +00:00
renovate[bot]
47f46c8a46 chore(deps): update all minor dependencies 2023-07-10 01:17:36 +00:00
Ibrahim Wassouf
e127b146e9 Add more test cases 2023-07-08 17:46:28 -03:00
Ibrahim Wassouf
c59fee8de2 Split tests to have one parse statement in each test 2023-07-08 17:20:56 -03:00
Ibrahim Wassouf
00bb2a1f68 Revert back to single quotes for generic grammar 2023-07-08 14:45:06 -03:00
Ibrahim Wassouf
007724a7c7 Merge branch 'develop' into bug/4590_allow_notes_identical_to_keywords 2023-07-08 13:34:28 -04:00
Ibrahim Wassouf
f82407a2f0 Make unit test regex unit test more accurate 2023-07-08 14:33:57 -03:00
Ibrahim Wassouf
4bec3188de Reformat code 2023-07-08 14:12:45 -03:00
Ibrahim Wassouf
fbb6eb849e Give call higher precedence than STR 2023-07-08 14:07:46 -03:00
Ibrahim Wassouf
6a40f4b955 Decouple HREF token from STR and correct grammar 2023-07-08 13:34:51 -03:00
Ibrahim Wassouf
58b2b0993a Give STR token higher precedence 2023-07-08 13:29:48 -03:00
Ibrahim Wassouf
d05d249080 Undo state changes 2023-07-08 13:28:45 -03:00
Ibrahim Wassouf
1e781c0c90 Refactor unit tests 2023-07-08 13:23:46 -03:00
Sidharth Vinod
eca2efa46d Update packages/mermaid/src/rendering-util/splitText.spec.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-07-08 19:01:45 +05:30
Ibrahim Wassouf
23f27d151a Remove redundancy in unit tests 2023-07-07 22:44:34 -03:00
Ibrahim Wassouf
cd118ad5cb Update erDiagram to make entity names in singular form 2023-07-07 19:59:52 -03:00
Ibrahim Wassouf
cf0a9c3016 Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-07 14:31:45 -04:00
Sidharth Vinod
0cdf801884 Fix import file extension 2023-07-07 17:21:18 +05:30
Sidharth Vinod
07df9eeb60 Rename docs.cli.mts 2023-07-07 15:57:05 +05:30
Sidharth Vinod
962ff73fc3 Batch by commit 2023-07-07 15:56:30 +05:30
Yokozuna59
f0bf6bf574 Merge branch 'develop' into convert-cypress-util-to-ts 2023-07-07 11:17:22 +02:00
Sidharth Vinod
79d38cef4b Run docs:release-version in CI 2023-07-07 11:32:00 +05:30
Sidharth Vinod
88856a721f Support MERMAID_RELEASE_VERSION in docs 2023-07-07 11:28:04 +05:30
Sidharth Vinod
60c2d494a1 Merge pull request #4607 from mermaid-js/fix/prLabeler
Run PR-labeler-config-validator only if config changes
2023-07-07 05:15:14 +00:00
Sidharth Vinod
0f4af09398 Add Area: Documentation to labeler 2023-07-07 10:32:13 +05:30
Sidharth Vinod
052e9db16a Remove filter action 2023-07-07 10:30:59 +05:30
Sidharth Vinod
4648532814 Update .github/workflows/pr-labeler-config-validator.yml
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-07-07 10:29:58 +05:30
Sidharth Vinod
9263f75e5b Update .github/pr-labeler.yml
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-07-07 10:27:56 +05:30
Sidharth Vinod
8348a2f2d8 Merge pull request #4610 from aloisklink/test/remove-old-default-config-test
Remove the test checking whether the JSON Schema default config matched the old default config
2023-07-07 04:41:00 +00:00
Sidharth Vinod
28406fc9c4 Add comments 2023-07-07 10:05:05 +05:30
Sidharth Vinod
d58c41dbc0 Add tests without Intl.Segmenter 2023-07-07 10:02:04 +05:30
Ibrahim Wassouf
5d76c033f0 Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-06 21:18:38 -04:00
Ibrahim Wassouf
fad11bce95 Correct one unit test and add another 2023-07-06 22:17:33 -03:00
Ibrahim Wassouf
42da53f58a Add imgSnapshotTest 2023-07-06 22:15:18 -03:00
Alois Klink
8167f8c1df Revert "test(config): add temp test for defaultConfig"
This reverts commit 063cb124cd.

This file was originally added to test whether the new implementation
of the default config in
`packages/mermaid/src/schemas/config.schema.yaml` matched the old
existing default config in `packages/mermaid/src/oldDefaultConfig.ts`,
and this test is no longer needed.
2023-07-07 02:05:43 +01:00
Alois Klink
2b53e02153 test: fix 'new default config' test
This test was accidentally removed by a bad merge commit, see
29291c89 (Merge branch 'develop' into pr/aloisklink/4112, 2023-07-06).

This test checks whether the default config defined in the
`config.schema.yaml` file matches the old default config defined in
`oldDefaultConfig.ts`.

Fixes: 29291c8901
2023-07-07 02:01:03 +01:00
Ibrahim Wassouf
4af2fca339 Add documentation for feature 2023-07-06 19:40:54 -03:00
Sidharth Vinod
b14bcda12a Merge branch 'develop' into sidv/splitUnicode 2023-07-06 22:08:51 +05:30
Sidharth Vinod
1682fa1e53 Update PR Labeler config 2023-07-06 22:05:58 +05:30
Sidharth Vinod
355586f297 Run PR-labeler-config-validator only if config changes 2023-07-06 22:03:48 +05:30
Sidharth Vinod
7d996c3d33 Cleanup 2023-07-06 21:48:18 +05:30
Sidharth Vinod
194ef202ac Merge pull request #4603 from mermaid-js/sidv/optimiseDocs
Avoid downloading avtars everytime on docs:dev
2023-07-06 16:10:53 +00:00
Sidharth Vinod
bcffff3b7b Terminate build in CI if download fails 2023-07-06 21:36:10 +05:30
Sidharth Vinod
d4281d365d Add Yokozuna59 & nirname 2023-07-06 21:29:40 +05:30
Sidharth Vinod
5ac70bbc00 Fix flowchart failure 2023-07-06 21:22:28 +05:30
Sidharth Vinod
60a93f7377 Handle proper formatting for markdown strings 2023-07-06 20:34:17 +05:30
Sidharth Vinod
f5484636aa createText to TS 2023-07-06 16:12:09 +05:30
Sidharth Vinod
b0a104e3da Merge branch 'develop' into sidv/splitUnicode
* develop: (293 commits)
  chore: Remove lint warnings in example-diagram
  chore: Reduce codecov pushes
  Turn off codecov project status check
  build(docs): fix links to `config.schema.json`
  ci(lint): check if MermaidConfig types are in sync
  docs: add link to mermaid config docs in sidebar
  test(config): add temp test for defaultConfig
  build(types): create types from config JSON Schema
  build(types): add script to generate Config types
  build(docs): build JSON Schema docs
  build: use vite to get default mermaid config
  feat: add Mermaid Config in JSON Schema format
  docs: add support for ```regexp``` code blocks
  test: test partial QuadrantChartConfig options
  test: fix types in `config.spec.ts`
  style: fix lint issues in src/config.spec.ts
  test: rename src/config.spec.js to config.spec.ts
  fix(quadrant): make quadrant options optional
  fix lint
  update homepage community link
  ...
2023-07-06 16:00:11 +05:30
Sidharth Vinod
48050333a0 Merge branch 'develop' into sidv/optimiseDocs 2023-07-06 15:57:01 +05:30
Sidharth Vinod
c17dc15c57 chore: Rename to teamMembers 2023-07-06 15:54:27 +05:30
Sidharth Vinod
34abbcadae Merge pull request #4604 from mermaid-js/sidv/fixCodecov
chore: Reduce codecov pushes
2023-07-06 10:20:26 +00:00
Sidharth Vinod
2b5da79cdf Merge pull request #4112 from aloisklink/add-jsonschema-schema-for-config
Use JSON Schema to define and document `MermaidConfig`
2023-07-06 10:03:55 +00:00
Sidharth Vinod
2366ca85b3 Merge branch 'develop' into sidv/fixCodecov 2023-07-06 11:59:44 +05:30
Sidharth Vinod
aaec16ed6c chore: Remove lint warnings in example-diagram 2023-07-06 11:58:55 +05:30
Sidharth Vinod
a3d95ceec4 Bump zenuml package version 2023-07-06 11:36:16 +05:30
Sidharth Vinod
4d0c461fa3 chore: Reduce codecov pushes
pushes to non-develop branches will not send coverage reports.
This might reduce the coverage variability issue we're having.
2023-07-06 11:32:37 +05:30
Sidharth Vinod
db30f21ac5 Turn off codecov project status check 2023-07-06 11:16:41 +05:30
Sidharth Vinod
d2e62022f1 Avoid downloading avtars everytime on docs:dev 2023-07-06 11:09:09 +05:30
Sidharth Vinod
29291c8901 Merge branch 'develop' into pr/aloisklink/4112
* develop:
  test: test partial QuadrantChartConfig options
  test: fix types in `config.spec.ts`
  style: fix lint issues in src/config.spec.ts
  test: rename src/config.spec.js to config.spec.ts
  fix lint
  update homepage community link
  docs(flowchart): add documentation on multiple nodes style
  Add docker-specific command, leave commonly used command intact
  Support docs:dev in docker
  Fix lint.
  Update docs
  add ChatGPT plugin blog post
  Fix flowchart tooltip typing
2023-07-06 10:42:13 +05:30
Sidharth Vinod
1a4e5d9c5a Merge pull request #4562 from lishid/patch-3
Fix flowchart tooltip typing bug
2023-07-06 04:19:08 +00:00
Sidharth Vinod
e80e281a66 Merge pull request #4600 from tomperr/docs/4558-multiple-vertices-with-style
docs(flowchart): add documentation on multiple nodes style
2023-07-06 04:10:43 +00:00
Nikolay Rozhkov
04597d29c0 Merge pull request #4599 from nirname/fix/support-docs-dev-in-docker
Support docs:dev in docker
2023-07-06 04:04:18 +00:00
Sidharth Vinod
43df84a4d5 Merge branch 'master' into develop
* master:
  fix lint
  update homepage community link
  Update docs
  add ChatGPT plugin blog post
2023-07-06 09:34:26 +05:30
Sidharth Vinod
a753b1f18b Merge branch 'develop' into fix/support-docs-dev-in-docker 2023-07-06 09:29:51 +05:30
Sidharth Vinod
d80095bbef Merge pull request #4601 from mermaid-js/homepage-community-link
Docs: update link - "Join the Community"
2023-07-06 09:26:10 +05:30
Sidharth Vinod
4d79f42d0e Merge pull request #4602 from aloisklink/fix/make-quadrant-chart-options-optional
Make quadrant chart options TypeScript types optional
2023-07-06 03:54:08 +00:00
Alois Klink
c29088af01 build(docs): fix links to config.schema.json
Fix the link in some Mermaid Config markdown documentation,
which previously pointed to `src/schemas/config.schema.yaml`,
which went nowhere.

Now, these links point to:
  - config.schema.json (i.e. the generated JSON file, not YAML)
  - links are relative to the markdown documentation

We also needed to store the `schema.json` file in the Vitepress
`public/` folder, as Vitepress otherwise doesn't bundle `.json` files
properly, when running `vitepress build src/vitepress`.
2023-07-06 03:53:40 +01:00
Alois Klink
23d6a0dab7 ci(lint): check if MermaidConfig types are in sync
Add a CI check that runs
`pnpm run --filter mermaid types:verify-config` and checks whether
the MermaidConfig TypeScript types are in sync with the MermaidConfig
JSON Schema.
2023-07-06 03:53:40 +01:00
Alois Klink
70a5a13273 docs: add link to mermaid config docs in sidebar 2023-07-06 03:53:40 +01:00
Alois Klink
063cb124cd test(config): add temp test for defaultConfig
Adds a temporary test to ensure that the new defaultConfig,
generated by Vite automatically from the `MermaidConfig` JSON Schema,
has the same values as the old defaultConfig
(taken from
38013de711/packages/mermaid/src/defaultConfig.ts)

The only minor difference seems to be that:
  - `gitGraph` now has a default `useMaxWidth: false` option
    (previously used to be `undefined`),
  - `class` now has a `htmlLabels` value of `false` instead of `undefined`.
2023-07-06 03:53:40 +01:00
Alois Klink
eb5d65fabc build(types): create types from config JSON Schema
Runs `pnpm --filter mermaid run types:build-config` to automatically
generate typescript types for `MermaidConfig` from the
JSON Schema file.
2023-07-06 03:53:40 +01:00
Alois Klink
7c3a73d4a8 build(types): add script to generate Config types
Add script `packages/mermaid/scripts/create-types-from-json-schema.mts`
to automatically generate the TypeScript definition for `MermaidConfig`
from the `MermaidConfig` JSON Schema at
`packages/mermaid/src/schemas/config.schema.yaml`.

To do this, we are using this library
[`json-schema-to-typescript`][1], which is also used by Webpack to
generate their types from their JSON Schema.

In order to make sure that this isn't a breaking change, the script
makes all fields **optional**, as that is what the original typescript
file has.

Additionally, I've put in some custom logic into the script, so that
the exact same order is used for the TypeScript file, to make the
`git diff` easier to review. In the future, we can remove this custom
logic, once we no longer need to worry about `git merge` conflicts.

[1]: https://github.com/bcherny/json-schema-to-typescript
2023-07-06 03:53:40 +01:00
Alois Klink
0230722d36 build(docs): build JSON Schema docs
Automatically build documentation for JSON Schema.

This is only built when running with `--vitepress`,
as it currently produces loads of markdown files, which I feel like
we shouldn't be committing.

This currently manually uses some internal `jsonschema2md` functions
so that we can manually control the Markdown output.
2023-07-06 03:53:40 +01:00
Alois Klink
52a1243da5 build: use vite to get default mermaid config
Adds a vitepress JsonSchema plugin that automatically loads
the Mermaid Config JSON Schema from a .schema.yaml file and
gets the default values from it.
2023-07-06 03:53:40 +01:00
Alois Klink
58b43976ff feat: add Mermaid Config in JSON Schema format
Add a JSON Schema file (in YAML) for the MermaidConfig.

This JSON Schema file follows [JSON Schema 2019-09][1], with some slight
modifications to work with:

- [json-schema-to-typescript][2]
  The `tsType` keyword is used to override the generated TypeScript
  type, when it doesn't match the JSON Schema type.

  This is used in two cases:
    - when the current type cannot be represented in JSON Schema
      (e.g. `FontCalculator`, which is a function)
    - when the JSON Schema type is narrower than the TypeScript type.
      Currently, many enums types are listed as `string` in TypeScript,
      but json-schema-to-typescript converts them to `"val1" | "val2"`.
      I've manually set them to `string | "val1" | "val2"` to avoid
      causing a breaking change in the TypeScript types. We should
      remove these in a future major version of TypeScript.
- [@adobe/jsonschema2md][3]
  The `meta:enum` keyword is used to add documentation for specific enum
  values.

[1]: https://json-schema.org/draft/2019-09/release-notes.html
[2]: https://www.npmjs.com/package/json-schema-to-typescript
[3]: https://www.npmjs.com/package/@adobe/jsonschema2md
2023-07-06 03:53:35 +01:00
Alois Klink
4372a54dba docs: add support for ``regexp`` code blocks
Currently, shiki doesn't support code-blocks that use the regexp
language, which means vitepress throws an error on them:

```regexp
^([1-9][0-9]*)(minute|hour|day|week|month)$
```

As a hack until shiki supports them, I've just modified them to get
converted into JavaScript RegEx literal code-blocks, e.g.:

```javascript
/^([1-9][0-9]*)(minute|hour|day|week|month)$/
```
2023-07-06 03:04:08 +01:00
Alois Klink
a862565a24 test: test partial QuadrantChartConfig options 2023-07-06 01:35:11 +01:00
Alois Klink
6ceee7f253 test: fix types in config.spec.ts
The `foo`, `bar`, and `foobar` options don't exist in MermaidConfig.

Instead, I've replaced them with:
  - `foo` -> `fontFamily`
  - `bar` -> `fontSize`
  - `foobar` -> `altfontFamily`
2023-07-06 01:27:24 +01:00
Alois Klink
f731853e01 style: fix lint issues in src/config.spec.ts
It looks like our linter automatically converts `let` to `const` in
TypeScript files, but not in JavaScript files.
2023-07-06 01:20:24 +01:00
Alois Klink
5885f5f82a test: rename src/config.spec.js to config.spec.ts 2023-07-06 01:19:34 +01:00
Alois Klink
38013de711 fix(quadrant): make quadrant options optional
Make the types of the options in QuadrantChartConfig in the
MermaidConfig optional. All of these (except for the values in
`BaseDiagramConfig`) will be automatically set to their
default values, so they're optional from a user perspective.
2023-07-06 01:06:01 +01:00
Steph
9251e520ab fix lint 2023-07-05 13:50:33 -07:00
Steph
5e7e3e21c8 update homepage community link 2023-07-05 13:42:42 -07:00
Tom PERRILLAT-COLLOMB
fcb25aee7c docs(flowchart): add documentation on multiple nodes style 2023-07-05 21:09:44 +02:00
Nikolay Rozhkov
95d62367e9 Add docker-specific command, leave commonly used command intact 2023-07-05 19:39:05 +03:00
Ibrahim Wassouf
1d5f3bb64d Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-05 11:19:08 -04:00
Ibrahim Wassouf
bd772e1bf4 Merge branch 'develop' into bug/4590_allow_notes_identical_to_keywords 2023-07-05 11:00:00 -04:00
Nikolay Rozhkov
34b2b5ba35 Support docs:dev in docker 2023-07-05 17:25:07 +03:00
Nikolay Rozhkov
c742ac71a4 Merge pull request #4598 from mermaid-js/sidv/fixDocsDev
Fix docs:dev
2023-07-05 14:05:27 +00:00
Sidharth Vinod
62b988a09f Merge pull request #4595 from nirname/fix/sankey-diagram-examples
Sankey: Remove duplicated examples
2023-07-05 06:53:43 +00:00
Sidharth Vinod
382026ed33 Fix docs:dev 2023-07-05 12:20:56 +05:30
Ibrahim Wassouf
34e89098f5 Refactor code smells in unit tests 2023-07-04 21:34:14 -03:00
Ibrahim Wassouf
e3c90ac084 Apply formatting to file 2023-07-04 21:16:14 -03:00
Ibrahim Wassouf
099f85f014 Add unit tests with keywords in notes 2023-07-04 21:07:46 -03:00
Ibrahim Wassouf
49747b314d Modify wildcard state of tokens in lexer 2023-07-04 20:44:22 -03:00
Nikolay Rozhkov
9f5f0a6e66 Reduce sankey width 2023-07-05 01:49:58 +03:00
nirname
6f03e22cc4 Update docs 2023-07-04 22:18:57 +00:00
Nikolay Rozhkov
8449a44607 Sankey: Remove duplicated examples 2023-07-05 01:15:22 +03:00
Lishid
12fe6ff26e Fix lint. 2023-07-03 18:56:00 -07:00
Ibrahim Wassouf
451b6b687e Merge branch 'develop' into enhancement/4158_Add_primary_key_beginning_with_asterisk 2023-07-03 19:54:26 -04:00
Nikolay Rozhkov
f431bae0ba Merge pull request #4587 from nirname/refactoring/remove-double-parsing
Remove double parsing
2023-07-03 22:02:20 +00:00
Ibrahim Wassouf
5a94256e4f Allow entity diagram attribute names to start with asterisk 2023-07-03 15:11:02 -03:00
Nikolay Rozhkov
d5021cab1d Remove double parsing 2023-07-03 18:57:26 +03:00
Sidharth Vinod
288f51216d Add codecov token 2023-07-03 21:01:04 +05:30
Sidharth Vinod
1b190b2892 Merge pull request #4551 from Yokozuna59/refactor-accessibility
refactor accessibility
2023-07-03 15:07:21 +00:00
Sidharth Vinod
8e15e534ea Add codecov token 2023-07-03 19:19:11 +05:30
Sidharth Vinod
6d7cd2b41f Merge pull request #4580 from aloisklink/refactor/replace-enums
Remove all TypeScript enums and forbid them in ESLint
2023-07-03 07:26:39 +00:00
Sidharth Vinod
15b2105ce6 Merge pull request #4581 from mermaid-js/renovate/patch-all-patch
Update all patch dependencies (patch)
2023-07-03 07:10:51 +00:00
renovate[bot]
d6731a07db Update all patch dependencies 2023-07-03 05:18:01 +00:00
Alois Klink
79688a1dc1 build: forbid using TypeScript enums using eslint
[TypeScript enums][1] are an unusual TypeScript feature, because it's
one of the only features that is "not a type-level extension of
JavaScript".

This means TypeScript generates custom code for enums, which can cause a
bunch of issues, especially as this custom code can be built differently
depending on which bundler you use, and because of this, many people
discourage the use of enums:

- [The Dangers of TypeScript Enums][2]
- [Tidy TypeScript: Prefer union types over enums][3]
- [TypeScript: Handbook - Enums # Objects vs Enums][4]

I've added an ESLint rule that forbids TypeScript enums, as in most
cases, it's better to use string literals instead, e.g. like
`type a = "a" | "b" | "c";`.

[1]: https://www.typescriptlang.org/docs/handbook/enums.html#string-enums
[2]: https://dev.to/azure/the-dangers-of-typescript-enums-55pd
[3]: https://fettblog.eu/tidy-typescript-avoid-enums/
[4]: https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums
2023-07-03 00:04:16 +01:00
Alois Klink
fbf79ffcc0 refactor: replace TypeScript enum with JS obj
[`const` assertions where added in TypeScript 3.4][1] and can be used
to create enum-like objects in plain JavaScript, that act like
TypeScript enums, but has none of the downsides of TypeScript enums.

[1]: https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#const-assertions
2023-07-02 23:56:42 +01:00
Alois Klink
b989ff5362 fix: change sankey config types to be unions
Replace the TypeScript `enum {a = "a", b = "b"}` types with
TypeScript's literal types (e.g. `"a" | "b"`).

This is because TypeScript enums are
[_not_ a type-level addition to JavaScript][1], and even the official
TypeScript docs say to be careful when using.

[1]: https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#enums
2023-07-02 23:44:19 +01:00
Dmitry Kisler
592e9c959b fix(diagrams/c4/parser): fixes support of the macro ContainerQueue_Ext for C4 diagrams. 2023-07-02 17:10:06 +02:00
Yokozuna59
406df57f81 Merge branch 'develop' into refactor-accessibility 2023-07-02 10:24:21 +02:00
Sidharth Vinod
9c011abbd4 Merge pull request #4466 from Valentine14th/feature/1838_actor_creation_destruction
Feature/1838 actor creation destruction
2023-07-02 08:10:24 +00:00
Sidharth Vinod
dfc466514d Merge branch 'develop' into feature/1838_actor_creation_destruction 2023-07-02 13:36:04 +05:30
Sidharth Vinod
29c866b09a Don't fail CI on codecov error 2023-07-02 13:22:00 +05:30
Sidharth Vinod
2a1759aab4 Merge branch 'develop' into refactor-accessibility 2023-07-02 13:04:09 +05:30
Sidharth Vinod
28ce5e780f Merge pull request #4566 from mermaid-js/renovate/patch-all-patch
Update all patch dependencies (patch)
2023-07-02 05:12:41 +00:00
renovate[bot]
b55a9328f4 Update all patch dependencies 2023-07-02 05:07:56 +00:00
Sidharth Vinod
19325777e5 Merge branch 'develop' into feature/1838_actor_creation_destruction 2023-07-02 10:32:59 +05:30
Sidharth Vinod
f0b8e5bc37 Merge pull request #4574 from mermaid-js/sidv/renameWorkflows
Rename workflow jobs
2023-07-02 05:01:53 +00:00
Sidharth Vinod
1995f62b3c Merge branch 'develop' into sidv/renameWorkflows 2023-07-02 10:16:49 +05:30
Sidharth Vinod
78377daf2f Rename workflow jobs 2023-07-02 10:14:35 +05:30
Sidharth Vinod
4a95589b5a Add merge_group to CI triggers 2023-07-02 10:03:31 +05:30
Sidharth Vinod
812e44183b Merge pull request #4502 from nirname/feature/4492_sankey-diagrams
Sankey diagrams
2023-07-02 04:29:43 +00:00
Sidharth Vinod
afb979f32b Merge branch 'develop' into feature/4492_sankey-diagrams 2023-07-02 09:55:45 +05:30
Sidharth Vinod
4d19db8d0c Merge pull request #4573 from ibrahimWassouf/develop
Fix relative link to theme variables list
2023-07-02 09:55:29 +05:30
nirname
c327ea9f21 Update docs 2023-07-01 23:38:02 +00:00
Nikolay Rozhkov
abb7bb23d6 More detailed sankey docs 2023-07-02 02:34:22 +03:00
Nikolay Rozhkov
8ed2ee30ec Sankey alignment tests 2023-07-02 02:15:23 +03:00
Nikolay Rozhkov
084b765e9f Added tests for colors and fully setup cypress in Docker 2023-07-02 01:10:06 +03:00
Ibrahim Wassouf
4570f824f7 Fix relative link to theme variables list 2023-07-01 15:45:48 -03:00
Nikolay Rozhkov
a62719826a Docker+Cypress, better run, removed unused syntax
Added cypress container (from their official image),
may be reconsidered later to choose our own
The only minor problem is node JS version mistmatch
package.json 18.16.0
docker-compose mermaid 18.16.1
docker-compose cypress 18.16.0

Host option in cypress docker container must be removed
in favor of possible configuration option.
http://localhost:9000 are currently hard-coded, that is bad

Updated ./run script with better documentation
and added some styles too it as well

Started sankey.spec.js as an example
2023-07-01 16:17:25 +03:00
Sidharth Vinod
ddbe977fcc Merge pull request #4570 from mermaid-js/update-latest-news-section
Docs: add ChatGPT plugin blog post
2023-07-01 17:29:26 +05:30
Nikolay Rozhkov
cd7fce4e4d Merge branch 'develop' into feature/4492_sankey-diagrams 2023-06-30 22:58:56 +03:00
Sidharth Vinod
ae4d81cdfd move codecov 2023-07-01 00:39:01 +05:30
Sidharth Vinod
b90c8402cb Set default branch in codecov 2023-07-01 00:38:10 +05:30
Sidharth Vinod
181a8498a3 Merge branch 'update-latest-news-section' of https://github.com/mermaid-js/mermaid into update-latest-news-section
* 'update-latest-news-section' of https://github.com/mermaid-js/mermaid:
  Update docs
2023-07-01 00:35:21 +05:30
Sidharth Vinod
738ba3d012 Merge branch 'develop' into update-latest-news-section
* develop:
  Fix docs
2023-07-01 00:34:06 +05:30
Sidharth Vinod
eb37e6886c Merge branch 'develop' into pr/Valentine14th/4466
* develop:
  Fix docs
2023-07-01 00:33:24 +05:30
Sidharth Vinod
64f5d34465 Fix docs 2023-07-01 00:33:08 +05:30
sidharthv96
032830d7e0 Update docs 2023-06-30 19:02:57 +00:00
Sidharth Vinod
04d79b16c3 Fix docs 2023-07-01 00:30:27 +05:30
Sidharth Vinod
1645bf0479 Merge branch 'develop' into pr/Valentine14th/4466
* develop:
  Add threshold
  Updated mermaid version to 10.2.4
  update latest news section
2023-07-01 00:29:43 +05:30
Sidharth Vinod
4217bfc15d Merge branch 'develop' into update-latest-news-section
* develop:
  Add threshold
  Fix Typo
2023-07-01 00:29:06 +05:30
Sidharth Vinod
598addf506 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid:
  Updated mermaid version to 10.2.4
  Fix Typo
  update latest news section
2023-07-01 00:28:43 +05:30
Sidharth Vinod
959a773b64 Add threshold 2023-07-01 00:28:37 +05:30
Steph
efa3ba6397 add ChatGPT plugin blog post 2023-06-30 11:08:42 -07:00
Knut Sveidqvist
02d4be23cf Merge remote-tracking branch 'origin/develop' into develop 2023-06-30 13:25:32 +02:00
Knut Sveidqvist
ec1e34c4f1 Merge branch 'master' into develop 2023-06-30 13:25:21 +02:00
Knut Sveidqvist
04b11d1ba6 Merge branch 'release/10.2.4' 2023-06-30 13:24:43 +02:00
Knut Sveidqvist
453b337e6e Updated mermaid version to 10.2.4 2023-06-30 13:10:22 +02:00
Sidharth Vinod
3fe0c8b13d Merge branch 'develop' into feature/1838_actor_creation_destruction 2023-06-30 16:00:24 +05:30
Sidharth Vinod
824dfbd574 Merge pull request #4567 from ryru/patch-1
Fix Typo
2023-06-30 15:36:59 +05:30
Pascal Knecht
a1dfc3dac9 Fix Typo 2023-06-30 11:59:40 +02:00
Lishid
0cab66c9d8 Fix flowchart tooltip typing
Tooltip is an object that gets reset to an array. It is then looked up for properties without guard, causing array functions like "length" and "constructor" to run into undefined behvaior.
2023-06-29 15:33:35 -04:00
Nikolay Rozhkov
163a4b819b Trigger build in GA 2023-06-29 21:01:21 +03:00
nirname
36df7260cc Update docs 2023-06-29 17:32:39 +00:00
Nikolay Rozhkov
b2f6858ff7 Prettier 2023-06-29 20:23:10 +03:00
Nikolay Rozhkov
06cb0c3be9 Fixed package json 2023-06-29 20:22:06 +03:00
Nikolay Rozhkov
9177350a39 Fixed double quotes, docs, demo and added more examples to run script 2023-06-29 20:16:25 +03:00
Nikolay Rozhkov
e24dce10a2 Added sankey documentation 2023-06-29 19:51:46 +03:00
Nikolay Rozhkov
e7ad294283 Merge branch 'develop' into feature/4492_sankey-diagrams 2023-06-29 16:50:38 +03:00
Nikolay Rozhkov
95a436595e Let it be as it was in dev branch 2023-06-29 16:44:33 +03:00
Nikolay Rozhkov
8e3f8b1a57 Fixes after review 2023-06-29 15:39:50 +03:00
Nikolay Rozhkov
408c32781e Contributors fetching failure must not hinder docs development 2023-06-29 15:24:14 +03:00
Nikolay Rozhkov
a712e61888 Loading avatars in parallel & started sankey documentation 2023-06-29 15:24:14 +03:00
Sidharth Vinod
8066d94c1d Merge pull request #4560 from mermaid-js/sidv/v8Coverage
Use v8 coverage in vitest
2023-06-29 17:44:19 +05:30
Sidharth Vinod
3a03070f5d Merge branch 'develop' into sidv/v8Coverage
* develop:
  Update docs
  Cleanup
  Clean up some spacing in examples
  Correct the Gantt milestones example
  fix(class): keep members in namespace classes
2023-06-29 12:53:56 +05:30
Sidharth Vinod
562910e831 Merge pull request #4532 from tomperr/fix/4519-namespace-lose-members
fix(class): keep members in namespace classes
2023-06-29 11:57:22 +05:30
sidharthv96
85fdbab6b9 Update docs 2023-06-29 05:16:38 +00:00
Sidharth Vinod
3fac8d7be5 Merge pull request #4561 from AlexMooney/patch-1
Fix up Gantt Chart demo
2023-06-29 10:43:02 +05:30
Sidharth Vinod
47db1a3c9f Cleanup 2023-06-29 10:36:21 +05:30
Alex Mooney
491f8c1259 Clean up some spacing in examples 2023-06-28 15:14:28 -07:00
Alex Mooney
83bda9febd Correct the Gantt milestones example 2023-06-28 14:37:08 -07:00
Sidharth Vinod
0d833fb4ce Use v8 coverage 2023-06-28 23:28:23 +05:30
sidharthv96
c11ac644a1 Update docs 2023-06-28 07:39:44 +00:00
Sidharth Vinod
6aae7450aa Merge pull request #4557 from nienow/patch-1
Add Standard Notes extension in integrations page
2023-06-28 13:05:22 +05:30
Sidharth Vinod
c042c4a5ef Merge pull request #4553 from tomperr/fix/4550-chaining-style
fix(flowchart): allow multiple vertices with style
2023-06-28 13:02:55 +05:30
Sidharth Vinod
0a3dcfaa4c Merge pull request #4556 from Yokozuna59/add-cypress-coverage-clean
add cypress coverage clean
2023-06-28 12:45:36 +05:30
Random Bits
777f6d9749 Add Standard Notes extension in integrations page 2023-06-27 21:28:36 -05:00
Yokozuna59
191309a79d run lint:fix 2023-06-28 03:34:28 +03:00
Yokozuna59
346daa2327 prettierignore .nyc_output 2023-06-28 03:12:46 +03:00
Yokozuna59
21e3001f4f add coverage:cypress:clean script 2023-06-28 03:11:01 +03:00
Yokozuna59
38ba45f735 run lint:fix 2023-06-28 01:35:27 +03:00
Yokozuna59
925e76e283 Merge branch 'develop' into resolve-info-html-assignment 2023-06-28 01:29:14 +03:00
Yokozuna59
b11c38ea00 run docs:build to fix linting issue 2023-06-27 21:25:55 +03:00
Yokozuna59
2b0f078c99 resolve lint issues for no-inferrable-types 2023-06-27 21:09:26 +03:00
Tom PERRILLAT-COLLOMB
9e024fd5f5 allow multiple vertices with style 2023-06-27 20:04:47 +02:00
Yokozuna59
48fc60f866 fix wrong config paramater in some cypress spec
- flowchart
- mindmap
2023-06-27 20:59:43 +03:00
Yokozuna59
a2cf41c9c0 convert cypress/helpers/util.js into ts
- add types for parameter and returned value and variables
- change the deperated `unescape` into `decodeURIComponent`
- create `CypressConfig` and `CypressMermaidConfig` and `CodeObject` types
- add default value for some parameter
2023-06-27 20:53:01 +03:00
Yokozuna59
6cbd24f704 convert file from js into ts 2023-06-27 20:50:42 +03:00
Yokozuna59
226960ef46 refactor mermaidAPI accessibilities 2023-06-27 20:07:50 +03:00
Yokozuna59
228bafa909 refactor accessibility
- remove @ts-ignore comments
- rename vitest test and describe title
- remove unnecessary types, e.i, `null` and `number`
- clean `addSVGa11yTitleDescription` and `setA11yDiagramInfo` functions
2023-06-27 20:04:41 +03:00
nirname
19bea10983 Update docs 2023-06-27 14:54:57 +00:00
Nikolay Rozhkov
8b111760b1 Updates after review 2023-06-27 17:50:51 +03:00
nirname
301073a60d Update docs 2023-06-27 13:51:44 +00:00
Sidharth Vinod
d9db2edf5a Merge pull request #4539 from ellenealds/patch-1
Update Tutorials.md
2023-06-27 19:16:31 +05:30
Nikolay Rozhkov
149cc44c39 Empty 2023-06-27 16:46:20 +03:00
Sidharth Vinod
f7c999a6b3 Merge pull request #4548 from mermaid-js/renovate/node-20.x
chore(deps): update node.js to v20
2023-06-27 19:09:15 +05:30
Sidharth Vinod
7fe9c9e139 Docs Build 2023-06-27 19:07:34 +05:30
Nikolay Rozhkov
e1c9aec775 Merge remote-tracking branch 'nirname/develop' into feature/4492_sankey-diagrams 2023-06-27 16:25:18 +03:00
Nikolay Rozhkov
f0231ad9b1 Lint 2023-06-27 16:22:12 +03:00
Nikolay Rozhkov
0bbf0555d3 Fix linters 2023-06-27 16:17:55 +03:00
Nikolay Rozhkov
d4d7ce5a4b Fixed majority of ts errors for sankey 2023-06-27 16:12:44 +03:00
ellenealds
0b663ecbba Update cSpell.json 2023-06-27 13:59:33 +01:00
Nikolay Rozhkov
bbba643288 Rmoved unnecessary imports in tests 2023-06-27 15:30:53 +03:00
Nikolay Rozhkov
830319e3db Removed unnecessary TODO 2023-06-27 15:21:36 +03:00
Nikolay Rozhkov
32c8524317 Put d3-sankey under mermaid package 2023-06-27 15:15:34 +03:00
Nikolay Rozhkov
616c5e6914 Move UID to separate file, refine run sh 2023-06-27 15:05:25 +03:00
renovate[bot]
22a1813e9e chore(deps): update node.js to v20 2023-06-27 12:00:44 +00:00
Sidharth Vinod
f27015fcf8 Merge pull request #4547 from mermaid-js/renovate/major-workbox-monorepo
chore(deps): update dependency workbox-window to v7
2023-06-27 17:23:44 +05:30
Sidharth Vinod
d2ff3a63e8 Merge pull request #4524 from mcbeelen/docs/label-color-timelines
docs: Howto on foreground color on timelines
2023-06-27 17:23:24 +05:30
Nikolay Rozhkov
605e8d4a92 Sankey refactoring 2023-06-27 14:11:06 +03:00
Marco Beelen
e2f21a2d98 Lint fix 2023-06-27 13:03:31 +02:00
Marco Beelen
f606ad2d9d docs: Howto on foreground color on timelines 2023-06-27 11:23:54 +02:00
renovate[bot]
1730a229a5 chore(deps): update dependency workbox-window to v7 2023-06-27 09:21:55 +00:00
Sidharth Vinod
dff0f1e7d4 Merge pull request #4545 from mermaid-js/renovate/eslint-plugin-unicorn-47.x
chore(deps): update dependency eslint-plugin-unicorn to v47
2023-06-27 14:50:48 +05:30
renovate[bot]
b7af9bace4 chore(deps): update dependency eslint-plugin-unicorn to v47 2023-06-27 08:00:16 +00:00
Sidharth Vinod
a167d61d2a Merge pull request #4546 from mermaid-js/renovate/jsdom-22.x
chore(deps): update dependency jsdom to v22
2023-06-27 13:28:56 +05:30
renovate[bot]
f48652322d chore(deps): update dependency jsdom to v22 2023-06-27 07:13:43 +00:00
Sidharth Vinod
b95b2790dc Merge pull request #4544 from mermaid-js/renovate/eslint-plugin-jsdoc-46.x
chore(deps): update dependency eslint-plugin-jsdoc to v46
2023-06-27 12:42:01 +05:30
Sidharth Vinod
fa81bf113b Merge pull request #4543 from mermaid-js/renovate/patch-all-patch
fix(deps): update all patch dependencies (patch)
2023-06-27 12:41:39 +05:30
renovate[bot]
120029913d chore(deps): update dependency eslint-plugin-jsdoc to v46 2023-06-27 06:23:27 +00:00
renovate[bot]
aa67646b5a fix(deps): update all patch dependencies 2023-06-27 06:22:43 +00:00
Sidharth Vinod
a20aa4f0f5 Merge pull request #4541 from Yokozuna59/add-suggested-solutions-field-in-bug-report
add `Suggested Solutions` field in `bug_report.yml`
2023-06-27 11:51:55 +05:30
Sidharth Vinod
b60ec8e5ff Update .github/ISSUE_TEMPLATE/bug_report.yml 2023-06-27 11:51:44 +05:30
Sidharth Vinod
2b463237b0 Merge pull request #4521 from schackartk/docs/4480_add_citation_file
Add citation.cff file
2023-06-27 11:43:59 +05:30
Sidharth Vinod
7bd4e03005 Fix lint issue 2023-06-27 11:38:04 +05:30
Sidharth Vinod
8565a3106d Add release-date 2023-06-27 11:35:06 +05:30
Sidharth Vinod
2bec82707f Merge pull request #4528 from Yokozuna59/bug/4527_fix-optional-style-issue
fix not rendered style when style is optional
2023-06-27 11:30:15 +05:30
Sidharth Vinod
5baeda0b5e Merge pull request #4540 from tomperr/fix/4536-double-circle-style
fix(flowchart): apply style on doublecircle
2023-06-27 11:23:26 +05:30
Yokozuna59
d15590f0a5 add suggested solutions field in bug_report.yml 2023-06-27 02:31:09 +03:00
Yokozuna59
760548335c Merge branch 'develop' into standardized-pie-definitions 2023-06-27 01:45:35 +03:00
Tom PERRILLAT-COLLOMB
5a96bd1b9f fix(flowchart): apply style on doublecircle 2023-06-27 00:22:59 +02:00
Yokozuna59
64a28be5e3 rename getDiagramStyles type into DiagramStylesProvider 2023-06-26 20:34:21 +03:00
Yokozuna59
8b67200717 change options paramter to any instead of unknown 2023-06-26 19:31:53 +03:00
Yokozuna59
3106ddbd1e add getDiagramStyles type and use it in style.ts 2023-06-26 19:28:22 +03:00
Yokozuna59
f020f4a292 remove diagramTheme arrow function return
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-06-26 19:12:04 +03:00
Yokozuna59
0a6fc1b582 Merge branch 'mermaid-js:develop' into resolve-info-html-assignment 2023-06-26 19:06:19 +03:00
Yokozuna59
c439424511 Merge branch 'mermaid-js:develop' into bug/4527_fix-optional-style-issue 2023-06-26 19:06:08 +03:00
Sidharth Vinod
2fe5750be1 Merge pull request #4531 from Yokozuna59/fix-cspell-issue-in-md-files
fix cspell issues in *.md files
2023-06-26 21:32:44 +05:30
Nikolay Rozhkov
b0825ebb35 Import at the top 2023-06-26 18:37:41 +03:00
Yokozuna59
20eb28e1a4 fix cspell issues in *.md files 2023-06-26 18:21:09 +03:00
Yokozuna59
f2c40271b2 change diagramTheme and themes to return string 2023-06-26 18:06:48 +03:00
renovate[bot]
f90a7dc784 fix(deps): update all patch dependencies 2023-06-26 03:12:45 +00:00
Nikolay Rozhkov
a38733346f Removed unnecessary configs and extra code 2023-06-25 21:56:14 +03:00
Nikolay Rozhkov
c5b89d127d Update docs 2023-06-25 01:38:31 +03:00
Nikolay Rozhkov
95ab598ea4 Fix docs 2023-06-25 01:31:53 +03:00
Nikolay Rozhkov
2a22bae1f9 Update docs 2023-06-25 01:18:38 +03:00
Tom PERRILLAT-COLLOMB
61e5dbeaa6 fix(class): keep members in namespace classes 2023-06-25 00:15:35 +02:00
Nikolay Rozhkov
6a893a758b Styles are optional 2023-06-25 01:07:11 +03:00
Nikolay Rozhkov
1d6074dbfa Sankey: Use [] instead of Array 2023-06-25 00:42:12 +03:00
Nikolay Rozhkov
db2a556f62 Cleanup 2023-06-25 00:23:42 +03:00
Nikolay Rozhkov
b23e86aea3 Added options for coloring 2023-06-25 00:22:36 +03:00
Nikolay Rozhkov
1674f12b62 Renamed sankey to sankey-beta 2023-06-24 23:11:54 +03:00
Yokozuna59
07f6358a80 fix not rendered style when style is optional 2023-06-24 22:18:00 +03:00
Nikolay Rozhkov
2f281ba228 Improvements for sankey diagram after review 2023-06-24 22:02:18 +03:00
Nikolay Rozhkov
0a7d429192 Fixes for docker local development 2023-06-24 21:37:19 +03:00
Yokozuna59
30a66533bc use backtick for cleaner variable string and the DOM document for default values 2023-06-23 23:26:45 +03:00
ellenealds
b117265fcb Update Tutorials.md
Added tutorial and application demo for AI generated Mermaid Mind Map
2023-06-23 19:08:13 +01:00
Kenneth Schackart
7f098c069c Add citation.cff file 2023-06-22 16:00:40 -07:00
Nikolay Rozhkov
d766ac6d20 Prettier 2023-06-22 23:50:11 +03:00
Nikolay Rozhkov
73840ead05 Decrease docker mem 2023-06-22 23:38:00 +03:00
Nikolay Rozhkov
7ace602a6c Fixed linters 2023-06-22 23:24:41 +03:00
Nikolay Rozhkov
c75c106490 Put styles back 2023-06-22 23:02:13 +03:00
Nikolay Rozhkov
d9036c7af1 Added gradient for sankey and cleaned code 2023-06-22 21:26:39 +03:00
Nikolay Rozhkov
518da3236f Remove unnecessary parsing stage from render and prepare text before parsing 2023-06-22 18:28:02 +03:00
Nikolay Rozhkov
104aece46e Cleanup sankey diagrams according code review 2023-06-22 17:35:46 +03:00
Nikolay Rozhkov
9a29066426 Ensure that sankey keyword does not intefere with csv 2023-06-22 16:53:44 +03:00
Nikolay Rozhkov
be9cd480aa Sankey syntax has beed reduced 2023-06-22 15:58:09 +03:00
Yokozuna59
41c5152015 Merge branch 'mermaid-js:develop' into standardized-pie-definitions 2023-06-21 15:23:21 +03:00
Yokozuna59
b0ae0708e1 Merge branch 'mermaid-js:develop' into resolve-info-html-assignment 2023-06-21 15:23:11 +03:00
Nikolay Rozhkov
272615e580 Fixed tests and added node alignment 2023-06-21 03:54:55 +03:00
Nikolay Rozhkov
bc33c8210c Merge branch 'develop' into feature/4492_sankey-diagrams 2023-06-21 03:00:27 +03:00
Nikolay Rozhkov
7bc5c1930e Fix specs 2023-06-21 02:58:25 +03:00
Nikolay Rozhkov
24d9f59d69 Fix specs 2023-06-21 02:52:21 +03:00
Nikolay Rozhkov
6c6efb24f4 Fix graph width 2023-06-21 01:58:57 +03:00
Nikolay Rozhkov
362648b74b Trim trailing spaces 2023-06-21 01:37:06 +03:00
Nikolay Rozhkov
a2c055ba5d CSV syntax implementation 2023-06-21 01:29:34 +03:00
Yokozuna59
796a761a7d remove unnecessary types in pieRenderer 2023-06-21 00:32:14 +03:00
Yokozuna59
09c4a26509 rename PieDb interface and more types with null sefety 2023-06-21 00:22:56 +03:00
Yokozuna59
e5907ec5ea add info in sandbox cypress test case 2023-06-20 17:53:33 +03:00
Yokozuna59
daa98a2f54 use body of document instead of document itself in infoRenderer 2023-06-20 17:52:50 +03:00
Yokozuna59
99da3d7cd5 validate that height in putInfoIframe is defined 2023-06-20 17:49:07 +03:00
sidharthv96
3d11781542 Update docs 2023-06-20 07:34:18 +00:00
Sidharth Vinod
ecc5289c5f Merge pull request #4512 from tobie/patch-1
Fix typo in quadrant chart documentation
2023-06-20 13:00:34 +05:30
Nikolay Rozhkov
6077ba5405 Updated syntax and fixed comments from review 2023-06-20 03:06:47 +03:00
Tobie Langel
53eada8028 Fix typo in quadrant chart documentation 2023-06-19 21:33:40 +02:00
Yokozuna59
ce9d0e2e6a use global useMaxWidth until making setConfig updates pie setConfig 2023-06-19 22:07:15 +03:00
Yokozuna59
ae8860eec3 add undefined to getConfig return type until handle other diagrams 2023-06-19 21:56:35 +03:00
Yokozuna59
67d287f85e use local config instead of glolal one in pieRenderer 2023-06-19 21:51:38 +03:00
Yokozuna59
9c2b95fc3c add config functions to DiagramDB interface 2023-06-19 20:13:15 +03:00
Yokozuna59
3a22d4a501 shorten vitest pie.spec.ts by removing one time use variables 2023-06-19 17:57:39 +03:00
Yokozuna59
cecf759b0b add showData unit test case 2023-06-19 17:52:28 +03:00
Yokozuna59
35c6b671de add config unit test cases for pie chart 2023-06-19 17:46:19 +03:00
Yokozuna59
c894c1f5b5 add Required and RequiredDeep to pieDb, add config functions 2023-06-19 17:45:38 +03:00
Yokozuna59
a92571d588 add type-fest to mermaid dev deps 2023-06-19 17:40:01 +03:00
Yokozuna59
34a47706fd update pnpm-lock.yaml 2023-06-19 13:41:36 +03:00
Yokozuna59
906d909d87 Merge branch develop into standardized-pie-definitions 2023-06-19 13:39:41 +03:00
Sidharth Vinod
b041e5168b Merge pull request #4510 from mermaid-js/renovate/patch-all-patch
fix(deps): update all patch dependencies (patch)
2023-06-19 11:02:10 +05:30
renovate[bot]
14582fb13d fix(deps): update all patch dependencies 2023-06-19 04:53:17 +00:00
Nikolay Rozhkov
fd3ffdc22a Prettify 2023-06-19 04:34:41 +03:00
Nikolay Rozhkov
1009bb8fb7 Prettify 2023-06-19 04:29:41 +03:00
Nikolay Rozhkov
6722ac7540 Multiple improvements on syntax
Syntax has been simplified
Removed extra initial states
Removed unused groups
Nodes can be wrapped in double qotes
Updated demo page
2023-06-19 04:02:40 +03:00
Nikolay Rozhkov
726efdad53 Fixed packaged 2023-06-19 01:09:21 +03:00
Nikolay Rozhkov
9dbb9872bc Fix linters 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
19f858b73b Fixed nodes duplicates 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
d22131e2fb It can read syntax and draw diagram 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
f5add81e29 Simple flow is done 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
c41fc67254 Added nodes and paths 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
81542142f5 Fix errors 2023-06-19 01:05:33 +03:00
Nikolay Rozhkov
afaf87e414 At last something is working 2023-06-19 01:05:20 +03:00
Nikolay Rozhkov
1782f69c8f Increased mem for lint, fixed spell checking, run lint 2023-06-19 01:05:20 +03:00
Nikolay Rozhkov
40f7105ae4 Started renderer development 2023-06-19 01:05:20 +03:00
Nikolay Rozhkov
5eae790740 Sankey stream is ending on node only 2023-06-19 01:05:20 +03:00
Nikolay Rozhkov
f71769e07b Attributes within strings 2023-06-19 01:05:09 +03:00
Nikolay Rozhkov
b4b535f997 Recognizing attributes 2023-06-19 01:05:09 +03:00
Nikolay Rozhkov
d2226604e4 Recognizing attrubutes 2023-06-19 01:05:09 +03:00
Nikolay Rozhkov
567686e140 Implementing new syntax 2023-06-19 01:05:09 +03:00
Nikolay Rozhkov
ad95c99cc2 Started sankey syntax 2023-06-19 01:04:45 +03:00
Nikolay Rozhkov
c874d74faf Some fixes to docker and demos 2023-06-19 01:02:50 +03:00
Nikolay Rozhkov
fe3dd5a531 Updated dockerfile 2023-06-19 01:02:50 +03:00
Nikolay Rozhkov
8e001b92f2 Cleared sankey renderer 2023-06-19 01:02:50 +03:00
Nikolay Rozhkov
6b40b394c8 Picked state diagram as a sample for sankey 2023-06-19 01:02:50 +03:00
Nikolay Rozhkov
c2417de5f1 Stated sankey backbone 2023-06-19 01:02:50 +03:00
Nikolay Rozhkov
116453d2a7 Desired syntax sankey 2023-06-19 01:02:49 +03:00
Nikolay Rozhkov
7f19e50403 Desired sankey syntax 2023-06-19 01:02:49 +03:00
Nikolay Rozhkov
4018fad416 Ideas about sankey diagram syntax 2023-06-19 01:02:49 +03:00
Yokozuna59
1d0aa763de document pie useWidth and update other pie config attributes 2023-06-18 17:53:28 +03:00
Yokozuna59
f6dc089ddf add D3Sections type with variable renaming 2023-06-18 17:39:15 +03:00
Sidharth Vinod
2cc9a52e9e Merge pull request #3923 from tomperr/feature/3036_group_style_definition
feat(flowchart): add classDef style group definition
2023-06-18 16:04:11 +05:30
Sidharth Vinod
0c2b5d0d79 Revert change to if 2023-06-18 13:13:40 +05:30
Sidharth Vinod
e3e12bbc78 Update _id to id 2023-06-18 13:02:35 +05:30
Sidharth Vinod
bfa76af434 Merge branch 'develop' into pr/tomperr/3923
* develop: (783 commits)
  chore(deps): update all minor dependencies
  chore: Run codecov based on E2E test status
  change REAMDME.md coverage from coveralls into codecov
  Add codecov.yaml
  Upload E2E
  set normal mode for vitest coverage
  Fix path name
  Add codecov to unit tests
  Add codecov to E2E
  chore: Add coverage scripts
  chore: add excludes
  chore: update deps
  Merge coverages
  Add coverage paths
  Rebuild
  chore: update pnpm
  Add coverage for E2E tests
  rename plugin variable into info in infoDetector.ts
  remove cypress/platform/index.html
  update pnpm-lock.yaml
  ...
2023-06-18 12:45:58 +05:30
renovate[bot]
2ee37752c8 chore(deps): update all minor dependencies 2023-06-18 06:35:43 +00:00
Yokozuna59
95e01b4935 move PieDiagramConfig into pieTypes 2023-06-18 01:45:21 +03:00
Sidharth Vinod
a76097a843 Merge pull request #4507 from Yokozuna59/add-codecov-to-root-readme
change REAMDME.md coverage from coveralls into codecov
2023-06-18 02:59:19 +05:30
Sidharth Vinod
2dd2f310af Merge branch 'develop' into pr/Yokozuna59/4507
* develop:
  chore: Run codecov based on E2E test status
2023-06-17 23:23:36 +05:30
Sidharth Vinod
3340240b9f chore: Run codecov based on E2E test status 2023-06-17 23:23:00 +05:30
Yokozuna59
7ee971eb9e change REAMDME.md coverage from coveralls into codecov 2023-06-17 17:29:43 +03:00
Sidharth Vinod
548874eb6a Merge pull request #4504 from mermaid-js/sidv/codecov
Add codecov
2023-06-17 18:25:53 +05:30
Sidharth Vinod
152b295837 Add codecov.yaml 2023-06-17 18:07:49 +05:30
Sidharth Vinod
f8540e9468 Upload E2E 2023-06-17 17:54:13 +05:30
Yokozuna59
9145a9e69e Merge branch 'mermaid-js:develop' into standardized-pie-definitions 2023-06-17 15:21:39 +03:00
Sidharth Vinod
7bebe2b348 Merge pull request #4505 from Yokozuna59/bug/set-normal-mode-for-vitest-coverage
set normal mode for vitest coverage
2023-06-17 17:47:32 +05:30
Yokozuna59
0f45124f84 set normal mode for vitest coverage 2023-06-17 15:14:54 +03:00
Sidharth Vinod
2ad32f9208 Fix path name 2023-06-17 17:44:27 +05:30
Sidharth Vinod
8d244062e2 Add codecov to unit tests 2023-06-17 17:40:06 +05:30
Sidharth Vinod
1e84668270 Add codecov to E2E 2023-06-17 17:34:19 +05:30
Yokozuna59
6941814729 update pnpm-lock.yaml 2023-06-17 15:01:20 +03:00
Yokozuna59
32d3001e2a Merge branch 'develop' into standardized-pie-definitions 2023-06-17 14:54:44 +03:00
Sidharth Vinod
702c3ea80f Merge pull request #4500 from mermaid-js/sidv/mergeCoverage
Merge coverage
2023-06-17 17:22:49 +05:30
Yokozuna59
452e543e77 Merge branch 'develop' into standardized-pie-definitions 2023-06-17 14:43:51 +03:00
Sidharth Vinod
cc7f555160 chore: Add coverage scripts 2023-06-17 17:11:05 +05:30
Sidharth Vinod
8d38ccc44c Merge branch 'develop' into sidv/mergeCoverage
* develop:
2023-06-17 16:52:28 +05:30
Sidharth Vinod
299b423e6b chore: add excludes 2023-06-17 16:52:03 +05:30
Sidharth Vinod
6c96650043 chore: update deps 2023-06-17 16:51:30 +05:30
Sidharth Vinod
f98087ebce Merge pull request #4498 from mermaid-js/sidv/E2ECoverage
Add coverage for E2E tests
2023-06-17 16:48:58 +05:30
Yokozuna59
23a5832fc9 add null safety in pieRenderer 2023-06-17 04:05:07 +03:00
Yokozuna59
8794fa0b38 clean up pieRenderer.ts 2023-06-17 03:28:08 +03:00
Yokozuna59
f2338f5b66 remove vanilla-extract from dev dependencies 2023-06-17 00:42:29 +03:00
Yokozuna59
5aba2fed8b remove cy.get of info diagram 2023-06-17 00:01:54 +03:00
Yokozuna59
bd6795032f return pieRender back to original and update it partially 2023-06-16 23:58:56 +03:00
Yokozuna59
c17b723295 convert pie.spec.js to ts, remove cy.get and useless comment, add showData unit test case 2023-06-16 23:45:13 +03:00
Yokozuna59
231a9630df do deep cloning on section field in pie clear 2023-06-16 23:30:41 +03:00
Yokozuna59
bdb967e0a8 fix renderer import in pieDiagram 2023-06-16 23:09:10 +03:00
Yokozuna59
ea3fbbd58d initial converting pie files 2023-06-16 23:05:06 +03:00
Yokozuna59
afea3e8f37 clean up demos/pie.html 2023-06-16 23:03:42 +03:00
Yokozuna59
4e7dbf76cc add SVG type in configureSvgSize function 2023-06-16 23:03:07 +03:00
Sidharth Vinod
8a0a874d1c Merge coverages 2023-06-17 01:24:15 +05:30
Yokozuna59
a3901f691a add @types/d3-scale and @types/d3-shape` to mermaid dev deps 2023-06-16 22:47:40 +03:00
Sidharth Vinod
7434031003 Add coverage paths 2023-06-16 23:54:02 +05:30
Sidharth Vinod
3011b7a1ea Merge branch 'develop' into sidv/E2ECoverage
* develop:
  Rebuild
  Fix lint
  Changed C4 stereotype braces to «»
2023-06-16 23:23:40 +05:30
Sidharth Vinod
5c63c5ceae Rebuild 2023-06-16 23:12:03 +05:30
Pierrick Wauquier
9efd9e8a45 defer a bit for electron to catch up 2023-06-16 18:01:52 +02:00
Sidharth Vinod
6d4a064df2 Merge pull request #4460 from jonathan-r-young/develop
Changed C4 stereotype braces to «»
2023-06-16 20:38:38 +05:30
Sidharth Vinod
69d9c09f33 chore: update pnpm 2023-06-16 20:32:07 +05:30
Sidharth Vinod
ecc4aa734b Merge branch 'develop' into sidv/E2ECoverage
* develop: (43 commits)
  rename plugin variable into info in infoDetector.ts
  remove cypress/platform/index.html
  update pnpm-lock.yaml
  indent info.html files
  update pnpm-lock.yaml
  remove empty options in cypress info.spec.ts
  format and add theme to cypress info.html
  convert the cypress info.spec.js into ts
  add messing timeline and info demoes links
  change infoDb db export
  remove default export in info files
  resolve db import in info.spec.ts
  remove assigned variables to their variables and export db without default
  use object destructuring for getConfig in infoRenderer
  move default_info_db into infoDbOF
  remove id and diagram assigning in info loader
  assign returned variables to their variables
  remove handled `ts-ignore` in info diagram
  handle optional `.styles`
  add info fields interface
  ...
2023-06-16 20:31:52 +05:30
Sidharth Vinod
547358fc7e Add coverage for E2E tests 2023-06-16 20:25:40 +05:30
Pierrick Wauquier
270586095f fix typo in test description 2023-06-16 16:37:34 +02:00
Pierrick Wauquier
aa1b998fbf always resolve in the end 2023-06-16 16:32:57 +02:00
Pierrick Wauquier
8b6485035e add failing test 2023-06-16 16:32:11 +02:00
Sidharth Vinod
15dbf22a40 Merge pull request #4486 from Yokozuna59/standardized-diagrams-definitions
standardize info diagram definitions
2023-06-16 17:44:31 +05:30
Sidharth Vinod
1a31dc4be8 Merge pull request #4495 from mermaid-js/update-latest-news-section
Update latest news section
2023-06-16 08:24:15 +05:30
steph
9a692b3437 update latest news section 2023-06-15 16:20:22 -07:00
Yokozuna59
95bba56bd8 rename plugin variable into info in infoDetector.ts 2023-06-16 00:07:06 +03:00
Yokozuna59
45f8fb4a84 remove cypress/platform/index.html 2023-06-16 00:05:39 +03:00
Yokozuna59
302f335704 update pnpm-lock.yaml 2023-06-15 23:52:11 +03:00
Yokozuna59
896a8a23ca indent info.html files 2023-06-15 23:51:03 +03:00
Yokozuna59
9928a15a66 update pnpm-lock.yaml 2023-06-15 14:44:26 +03:00
Yokozuna59
2b388ec6ec Merge branch 'develop' into standardized-diagrams-definitions 2023-06-15 11:38:41 +03:00
Knut Sveidqvist
cf706ea917 Merge pull request #4493 from mermaid-js/develop
Release docs
2023-06-15 09:23:24 +02:00
Sidharth Vinod
3662869ce1 Ignore slack link 2023-06-15 12:50:59 +05:30
Sidharth Vinod
415e73b6f4 Fix lycheeignore 2023-06-15 12:48:20 +05:30
Sidharth Vinod
609530b246 Fix lycheeignore 2023-06-15 12:39:34 +05:30
Sidharth Vinod
cae612dfff Merge branch 'master' into develop
* master:
  Use script instead of npm package.
  feat: Add plausible
  update cSpell
  update latest news section
2023-06-15 12:27:47 +05:30
Sidharth Vinod
7cd62bd052 Revert patch changes 2023-06-15 12:25:56 +05:30
Sidharth Vinod
d4a473b88a Revert patch changes 2023-06-15 12:25:10 +05:30
Sidharth Vinod
c73d4939e9 Ignore localhost 2023-06-15 12:23:17 +05:30
Sidharth Vinod
beb3a227d1 Merge pull request #3814 from weedySeaDragon/docs/3682-developer-contributing
chore: revise Contributing documentation
2023-06-15 12:21:29 +05:30
Sidharth Vinod
66116ef8a0 Add docker 2023-06-15 12:08:54 +05:30
Sidharth Vinod
307aa6f623 Merge branch 'develop' into pr/weedySeaDragon/3814
* develop:
  Rerun
  Support for development in Docker
2023-06-15 12:08:30 +05:30
Sidharth Vinod
08c1071382 Ignore localhost links 2023-06-15 12:06:29 +05:30
Sidharth Vinod
186de337b4 Remove duplication from Contributing.md 2023-06-15 12:04:37 +05:30
Sidharth Vinod
8426716886 Merge pull request #4478 from nirname/feature/docker-development-support
Support for development in Docker
2023-06-15 10:34:09 +05:30
Sidharth Vinod
ecec4d9e4c Update development.md 2023-06-15 10:31:16 +05:30
Sidharth Vinod
5b4efbad49 ignore .pnpm-store 2023-06-15 09:50:14 +05:30
Sidharth Vinod
1a6fd69f65 Merge branch 'develop' into pr/weedySeaDragon/3814
* develop: (815 commits)
  Move filetype Recommendations to the top
  Update docs
  Update integrations.md per review
  Disable coveralls
  Update coveralls
  Ignore bundlephobia
  Update docs
  strawman extension and mime type docs
  Update docs
  Rename info to note
  Rename "info" to "note"
  Update all patch dependencies
  Fix Directives Documentation
  Run docs:build
  Update tutorial link
  Run build
  Fix link to Tutorials from n00b-overview page
  Correct timeline spelling
  UPdated version to 10.2.3
  Remove old changelog
  ...
2023-06-15 09:49:26 +05:30
Yokozuna59
b7795ef12d remove empty options in cypress info.spec.ts 2023-06-15 03:18:09 +03:00
Yokozuna59
35e81f3fd4 format and add theme to cypress info.html 2023-06-15 02:56:29 +03:00
Yokozuna59
7e639bec3a convert the cypress info.spec.js into ts 2023-06-15 02:41:07 +03:00
Yokozuna59
9deae27c82 add messing timeline and info demoes links 2023-06-15 02:30:51 +03:00
Yokozuna59
689ffbf5a5 change infoDb db export 2023-06-15 01:01:35 +03:00
Yokozuna59
f630fba392 remove default export in info files 2023-06-14 23:27:27 +03:00
Yokozuna59
bf346ea155 resolve db import in info.spec.ts 2023-06-14 22:23:31 +03:00
Yokozuna59
d6bd59c46e remove assigned variables to their variables and export db without default 2023-06-14 22:09:15 +03:00
Yokozuna59
0cc93d38c6 use object destructuring for getConfig in infoRenderer 2023-06-14 22:04:28 +03:00
Yokozuna59
6ff33149e0 move default_info_db into infoDbOF 2023-06-14 22:01:27 +03:00
Yokozuna59
638c3691a8 remove id and diagram assigning in info loader 2023-06-14 21:14:55 +03:00
Yokozuna59
599fb3a728 assign returned variables to their variables 2023-06-14 20:13:22 +03:00
Yokozuna59
4b7ed7845b remove handled ts-ignore in info diagram 2023-06-14 17:28:37 +03:00
Yokozuna59
0c449bbd27 handle optional .styles 2023-06-14 17:27:04 +03:00
Yokozuna59
8d60ef6d0a add info fields interface 2023-06-14 13:54:09 +03:00
Yokozuna59
6af2438474 add default info db and recreate clear function for info 2023-06-14 13:48:39 +03:00
Sidharth Vinod
56a9625d95 Merge pull request #4485 from bollwyvl/gh-3098-document-extension-and-mime
Document recommended file extension and MIME type docs
2023-06-13 21:20:19 +05:30
Sidharth Vinod
921bbd1a9f Move filetype Recommendations to the top 2023-06-13 21:19:01 +05:30
Yokozuna59
750b1d2223 add HTML type and change svg type generic types 2023-06-13 16:56:31 +03:00
Yokozuna59
ae14f6a947 add parial parts to info graph 2023-06-13 18:50:08 +03:00
Yokozuna59
daee545e78 ignore ts check for renders until handle them 2023-06-13 17:59:41 +03:00
Yokozuna59
ab0eb6c9bf add @types/d3-selection to mermaid dev deps 2023-06-13 17:58:25 +03:00
Yokozuna59
2a5b122d0c standardize ts-ignore for info graph 2023-06-13 15:32:00 +03:00
bollwyvl
3e20a42b3e Update docs 2023-06-13 12:00:46 +00:00
Nicholas Bollweg
e2a32e5040 Update integrations.md per review 2023-06-13 06:57:16 -05:00
Yokozuna59
f0b1529727 rename inf into toggle for better readability in infoDb 2023-06-13 13:27:15 +03:00
Yokozuna59
171d7a04f4 caps DB part in DiagramDb and InfoDb 2023-06-13 12:24:10 +03:00
Sidharth Vinod
445da58b51 Merge branch 'develop' into sidv/splitUnicode
* develop:
  Disable coveralls
2023-06-13 12:50:52 +05:30
Sidharth Vinod
40199e28b8 Disable coveralls 2023-06-13 12:23:41 +05:30
Sidharth Vinod
25a85eef69 Merge branch 'develop' into sidv/splitUnicode
* develop:
  Update coveralls
  Ignore bundlephobia
  Run docs:build
  Correct timeline spelling
2023-06-13 11:50:08 +05:30
Sidharth Vinod
245c4f8c78 Update coveralls 2023-06-13 11:49:43 +05:30
Sidharth Vinod
b36a0177db Use joiner to split unicode 2023-06-13 11:42:39 +05:30
Sidharth Vinod
dd4e14690d Add types 2023-06-13 11:26:25 +05:30
Sidharth Vinod
5903792207 rename handle-markdown-text 2023-06-13 10:34:24 +05:30
Nikolay Rozhkov
616d445074 Rerun 2023-06-13 00:37:31 +03:00
Nikolay Rozhkov
cdea0ea829 Support for development in Docker
Updated lintignore and move dockerfile to .dev

Fix

Updated contributing

Fixing GA

Fix contributing.md

Fixing issues after review

No need to change .eslintignore
2023-06-13 00:20:14 +03:00
Yokozuna59
d0e8074de7 remove empty styles in info diagram 2023-06-12 23:15:24 +03:00
Yokozuna59
e7b9b5a0a9 set styles as optional in DiagramDefinition 2023-06-12 23:10:20 +03:00
Yokozuna59
f35e0cafdf fix TODs type in erDiagram 2023-06-12 23:09:26 +03:00
Sidharth Vinod
af13f3430a Ignore bundlephobia 2023-06-12 23:57:22 +05:30
Yokozuna59
c78ad7dbac create ParseDirectiveDefinition type for parsing directives 2023-06-12 21:11:34 +03:00
Yokozuna59
4320fe7839 return draw function export in info renderer 2023-06-12 20:46:18 +03:00
Yokozuna59
5b4356bd43 remove unnecessary typeof Error in info diagram renderer 2023-06-12 20:34:41 +03:00
Yokozuna59
98d9205e6f update info @ts-ignore comments deception 2023-06-12 19:49:37 +03:00
Yokozuna59
dfdfa63009 add type keyword for import for info diagram files 2023-06-12 19:44:36 +03:00
Yokozuna59
e6a48f8baf standardize info diagram definition
* create types
* remove unnessery db attributes
* convert js files to ts
* remove empty styles.js
2023-06-12 19:41:37 +03:00
Yokozuna59
372b57d540 create DrawDefinition function type 2023-06-12 19:36:54 +03:00
bollwyvl
a7b75d71e4 Update docs 2023-06-12 14:14:19 +00:00
Nicholas Bollweg
64558ffa9c strawman extension and mime type docs 2023-06-12 09:09:29 -05:00
Yokozuna59
9573f336c3 standardize detectors loeader function definition with DiagramLoader type 2023-06-12 15:28:45 +03:00
Yokozuna59
6ced1673b0 standardize detector function definition with DiagramDetector type 2023-06-12 15:21:43 +03:00
Yokozuna59
e688138167 pref: change detectors from .match into .test
there is no need for matching, capturing results, and validating nullablity
just using `.test` would be enough and significantly faster

for more info, see https://stackoverflow.com/10940138/16476610
2023-06-12 14:45:08 +03:00
Yokozuna59
b11c511c5c remove unnecessary @ts-ignore and @ts-nocheck 2023-06-12 13:27:40 +03:00
Yokozuna59
5b3e565b63 update pnpm-lock.yaml file 2023-06-12 13:25:36 +03:00
Sidharth Vinod
8cbe1a9046 Fix lint 2023-06-12 15:23:43 +05:30
Sidharth Vinod
4a200473c9 Merge pull request #4467 from adamazing/patch-1
Correct "Bronze" spelling in timeline docs
2023-06-12 15:04:24 +05:30
Sidharth Vinod
c85e479f88 Merge branch 'develop' into sidv/splitUnicode
* develop:
  Update docs
  Rename info to note
  Rename "info" to "note"
  Update all patch dependencies
  Fix Directives Documentation
  Update tutorial link
  Run build
  Fix link to Tutorials from n00b-overview page
  UPdated version to 10.2.3
  Remove old changelog
  Remove old changelog
  Setting version to 10.2.2
  #4446 Improved regular expression
  #4446 Updating the cleanup criteria
  #4438 Reverted to the changes from #4285
  Fix download
  Fix compile error in docs.
  Fix Contributor link in homepage
  Update docs
  Add hint on "flowchart" and "graph" (and some more styling)
2023-06-12 14:58:58 +05:30
Sidharth Vinod
a379cd02e7 Add logs 2023-06-12 14:57:56 +05:30
Sidharth Vinod
190d79613d Merge pull request #4096 from koppor/patch-1
Add hint on "flowchart" and "graph"
2023-06-12 13:59:43 +05:30
koppor
bdd3ed41fc Update docs 2023-06-12 07:51:59 +00:00
Oliver Kopp
ea138ef29f Rename info to note 2023-06-12 09:48:28 +02:00
Oliver Kopp
26d0e5cb04 Rename "info" to "note" 2023-06-12 09:48:02 +02:00
Oliver Kopp
355b471ca0 Merge branch 'develop' into patch-1 2023-06-12 09:09:29 +02:00
Sidharth Vinod
b651be77f1 Merge pull request #4482 from mermaid-js/renovate/patch-all-patch
Update all patch dependencies (patch)
2023-06-12 12:01:52 +05:30
renovate[bot]
a754f7b699 Update all patch dependencies 2023-06-12 05:43:36 +00:00
Sidharth Vinod
2abb9541b6 Merge pull request #4475 from adamazing/fix-directives-documentation
Fix Directives Documentation
2023-06-12 11:12:13 +05:30
Adam Henley
d32d935c44 Fix Directives Documentation
Signed-off-by: Adam Henley <adamazing@gmail.com>
2023-06-10 23:31:34 +12:00
Adam Henley
c76cb93f6f Run docs:build
Signed-off-by: Adam Henley <adamazing@gmail.com>
2023-06-10 18:27:07 +12:00
Sidharth Vinod
779acb1b72 Merge pull request #4472 from Spiderpig86/patch-1
Fix link to Tutorials from n00b-overview page
2023-06-10 08:42:22 +05:30
Stanley Lim
19fab1f6a7 Update tutorial link 2023-06-09 16:52:49 -07:00
Sidharth Vinod
40f517daee Merge pull request #4473 from mermaid-js/sidv/addPlausible
Add Plausible analytics
2023-06-10 01:38:31 +05:30
Sidharth Vinod
88bda42e74 Use script instead of npm package. 2023-06-10 01:37:39 +05:30
Sidharth Vinod
9b6f2ecf42 feat: Add plausible 2023-06-10 01:20:48 +05:30
Stanley Lim
071f490047 Run build 2023-06-09 11:17:03 -07:00
Stanley Lim
6e657e56a0 Fix link to Tutorials from n00b-overview page 2023-06-09 10:41:54 -07:00
Sidharth Vinod
b3ce56c7fc Cleanup 2023-06-09 17:03:02 +05:30
Sidharth Vinod
3f080e5bc8 Merge branch 'sidv/splitUnicode' of https://github.com/mermaid-js/mermaid into sidv/splitUnicode
* 'sidv/splitUnicode' of https://github.com/mermaid-js/mermaid:
  Update docs
2023-06-09 16:57:27 +05:30
Sidharth Vinod
7b4601762a Use splitLineToFitWidth function 2023-06-09 16:57:13 +05:30
sidharthv96
d4edd98b8a Update docs 2023-06-09 11:24:11 +00:00
Sidharth Vinod
0a437f5800 feat: split unicode properly 2023-06-09 16:48:30 +05:30
Sidharth Vinod
c41df420d7 Add splitText 2023-06-09 11:06:45 +05:30
Sidharth Vinod
dad9e94816 Merge pull request #4468 from mermaid-js/update-latest-news
Update latest news section
2023-06-09 10:57:38 +05:30
steph
4adc94761d update cSpell 2023-06-08 22:00:50 -07:00
steph
a51e6e06f7 update latest news section 2023-06-08 21:55:20 -07:00
Adam Henley
768e0122e2 Correct timeline spelling
Spotted a spelling mistake while browsing the docs. 

s/Broze/Bronze/
2023-06-09 16:40:28 +12:00
Laura Valentine Tscharner
b79f9bdced docs(sequence): actor creation and destruction #1838 2023-06-08 17:44:36 +01:00
Laura Valentine Tscharner
d06bb05c5f feat(sequence): actor creation and destruction #1838 2023-06-08 17:17:31 +01:00
Knut Sveidqvist
ac9a79643c Merge branch 'release/10.2.3' 2023-06-08 16:30:10 +02:00
Knut Sveidqvist
9a080bb975 Merge branch 'release/10.2.3' into develop 2023-06-08 16:29:53 +02:00
Knut Sveidqvist
75f9de3d4a UPdated version to 10.2.3 2023-06-08 16:24:25 +02:00
Knut Sveidqvist
81e86bc87c Merge branch '10.2.2' into develop 2023-06-08 15:07:31 +02:00
Sidharth Vinod
f464212dc0 Merge pull request #4416 from MikeJeffers/bug/4408
Fix #4408: Handle wrapping long words
2023-06-08 11:46:09 +05:30
Sidharth Vinod
0ad084182a Remove old changelog 2023-06-08 11:42:14 +05:30
Sidharth Vinod
e2e9d0f1f3 Remove old changelog 2023-06-08 11:36:47 +05:30
Sidharth Vinod
ac488dd800 Merge branch 'develop' into pr/MikeJeffers/4416
* develop:
  Update docs
2023-06-08 11:13:51 +05:30
sidharthv96
d00d20fc37 Update docs 2023-06-07 18:49:51 +00:00
Sidharth Vinod
88b94dea66 Merge branch 'develop' into pr/MikeJeffers/4416
* develop: (45 commits)
  Add nextra to cSpell
  Update docs: Added Nextra to Blogs category on integrations page
  Render empty lines correctly
  Restore classes on edges for elk
  Update diagram proposal
  Update docs
  Added CKEditor and GitHub Writer to available integrations.
  Fix exceptions for empty lines
  chore(deps): update all patch dependencies
  build(deps): fix broken pnpm-lock.yaml file
  Mermaid version 10.2.0
  Mermaid Version 10.2.0-rc.4
  Label background fix
  Test commit
  Fix for regression error in sequenceDiagrams
  Update all minor dependencies
  Update all patch dependencies
  Update docs
  Add contributors profile url
  ignore ZenUML types
  ...
2023-06-08 00:16:49 +05:30
Sidharth Vinod
9896402be6 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid:
  Update docs: Added Nextra to Blogs category on integrations page
2023-06-08 00:16:16 +05:30
Sidharth Vinod
e9b76bba9b Add nextra to cSpell 2023-06-08 00:16:12 +05:30
Sidharth Vinod
ad09d63f65 only split if string is over length. 2023-06-08 00:07:33 +05:30
Sidharth Vinod
af7531d08a Merge pull request #4463 from try-to-fly/add-nextra-to-blogs-integrations
Update docs: Added Nextra to Blogs category on integrations page
2023-06-07 20:28:40 +05:30
微笑
eef6745272 Update docs: Added Nextra to Blogs category on integrations page 2023-06-07 16:06:52 +08:00
mikejeffers
0cb6df1ef8 refactor text width computing func 2023-06-06 23:11:07 -04:00
Jonathan Young
ab627802a8 Changed C4 stereotype braces to «» 2023-06-05 12:01:37 +01:00
Sidharth Vinod
f20ff4d580 Merge pull request #4436 from slab/zh-mermaid-empty-text
Fix exceptions for empty lines
2023-06-05 11:43:43 +05:30
Zihua Li
2a6603b33a Render empty lines correctly 2023-06-04 16:24:41 +08:00
Sidharth Vinod
6115f6976a Merge pull request #4452 from yoavst/feature/restore-classes-on-edges-for-elk
Restore classes on edges for elk
2023-06-04 12:02:54 +05:30
Yoav Sternberg
da1beb36bf Restore classes on edges for elk 2023-06-02 22:10:39 +03:00
Knut Sveidqvist
d2409dc163 Setting version to 10.2.2 2023-06-02 08:50:59 +02:00
Knut Sveidqvist
1b40f552b2 Merge pull request #4334 from mermaid-js/sidv/zenuml
Add `@mermaid-js/mermaid-zenuml` package for zenuml Integration
2023-06-02 08:41:49 +02:00
Knut Sveidqvist
5b696a72f8 Merge pull request #4448 from mermaid-js/sidv/diagramProposal
Update diagram proposal
2023-06-02 08:40:35 +02:00
Sidharth Vinod
d148a65967 Merge branch 'develop' into sidv/zenuml
* develop: (22 commits)
  Update docs
  Added CKEditor and GitHub Writer to available integrations.
  chore(deps): update all patch dependencies
  build(deps): fix broken pnpm-lock.yaml file
  Mermaid version 10.2.0
  Mermaid Version 10.2.0-rc.4
  Label background fix
  Test commit
  Fix for regression error in sequenceDiagrams
  Fix visibility issue for fields
  fix parsing issue with class diagrams
  fix: Use unicode arrows in quadrant chart axis
  fix: Use unicode arrows in quadrant chart axis
  fix lint command
  Bump version
  Back to JS with jsdoc types
  Add unsupported text
  Reduce changes in test
  Fix deps
  Fix lockfile
  ...
2023-06-02 11:59:12 +05:30
Sidharth Vinod
74ccf6410d Update diagram proposal 2023-06-02 11:50:49 +05:30
Knut Sveidqvist
7cdb15c526 Merge pull request #4447 from mermaid-js/4446-handling-of-arrowMarker-urls
#4446 Updating the cleanup criteria
2023-06-01 17:55:45 +02:00
Knut Sveidqvist
55092f532f #4446 Improved regular expression 2023-06-01 17:39:54 +02:00
Knut Sveidqvist
7b6cb4f974 #4446 Updating the cleanup criteria 2023-06-01 16:30:57 +02:00
sidharthv96
c2c8024718 Update docs 2023-05-31 11:11:04 +00:00
Sidharth Vinod
5338d90077 Merge pull request #4440 from AnnaTomanek/patch-1
Add CKEditor and GitHub Writer to available integrations
2023-05-31 16:36:30 +05:30
Anna Tomanek
180c695f2f Added CKEditor and GitHub Writer to available integrations. 2023-05-31 12:15:40 +02:00
Zihua Li
ce9bdcc53f Fix exceptions for empty lines 2023-05-29 21:00:37 +08:00
renovate[bot]
38d9ebc5da chore(deps): update all patch dependencies 2023-05-29 05:19:50 +00:00
Sidharth Vinod
5fd5de10b5 Merge pull request #4400 from mermaid-js/sidv/quadrantArrows
Quadrant chart unicode arrows
2023-05-26 17:21:26 +05:30
Alois Klink
cb2bc2a587 Merge pull request #4425 from aloisklink/chore/fix-broken-lockfile
Fix broken `pnpm-lock.yaml` file to fix CI
2023-05-24 23:03:54 +01:00
Sidharth Vinod
102b9bc8c3 Merge branch 'develop' into sidv/zenuml
* develop:
  Update all minor dependencies
  Update all patch dependencies
2023-05-23 10:36:02 +05:30
Sidharth Vinod
9cec5ae1c4 Merge branch 'sidv/zenuml' of https://github.com/mermaid-js/mermaid into sidv/zenuml
* 'sidv/zenuml' of https://github.com/mermaid-js/mermaid:
  Update docs
  Add contributors profile url
  ignore ZenUML types
  fixed typo and update peerDependencies version
  update pnpm-lock.yaml
  Address mermaid-zenuml PR comments
  Update all minor dependencies
  Update all patch dependencies
  Fix vitepress build
2023-05-23 10:34:08 +05:30
mikejeffers
496585b543 handle trailing whitespace on lines 2023-05-20 16:04:58 -04:00
mikejeffers
9e6168111f add e2e test 2023-05-20 15:20:28 -04:00
mikejeffers
f535640c1e Fixes #4408: solve infinite loop on words that exceed width constraint with word break 2023-05-20 14:59:04 -04:00
Alois Klink
acc19db5bb Merge branch 'develop' into sidv/zenuml
Conflicts:
	pnpm-lock.yaml
2023-05-17 19:59:58 +01:00
aloisklink
6cce1b20fb Update docs 2023-05-17 18:46:58 +00:00
dontry
a00616863d Add contributors profile url 2023-05-17 19:26:43 +01:00
dontry
49c97dad4c ignore ZenUML types 2023-05-17 19:26:43 +01:00
Alois Klink
e984b34af4 Merge branch 'develop' into sidv/zenuml
* develop: (66 commits)
  Update docs
  Update docs
  Improve the wording of security level values
  Added quadrantChart to the side bar
  Added e2e test cases with some fixes
  Added documentation for the quadrantChart
  Restructured the build function and addressed more review comment
  Fixed some parser issue and added test cases for the parser
  Fixed review comment
  Update docs
  Converted files to typescript and added proper types
  Fix blog linting
  Debug fetch-contributors
  Fix lockfile
  Revert "Replace esno & ts-node with tsx"
  [draft] Added support for quadrant chart
  Fix lockfile
  Fix build
  Update pnpm-lock
  Replace esno & ts-node with tsx
  ...

Merge conflicts:
  - pnpm-lock.yaml
2023-05-17 19:25:29 +01:00
Sidharth Vinod
c255d95ae2 Merge pull request #4405 from ZenUml/dongc/zenuml
Address mermaid-zenuml PR comments
2023-05-17 19:10:25 +01:00
Dong Cai
27e59e5adc fixed typo and update peerDependencies version 2023-05-17 19:10:19 +01:00
Dong Cai
507e24cc72 update pnpm-lock.yaml 2023-05-17 19:10:03 +01:00
Dong Cai
bb400d53b9 Address mermaid-zenuml PR comments 2023-05-17 19:09:48 +01:00
Sidharth Vinod
6a89ef94f7 Cleanup 2023-05-17 11:21:03 +05:30
Sidharth Vinod
97be4983f0 Merge branch 'develop' into sidv/zenuml
* develop: (66 commits)
  Update docs
  Update docs
  Improve the wording of security level values
  Added quadrantChart to the side bar
  Added e2e test cases with some fixes
  Added documentation for the quadrantChart
  Restructured the build function and addressed more review comment
  Fixed some parser issue and added test cases for the parser
  Fixed review comment
  Update docs
  Converted files to typescript and added proper types
  Fix blog linting
  Debug fetch-contributors
  Fix lockfile
  Revert "Replace esno & ts-node with tsx"
  [draft] Added support for quadrant chart
  Fix lockfile
  Fix build
  Update pnpm-lock
  Replace esno & ts-node with tsx
  ...
2023-05-16 23:26:35 +05:30
Sidharth Vinod
c7affbe33b Merge pull request #4405 from ZenUml/dongc/zenuml
Address mermaid-zenuml PR comments
2023-05-16 23:25:29 +05:30
Dong Cai
82eccb70fa fixed typo and update peerDependencies version 2023-05-16 23:41:53 +10:00
Dong Cai
c889ef0c30 update pnpm-lock.yaml 2023-05-16 21:08:25 +10:00
Dong Cai
cce5505662 Address mermaid-zenuml PR comments 2023-05-16 20:30:25 +10:00
Garen J. Torikian
dfb15901f4 Make the doc change in the right place
This is due to the sloppy fact that there are two copies of every doc
page in the repo.
2023-05-15 09:26:49 -04:00
Sidharth Vinod
b925849893 fix: Use unicode arrows in quadrant chart axis 2023-05-15 13:36:35 +05:30
Sidharth Vinod
d86d1e7887 fix: Use unicode arrows in quadrant chart axis 2023-05-15 13:32:59 +05:30
Garen Torikian
c9da36dc8b Fix a typo 2023-05-14 14:27:08 -04:00
koppor
5c8b739047 Update docs 2023-04-30 18:19:56 +00:00
Oliver Kopp
df1095166e Add hint on "flowchart" and "graph" (and some more styling) 2023-04-30 20:16:24 +02:00
Sidharth Vinod
a01343bf1b Fix lockfile 2023-04-27 10:37:35 +05:30
Sidharth Vinod
88f9233aa8 Merge branch 'develop' into sidv/zenuml
* develop:
  submit built docs
  update Font Awesome Version
  Clarify FontAwesome support
2023-04-27 10:36:16 +05:30
Sidharth Vinod
8cd48bf405 Add docs 2023-04-26 00:31:00 +05:30
Sidharth Vinod
8b18fd93f4 Add test 2023-04-26 00:20:00 +05:30
Sidharth Vinod
ec62c2bf5b Merge branch 'develop' into sidv/zenuml
* develop: (33 commits)
  Update version
  Fix classParser
  Check for conflict when linting jison
  Update class grammar test
  fix Class diagram grammar
  Skip sourcemap
  Bump version
  Update deps
  Fix unit tests
  Update vite
  Fix applitools cypress
  Update packages/mermaid/package.json
  chore(deps): update dependency typescript to v5
  fix typedoc
  fix(deps): update all minor dependencies
  chore(deps): update pnpm to v8
  chore(deps): update fregante/setup-git-user action to v2
  fix(deps): update all minor dependencies
  chore(deps): update dependency start-server-and-test to v2
  chore(deps): update dependency rimraf to v5
  ...
2023-04-26 00:15:52 +05:30
Sidharth Vinod
b9e7ba023f Update ZenUML 2023-04-26 00:12:39 +05:30
Sidharth Vinod
12ed81855a Add zenuml 2023-04-23 00:34:59 +05:30
Tom PERRILLAT-COLLOMB
c15326b896 test(flowchart): add test on multiple classes declaration 2022-12-22 13:59:49 +01:00
Tom PERRILLAT-COLLOMB
c0391c8a15 docs(flowchart): add docs on multiple classDef/linkStyle definition 2022-12-22 13:47:53 +01:00
Tom PERRILLAT-COLLOMB
2055f89bf7 feat(flowchart): add classDef group definition
enable to add styles to many classDef in a single statement
2022-12-17 11:34:44 +00:00
Ashley Engelund (weedySeaDragon @ github)
a497909446 fix pnpm dev command example 2022-11-28 08:54:14 -08:00
Ashley Engelund
75fa259472 simplify pnpm cypress command example
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-11-28 08:46:10 -08:00
Ashley Engelund (weedySeaDragon @ github)
6807f19ec2 fix links 2022-11-28 07:38:19 -08:00
Ashley Engelund (weedySeaDragon @ github)
3c49fb2c84 (minor) force link check again (too many network calls before) 2022-11-27 11:39:25 -08:00
Ashley Engelund (weedySeaDragon @ github)
b15eacf6f2 remove references to old sidebar.md file 2022-11-27 11:11:13 -08:00
Ashley Engelund (weedySeaDragon @ github)
3eb2bb9c0b Merge develop into HEAD; install; lint:fix 2022-11-25 10:40:04 -08:00
Ashley Engelund (weedySeaDragon @ github)
ee0f872b5b Merge develop cSpell.json 2022-11-25 10:37:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
bd5b5cda06 Merge remote-tracking branch 'origin/docs/3682-developer-contributing' into docs/3682-developer-contributing
# Conflicts:
#	packages/mermaid/src/docs/community/development.md
2022-11-19 09:23:24 -08:00
Ashley Engelund (weedySeaDragon @ github)
fee63d83ee update related /docs file 2022-11-19 09:16:19 -08:00
Ashley Engelund
0333bc172c spelling: description; .. help us keep release notes organized
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-11-18 15:39:29 -08:00
Ashley Engelund
71d2175e19 questions? search in... capitalize Search, + closed issues
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-11-18 15:38:52 -08:00
Ashley Engelund (weedySeaDragon @ github)
bd8f620480 updates based on sidharthv96's review 2022-11-18 15:24:10 -08:00
Ashley Engelund (weedySeaDragon @ github)
3fbc26dfc9 Merge remote-tracking branch 'MERMAID/develop' into docs/3682-developer-contributing 2022-11-18 09:50:21 -08:00
Ashley Engelund (weedySeaDragon @ github)
a867400d56 (minor) fix formatting; add "upvoting" to cSpell.json 2022-11-18 09:37:57 -08:00
Ashley Engelund (weedySeaDragon @ github)
acebcbffc8 /doc files changed 2022-11-18 09:06:48 -08:00
Ashley Engelund (weedySeaDragon @ github)
449cbdfd02 make TODOs bold, ital so they're obv 2022-11-18 09:03:01 -08:00
Ashley Engelund (weedySeaDragon @ github)
3bdcfd9160 add TODO - PRs should start with... (fix|bug|feat|...) 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
9c0b81cee0 sidebar menu: remove sub-sub sections since sub menus cannot be collapsed 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
6b8f60efcf nav menu: contributing now points to src/doc about contributing 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
950832e56b Minor wording changes to Tech Reqs/Setup 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
535a1fc8cf add mermaid diagram 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
548ae5b023 sidebar: add sub-entries for Development/contribution 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
16d1610d75 clarify section headings; add TODO 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
e02240450a delete vdocs dir; it not longer exists 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
5eee76764d add TBD/comments in 'Contribute to Documentation....' section 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
dabda9d4ef CONTRIBUTING.md is note (with link) to development.md on doc site 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
135893f067 copy working draft to vdocs/community/development.md 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
95120c3f21 added main TOC headings 2022-11-18 08:52:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
47b695c3c5 reorganize, start adding text 2022-11-18 08:52:16 -08:00
355 changed files with 16622 additions and 10113 deletions

View File

@@ -4,4 +4,5 @@ docs/Setup.md
cypress.config.js
cypress/plugins/index.js
coverage
*.json
*.json
node_modules

View File

@@ -38,12 +38,17 @@ module.exports = {
'lodash',
'unicorn',
],
ignorePatterns: [
// this file is automatically generated by `pnpm run --filter mermaid types:build-config`
'packages/mermaid/src/config.type.ts',
],
rules: {
curly: 'error',
'no-console': 'error',
'no-prototype-builtins': 'off',
'no-unused-vars': 'off',
'cypress/no-async-tests': 'off',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-floating-promises': 'error',
'@typescript-eslint/no-misused-promises': 'error',
'@typescript-eslint/ban-ts-comment': [
@@ -123,6 +128,14 @@ module.exports = {
files: ['*.{ts,tsx}'],
plugins: ['tsdoc'],
rules: {
'no-restricted-syntax': [
'error',
{
selector: 'TSEnumDeclaration',
message:
'Prefer using TypeScript union types over TypeScript enum, since TypeScript enums have a bunch of issues, see https://dev.to/dvddpl/whats-the-problem-with-typescript-enums-2okj',
},
],
'tsdoc/syntax': 'error',
},
},

View File

@@ -53,8 +53,17 @@ body:
Please fill out the info below.
Note that you only need to fill out the relevant section
value: |-
- Mermaid version:
- Mermaid version:
- Browser and Version: [Chrome, Edge, Firefox]
- type: textarea
attributes:
label: Suggested Solutions
description: >
If applicable, suggest solutions that could resolve the bug.
It would help maintainers/contributors to not waste time looking for the solution. Even pointing the line causing the bug would be great!
placeholder: |-
- Variable `parser` in file <filepath> is not initialised ...
- Add a new type for ...
- type: textarea
attributes:
label: Additional Context

View File

@@ -3,6 +3,7 @@ description: Suggest a new Diagram Type to add to Mermaid.
labels:
- 'Status: Triage'
- 'Type: Enhancement'
- 'Type: New Diagram'
body:
- type: markdown
@@ -17,6 +18,14 @@ body:
- Use a clear and concise title
- Fill out the text fields with as much detail as possible.
- Never be shy to give us screenshots and/or code samples. It will help!
## Example issues
Refer to the discussions here to get an idea of how the diagram syntax is created.
- https://github.com/mermaid-js/mermaid/issues/4269
- https://github.com/mermaid-js/mermaid/issues/4282
- type: textarea
attributes:
label: Proposal
@@ -35,8 +44,17 @@ body:
description: If applicable, add screenshots to show possible examples of how the diagram may look like.
- type: textarea
attributes:
label: Code Sample
label: Syntax
description: |-
If applicable, add a code sample for how to implement this new diagram.
The text will automatically be rendered as JavaScript code.
render: javascript
If possible, include a syntax which could be used to write the diagram.
Try to add one or two examples of valid use-cases here.
- type: dropdown
id: implementation
attributes:
label: Implementation
description: |-
Would you like to implement this yourself, or is it a proposal for the community?
If there is no corresponding PR from your side after 30 days, the diagram will be open for everyone to implement.
options:
- I will try and implement it myself.
- This is a proposal which I'd love to see built into mermaid by the wonderful community.

17
.github/codecov.yaml vendored Normal file
View File

@@ -0,0 +1,17 @@
codecov:
branch: develop
comment:
layout: 'reach, diff, flags, files'
behavior: default
require_changes: false # if true: only post the comment if coverage changes
require_base: no # [yes :: must have a base report to post]
require_head: yes # [yes :: must have a head report to post]
coverage:
status:
project:
off
# Turing off for now as code coverage isn't stable and causes unnecessary build failures.
# default:
# threshold: 2%

44
.github/lychee.toml vendored Normal file
View File

@@ -0,0 +1,44 @@
############################# Display #############################
# Verbose program output
# Accepts log level: "error", "warn", "info", "debug", "trace"
verbose = "debug"
# Don't show interactive progress bar while checking links.
no_progress = true
############################# Cache ###############################
# Enable link caching. This can be helpful to avoid checking the same links on
# multiple runs.
cache = true
# Discard all cached requests older than this duration.
max_cache_age = "1d"
############################# Requests ############################
# Comma-separated list of accepted status codes for valid links.
accept = [200, 429]
############################# Exclusions ##########################
# Exclude URLs and mail addresses from checking (supports regex).
exclude = [
# Network error: Forbidden
"https://codepen.io",
# Timeout error, maybe Twitter has anti-bot defenses against GitHub's CI servers?
"https://twitter.com/mermaidjs_",
# Don't check files that are generated during the build via `pnpm docs:code`
'packages/mermaid/src/docs/config/setup/*',
# Ignore slack invite
"https://join.slack.com/"
]
# Exclude all private IPs from checking.
# Equivalent to setting `exclude_private`, `exclude_link_local`, and
# `exclude_loopback` to true.
exclude_all_private = true

View File

@@ -1,3 +1,4 @@
'Type: Bug / Error': 'bug/*'
'Type: Enhancement': 'feature/*'
'Type: Other': 'other/*'
'Type: Bug / Error': ['bug/*', fix/*]
'Type: Enhancement': ['feature/*', 'feat/*']
'Type: Other': ['other/*', 'chore/*', 'test/*', 'refactor/*']
'Area: Documentation': ['docs/*']

View File

@@ -13,6 +13,6 @@ 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)
- [ ] :computer: have added unit/e2e tests (if appropriate)
- [ ] :notebook: have added documentation (if appropriate)
- [ ] :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/development.md#3-update-documentation) is used for all new features.
- [ ] :bookmark: targeted `develop` branch

View File

@@ -1,14 +1,27 @@
name-template: '$NEXT_PATCH_VERSION'
tag-template: '$NEXT_PATCH_VERSION'
categories:
- title: '🚨 **Breaking Changes**'
labels:
- 'Breaking Change'
- title: '🚀 Features'
labels:
- 'Type: Enhancement'
- 'feature' # deprecated, new PRs shouldn't have this
- title: '🐛 Bug Fixes'
labels:
- 'Type: Bug / Error'
- 'fix' # deprecated, new PRs shouldn't have this
- title: '🧰 Maintenance'
label: 'Type: Other'
labels:
- 'Type: Other'
- 'chore' # deprecated, new PRs shouldn't have this
- title: '⚡️ Performance'
labels:
- 'Type: Performance'
- title: '📚 Documentation'
labels:
- 'Area: Documentation'
change-template: '- $TITLE (#$NUMBER) @$AUTHOR'
sort-by: title
sort-direction: ascending

View File

@@ -1,14 +1,18 @@
name: Build Vitepress docs
on:
push:
branches:
- master
- release/*
pull_request:
merge_group:
permissions:
contents: read
jobs:
# Build job
build:
build-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -25,5 +29,9 @@ jobs:
- name: Install Packages
run: pnpm install --frozen-lockfile
- name: Verify release verion
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release')) }}
run: pnpm --filter mermaid run docs:verify-version
- name: Run Build
run: pnpm --filter mermaid run docs:build:vitepress

View File

@@ -2,6 +2,7 @@ name: Build
on:
push: {}
merge_group:
pull_request:
types:
- opened
@@ -12,7 +13,7 @@ permissions:
contents: read
jobs:
build:
build-mermaid:
runs-on: ubuntu-latest
strategy:
matrix:

View File

@@ -14,7 +14,7 @@ permissions:
contents: read
jobs:
check:
check-readme:
runs-on: ubuntu-latest
steps:
- name: Checkout repository

View File

@@ -1,15 +1,16 @@
on:
push: {}
push:
merge_group:
pull_request:
types:
- opened
- synchronize
- ready_for_review
name: Static analysis
name: Static analysis on Test files
jobs:
test:
check-tests:
runs-on: ubuntu-latest
name: check tests
if: github.repository_owner == 'mermaid-js'

View File

@@ -19,7 +19,7 @@ env:
USE_APPLI: ${{ secrets.APPLITOOLS_API_KEY && 'true' || '' }}
jobs:
test:
e2e-applitools:
runs-on: ubuntu-latest
strategy:
matrix:

View File

@@ -1,12 +1,15 @@
name: E2E
on: [push, pull_request]
on:
push:
pull_request:
merge_group:
permissions:
contents: read
jobs:
build:
e2e:
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -33,7 +36,7 @@ jobs:
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
start: pnpm run dev
start: pnpm run dev:coverage
wait-on: 'http://localhost:9000'
# Disable recording if we don't have an API key
# e.g. if this action was run from a fork
@@ -41,7 +44,19 @@ jobs:
parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
VITEST_COVERAGE: true
CYPRESS_COMMIT: ${{ github.sha }}
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v3
# Run step only pushes to develop and pull_requests
if: ${{ steps.cypress.conclusion == 'success' && (github.event_name == 'pull_request' || github.ref == 'refs/heads/develop')}}
with:
files: coverage/cypress/lcov.info
flags: e2e
name: mermaid-codecov
fail_ci_if_error: false
verbose: true
token: 6845cc80-77ee-4e17-85a1-026cd95e0766
- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: ${{ failure() && steps.cypress.conclusion == 'failure' }}

View File

@@ -20,7 +20,7 @@ on:
- cron: '30 8 * * *'
jobs:
linkChecker:
link-checker:
runs-on: ubuntu-latest
permissions:
# lychee only uses the GITHUB_TOKEN to avoid rate-limiting
@@ -39,10 +39,7 @@ jobs:
uses: lycheeverse/lychee-action@v1.8.0
with:
args: >-
--verbose
--no-progress
--cache
--max-cache-age 1d
--config .github/lychee.toml
packages/mermaid/src/docs/**/*.md
README.md
README.zh-CN.md

View File

@@ -1,7 +1,8 @@
name: Lint
on:
push: {}
push:
merge_group:
pull_request:
types:
- opened
@@ -52,6 +53,33 @@ jobs:
exit 1
fi
- name: Verify `./src/config.type.ts` is in sync with `./src/schemas/config.schema.yaml`
shell: bash
run: |
if ! pnpm run --filter mermaid types:verify-config; then
ERROR_MESSAGE='Running `pnpm run --filter mermaid types:verify-config` failed.'
ERROR_MESSAGE+=' This should be fixed by running'
ERROR_MESSAGE+=' `pnpm run --filter mermaid types:build-config`'
ERROR_MESSAGE+=' on your local machine.'
echo "::error title=Lint failure::${ERROR_MESSAGE}"
# make sure to return an error exitcode so that GitHub actions shows a red-cross
exit 1
fi
- name: Verify no circular dependencies
working-directory: ./packages/mermaid
shell: bash
run: |
if ! pnpm run --filter mermaid checkCircle; then
ERROR_MESSAGE='Circular dependency detected.'
ERROR_MESSAGE+=' This should be fixed by removing the circular dependency.'
ERROR_MESSAGE+=' Run `pnpm run --filter mermaid checkCircle` on your local machine'
ERROR_MESSAGE+=' to see the circular dependency.'
echo "::error title=Lint failure::${ERROR_MESSAGE}"
# make sure to return an error exitcode so that GitHub actions shows a red-cross
exit 1
fi
- name: Verify Docs
id: verifyDocs
working-directory: ./packages/mermaid

View File

@@ -1,11 +1,15 @@
name: Validate PR Labeler Configuration
on:
push: {}
push:
paths:
- .github/workflows/pr-labeler-config-validator.yml
- .github/workflows/pr-labeler.yml
- .github/pr-labeler.yml
pull_request:
types:
- opened
- synchronize
- ready_for_review
paths:
- .github/workflows/pr-labeler-config-validator.yml
- .github/workflows/pr-labeler.yml
- .github/pr-labeler.yml
jobs:
pr-labeler:

View File

@@ -19,7 +19,7 @@ concurrency:
jobs:
# Build job
build:
build-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -48,11 +48,11 @@ jobs:
path: packages/mermaid/src/vitepress/.vitepress/dist
# Deployment job
deploy:
deploy-docs:
environment:
name: github-pages
runs-on: ubuntu-latest
needs: build
needs: build-docs
steps:
- name: Deploy to GitHub Pages
id: deployment

View File

@@ -6,7 +6,7 @@ on:
- 'release/**'
jobs:
publish:
publish-preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

View File

@@ -1,12 +1,12 @@
name: Unit Tests
on: [push, pull_request]
on: [push, pull_request, merge_group]
permissions:
contents: read
jobs:
build:
unit-test:
runs-on: ubuntu-latest
strategy:
matrix:
@@ -31,7 +31,7 @@ jobs:
- name: Run Unit Tests
run: |
pnpm run ci --coverage
pnpm test:coverage
- name: Run ganttDb tests using California timezone
env:
@@ -39,13 +39,16 @@ jobs:
# since some days have 25 hours instead of 24.
TZ: America/Los_Angeles
run: |
pnpm exec vitest run ./packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts
pnpm exec vitest run ./packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts --coverage
- name: Upload Coverage to Coveralls
# it feels a bit weird to use @master, but that's what the docs use
# (coveralls also doesn't publish a @v1 we can use)
# https://github.com/marketplace/actions/coveralls-github-action
uses: coverallsapp/github-action@master
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v3
# Run step only pushes to develop and pull_requests
if: ${{ github.event_name == 'pull_request' || github.ref == 'refs/heads/develop' }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: unit
files: ./coverage/vitest/lcov.info
flags: unit
name: mermaid-codecov
fail_ci_if_error: false
verbose: true
token: 6845cc80-77ee-4e17-85a1-026cd95e0766

View File

@@ -5,7 +5,7 @@ on:
workflow_dispatch:
jobs:
build:
update-browser-list:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

7
.gitignore vendored
View File

@@ -3,8 +3,10 @@
node_modules/
coverage/
.idea/
.pnpm-store/
dist
v8-compile-cache-0
yarn-error.log
.npmrc
@@ -39,3 +41,8 @@ stats/
**/user-avatars/*
**/contributor-names.json
.pnpm-store
.nyc_output
demos/dev/**
!/demos/dev/example.html

View File

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

View File

@@ -5,4 +5,8 @@ coverage
# Autogenerated by PNPM
pnpm-lock.yaml
stats
packages/mermaid/src/docs/.vitepress/components.d.ts
**/.vitepress/components.d.ts
**/.vitepress/cache
.nyc_output
# Autogenerated by `pnpm run --filter mermaid types:build-config`
packages/mermaid/src/config.type.ts

View File

@@ -2,14 +2,17 @@ import { build, InlineConfig, type PluginOption } from 'vite';
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';
const visualize = process.argv.includes('--visualize');
const watch = process.argv.includes('--watch');
const mermaidOnly = process.argv.includes('--mermaid');
const coverage = process.env.VITE_COVERAGE === 'true';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const sourcemap = false;
@@ -44,6 +47,11 @@ const packageOptions = {
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
'mermaid-zenuml': {
name: 'mermaid-zenuml',
packageName: 'mermaid-zenuml',
file: 'detector.ts',
},
};
interface BuildOptions {
@@ -114,8 +122,15 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
},
plugins: [
jisonPlugin(),
jsonSchemaPlugin(), // handles `.schema.yaml` files
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
typescript({ compilerOptions: { declaration: false } }),
istanbul({
exclude: ['node_modules', 'test/', '__mocks__'],
extension: ['.js', '.ts'],
requireEnv: true,
forceBuildInstrument: coverage,
}),
...visualizerOptions(packageName, core),
],
};
@@ -146,6 +161,7 @@ if (watch) {
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, core: true, entryName: 'mermaid' }));

View File

@@ -1,8 +1,6 @@
// @ts-ignore No typings for jison
import jison from 'jison';
export const transformJison = (src: string): string => {
// @ts-ignore No typings for jison
const parser = new jison.Generator(src, {
moduleType: 'js',
'token-stack': true,

150
.vite/jsonSchemaPlugin.ts Normal file
View File

@@ -0,0 +1,150 @@
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',
'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;
}
/**
* Vite 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 default function jsonSchemaPlugin(): PluginOption {
return {
name: 'json-schema-plugin',
transform(src: string, id: string) {
const idAsUrl = new URL(id, 'file:///');
if (!idAsUrl.pathname.endsWith('schema.yaml')) {
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
};
}
},
};
}

View File

@@ -15,6 +15,7 @@ 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'));
app.use(vite.middlewares);
app.use(express.static('demos'));

2
.vscode/launch.json vendored
View File

@@ -17,7 +17,7 @@
"name": "Docs generation",
"type": "node",
"request": "launch",
"args": ["src/docs.mts"],
"args": ["scripts/docs.cli.mts"],
"runtimeArgs": ["--loader", "ts-node/esm"],
"cwd": "${workspaceRoot}/packages/mermaid",
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],

16
CITATION.cff Normal file
View File

@@ -0,0 +1,16 @@
cff-version: 1.2.0
title: 'Mermaid: Generate diagrams from markdown-like text'
message: >-
If you use this software, please cite it using the metadata from this file.
type: software
authors:
- family-names: Sveidqvist
given-names: Knut
- name: 'Contributors to Mermaid'
repository-code: 'https://github.com/mermaid-js/mermaid'
date-released: 2014-12-02
url: 'https://mermaid.js.org/'
abstract: >-
JavaScript based diagramming and charting tool that renders Markdown-inspired
text definitions to create and modify diagrams dynamically.
license: MIT

View File

@@ -1,14 +1,10 @@
# Contributing
So you want to help? That's great!
Please read in detail about how to contribute documentation and code on the [Mermaid documentation site.](https://mermaid-js.github.io/mermaid/#/development)
![Happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif)
---
Here are a few things to know to get you started on the right path.
Below link will help you making a copy of the repository in your local system.
https://docs.github.com/en/get-started/quickstart/fork-a-repo
# Mermaid contribution cheat-sheet
## Requirements
@@ -18,163 +14,63 @@ https://docs.github.com/en/get-started/quickstart/fork-a-repo
## Development Installation
If you don't have direct access to push to mermaid repositories, make a fork first. Then clone. Or clone directly from mermaid-js:
```bash
git clone git@github.com:mermaid-js/mermaid.git
cd mermaid
```
Install required packages:
```bash
# npx is required for first install as volta support for pnpm is not added yet.
npx pnpm install
pnpm test # run unit tests
pnpm dev # starts a dev server
```
Open <http://localhost:9000> in your browser after starting the dev server.
You can also duplicate the `example.html` file in `demos/dev`, rename it and add your own mermaid code to it.
That will be served at <http://localhost:9000/dev/your-file-name.html>.
### Docker
If you are using docker and docker-compose, you have self-documented `run` bash script, which is a convenient alias for docker-compose commands:
```bash
./run install # npx pnpm install
./run test # pnpm test
```
## Testing
```bash
# Run unit test
pnpm test
# Run unit test in watch mode
pnpm test:watch
# Run E2E test
pnpm e2e
# Debug E2E tests
pnpm dev
pnpm cypress:open # in another terminal
```
## Committing code
We make all changes via pull requests. As we have many pull requests from developers new to mermaid, the current approach is to have _knsv, Knut Sveidqvist_ as a main reviewer of changes and merging pull requests. More precisely like this:
- Large changes reviewed by knsv or other developer asked to review by knsv
- Smaller low-risk changes like dependencies, documentation, etc. can be merged by active collaborators
- Documentation (updates to the `package/mermaid/src/docs` folder is also allowed via direct commits)
To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text.
One example:
`feature/945_state_diagrams`
Another:
`bug/123_nasty_bug_branch`
## Committing documentation
Less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator.
The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).
### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs)
The source files for the project documentation are located in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory. This is where you should make changes.
The files under `/packages/mermaid/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory.
After editing files in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory, be sure to run `pnpm install` and `pnpm run --filter mermaid docs:build` locally to build the `/docs` directory.
```mermaid
flowchart LR
classDef default fill:#fff,color:black,stroke:black
source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"]
## Branch name format:
```text
[feature | bug | chore | docs]/[issue number]_[short description using dashes ('-') or underscores ('_') instead of spaces]
```
You can use `note`, `tip`, `warning` and `danger` in triple backticks to add a note, tip, warning or danger box.
Do not use vitepress specific markdown syntax `::: warning` as it will not be processed correctly.
eg: `feature/2945_state-diagram-new-arrow-florbs`, `bug/1123_fix_random_ugly_red_text`
````
```note
Note content
```
## Documentation
```tip
Tip content
```
Documentation is necessary for all non bugfix/refactoring changes.
```warning
Warning content
```
```danger
Danger content
```
````
Only make changes to files that are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs)
**_DO NOT CHANGE FILES IN `/docs`_**
### The official documentation site
**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Vitepress](https://vitepress.vuejs.org/), a simple documentation site generator.**
If you want to preview the whole documentation site on your machine:
```sh
cd packages/mermaid
pnpm i
pnpm docs:dev
```
You can now build and serve the documentation site:
```sh
pnpm docs:serve
```
## Branching
Going forward we will use a git flow inspired approach to branching. So development is done in develop, to do the development in the develop.
Once development is done we branch a release branch from develop for testing.
Once the release happens we merge the release branch to master and kill the release branch.
This means... **branch off your pull request from develop**
## Content of a pull request
A new feature has been born. Great! But without the steps below it might just ... fade away ...
### **Add unit tests for the parsing part**
This is important so that, if someone else does a change to the grammar that does not know about this great feature, gets notified early on when that change breaks the parser. Another important aspect is that without proper parsing tests refactoring is pretty much impossible.
### **Add e2e tests**
This tests the rendering and visual appearance of the diagram. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks!
To start working with the e2e tests, run `pnpm run dev` to start the dev server, after that start cypress by running `pnpm exec cypress open` in the mermaid folder.
The rendering tests are very straightforward to create. There is a function imgSnapshotTest. This function takes a diagram in text form, the mermaid options and renders that diagram in cypress.
When running in ci it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag for review it if it differs.
This is what a rendering test looks like:
```javascript
it('should render forks and joins', () => {
imgSnapshotTest(
`
stateDiagram
state fork_state &lt;&lt;fork&gt;&gt;
[*] --> fork_state
fork_state --> State2
fork_state --> State3
state join_state &lt;&lt;join&gt;&gt;
State2 --> join_state
State3 --> join_state
join_state --> State4
State4 --> [*]
`,
{ logLevel: 0 }
);
cy.get('svg');
});
```
### **Add documentation for it**
Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature?
The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated.
#### Adding to or changing the documentation organization
If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `mermaid/src/docs/.vitepress/config.js`.
When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/
## Last words
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)
![A superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif)

View File

@@ -27,7 +27,7 @@ Generate diagrams from markdown-like text.
[![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid)
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml)
[![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid)
[![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master)
[![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)
@@ -60,7 +60,7 @@ Use Mermaid with your favorite applications, check out the list of [Integrations
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.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/intro/n00b-gettingStarted.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md).
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.
@@ -386,7 +386,7 @@ Update version number in `package.json`.
npm publish
```
The above command generates files into the `dist` folder and publishes them to npmjs.org.
The above command generates files into the `dist` folder and publishes them to <https://www.npmjs.com>.
## Related projects
@@ -402,7 +402,7 @@ Detailed information about how to contribute can be found in the [contribution g
## Security and safe diagrams
For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security.
@@ -410,7 +410,7 @@ _Unfortunately you can not have a cake and eat it at the same time which in this
## Reporting vulnerabilities
To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
To report a vulnerability, please e-mail <security@mermaid.live> with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
## Appreciation

View File

@@ -27,7 +27,7 @@ Mermaid
[![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid)
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml)
[![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid)
[![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master)
[![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)
@@ -55,7 +55,7 @@ Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它
Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。<br/>
你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/ecosystem/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md).
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/intro/n00b-gettingStarted.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md).
<!-- </Main description> -->
@@ -322,7 +322,7 @@ Rel(SystemC, customerA, "Sends e-mails to")
npm publish
```
以上的命令会将文件打包到 `dist` 目录并发布至 npmjs.org.
以上的命令会将文件打包到 `dist` 目录并发布至 <https://www.npmjs.com>.
## 相关项目

View File

@@ -1,4 +1,3 @@
// @ts-nocheck TODO: Fix TS
import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3.js';
export const select = function () {

8
__mocks__/pieRenderer.ts Normal file
View File

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

View File

@@ -1,5 +1,5 @@
/**
* Mocked pie (picChart) diagram renderer
* Mocked Sankey diagram renderer
*/
import { vi } from 'vitest';

View File

@@ -7,6 +7,7 @@
"alois",
"aloisklink",
"antiscript",
"antlr",
"appli",
"applitools",
"asciidoctor",
@@ -39,8 +40,11 @@
"dompurify",
"edgechromium",
"elkjs",
"elle",
"faber",
"flatmap",
"foswiki",
"frontmatter",
"ftplugin",
"gantt",
"gitea",
@@ -50,6 +54,7 @@
"graphviz",
"grav",
"greywolf",
"gzipped",
"huynh",
"huynhicode",
"inkdrop",
@@ -83,6 +88,11 @@
"mkdocs",
"mmorel",
"mult",
"neurodiverse",
"nextra",
"nikolay",
"nirname",
"npmjs",
"orlandoni",
"pathe",
"pbrolin",
@@ -96,10 +106,14 @@
"ranksep",
"rect",
"rects",
"reda",
"redmine",
"regexes",
"rehype",
"roledescription",
"rozhkov",
"sandboxed",
"sankey",
"setupgraphviewbox",
"shiki",
"sidharth",
@@ -112,7 +126,9 @@
"stopx",
"stopy",
"stylis",
"subhash-halder",
"substate",
"sulais",
"sveidqvist",
"swimm",
"techn",
@@ -123,9 +139,11 @@
"tsdoc",
"tuleap",
"tylerlong",
"typora",
"ugge",
"unist",
"unocss",
"upvoting",
"valign",
"verdana",
"viewports",
@@ -134,7 +152,10 @@
"vitepress",
"vueuse",
"xlink",
"yash"
"yash",
"yokozuna",
"zenuml",
"zune"
],
"patterns": [
{ "name": "Markdown links", "pattern": "\\((.*)\\)", "description": "" },

View File

@@ -2,12 +2,14 @@
const { defineConfig } = require('cypress');
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
const coverage = require('@cypress/code-coverage/task');
module.exports = defineConfig({
projectId: 'n2sma2',
e2e: {
specPattern: 'cypress/integration/**/*.{js,jsx,ts,tsx}',
setupNodeEvents(on, config) {
coverage(on, config);
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;

View File

@@ -1,93 +0,0 @@
const utf8ToB64 = (str) => {
return window.btoa(unescape(encodeURIComponent(str)));
};
const batchId = 'mermaid-batch' + new Date().getTime();
export const mermaidUrl = (graphStr, options, api) => {
const obj = {
code: graphStr,
mermaid: options,
};
const objStr = JSON.stringify(obj);
let url = 'http://localhost:9000/e2e.html?graph=' + utf8ToB64(objStr);
if (api) {
url = 'http://localhost:9000/xss.html?graph=' + graphStr;
}
if (options.listUrl) {
cy.log(options.listId, ' ', url);
}
return url;
};
export const imgSnapshotTest = (graphStr, _options = {}, api = false, validation = undefined) => {
cy.log(_options);
const options = Object.assign(_options);
if (!options.fontFamily) {
options.fontFamily = 'courier';
}
if (!options.sequence) {
options.sequence = {};
}
if (!options.sequence || (options.sequence && !options.sequence.actorFontFamily)) {
options.sequence.actorFontFamily = 'courier';
}
if (options.sequence && !options.sequence.noteFontFamily) {
options.sequence.noteFontFamily = 'courier';
}
options.sequence.actorFontFamily = 'courier';
options.sequence.noteFontFamily = 'courier';
options.sequence.messageFontFamily = 'courier';
if (options.sequence && !options.sequence.actorFontFamily) {
options.sequence.actorFontFamily = 'courier';
}
if (!options.fontSize) {
options.fontSize = '16px';
}
const url = mermaidUrl(graphStr, options, api);
openURLAndVerifyRendering(url, options, validation);
};
export const urlSnapshotTest = (url, _options, api = false, validation) => {
const options = Object.assign(_options);
openURLAndVerifyRendering(url, options, validation);
};
export const renderGraph = (graphStr, options, api) => {
const url = mermaidUrl(graphStr, options, api);
openURLAndVerifyRendering(url, options);
};
const openURLAndVerifyRendering = (url, options, validation = undefined) => {
const useAppli = Cypress.env('useAppli');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
cy.log('Opening eyes ' + Cypress.spec.name + ' --- ' + name);
cy.eyesOpen({
appName: 'Mermaid',
testName: name,
batchName: Cypress.spec.name,
batchId: batchId + Cypress.spec.name,
});
}
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
if (validation) {
cy.get('svg').should(validation);
}
if (useAppli) {
cy.log('Check eyes' + Cypress.spec.name);
cy.eyesCheckWindow('Click!');
cy.log('Closing eyes' + Cypress.spec.name);
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
};

136
cypress/helpers/util.ts Normal file
View File

@@ -0,0 +1,136 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Buffer } from 'buffer';
import type { MermaidConfig } from '../../packages/mermaid/src/config.type.js';
interface CypressConfig {
listUrl?: boolean;
listId?: string;
name?: string;
}
type CypressMermaidConfig = MermaidConfig & CypressConfig;
interface CodeObject {
code: string;
mermaid: CypressMermaidConfig;
}
const utf8ToB64 = (str: string): string => {
return Buffer.from(decodeURIComponent(encodeURIComponent(str))).toString('base64');
};
const batchId: string =
'mermaid-batch-' +
(Cypress.env('useAppli')
? Date.now().toString()
: Cypress.env('CYPRESS_COMMIT') || Date.now().toString());
export const mermaidUrl = (
graphStr: string,
options: CypressMermaidConfig,
api: boolean
): string => {
const codeObject: CodeObject = {
code: graphStr,
mermaid: options,
};
const objStr: string = JSON.stringify(codeObject);
let url = `http://localhost:9000/e2e.html?graph=${utf8ToB64(objStr)}`;
if (api) {
url = `http://localhost:9000/xss.html?graph=${graphStr}`;
}
if (options.listUrl) {
cy.log(options.listId, ' ', url);
}
return url;
};
export const imgSnapshotTest = (
graphStr: string,
_options: CypressMermaidConfig = {},
api = false,
validation?: any
): void => {
cy.log(JSON.stringify(_options));
const options: CypressMermaidConfig = Object.assign(_options);
if (!options.fontFamily) {
options.fontFamily = 'courier';
}
if (!options.sequence) {
options.sequence = {};
}
if (!options.sequence || (options.sequence && !options.sequence.actorFontFamily)) {
options.sequence.actorFontFamily = 'courier';
}
if (options.sequence && !options.sequence.noteFontFamily) {
options.sequence.noteFontFamily = 'courier';
}
options.sequence.actorFontFamily = 'courier';
options.sequence.noteFontFamily = 'courier';
options.sequence.messageFontFamily = 'courier';
if (options.sequence && !options.sequence.actorFontFamily) {
options.sequence.actorFontFamily = 'courier';
}
if (!options.fontSize) {
options.fontSize = 16;
}
const url: string = mermaidUrl(graphStr, options, api);
openURLAndVerifyRendering(url, options, validation);
};
export const urlSnapshotTest = (
url: string,
_options: CypressMermaidConfig,
_api = false,
validation?: any
): void => {
const options: CypressMermaidConfig = Object.assign(_options);
openURLAndVerifyRendering(url, options, validation);
};
export const renderGraph = (
graphStr: string,
options: CypressMermaidConfig = {},
api = false
): void => {
const url: string = mermaidUrl(graphStr, options, api);
openURLAndVerifyRendering(url, options);
};
export const openURLAndVerifyRendering = (
url: string,
options: CypressMermaidConfig,
validation?: any
): void => {
const useAppli: boolean = Cypress.env('useAppli');
const name: string = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
cy.log(`Opening eyes ${Cypress.spec.name} --- ${name}`);
cy.eyesOpen({
appName: 'Mermaid',
testName: name,
batchName: Cypress.spec.name,
batchId: batchId + Cypress.spec.name,
});
}
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
if (validation) {
cy.get('svg').should(validation);
}
if (useAppli) {
cy.log(`Check eyes ${Cypress.spec.name}`);
cy.eyesCheckWindow('Click!');
cy.log(`Closing eyes ${Cypress.spec.name}`);
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
};

View File

@@ -1,4 +1,4 @@
import { renderGraph } from '../../helpers/util.js';
import { renderGraph } from '../../helpers/util.ts';
describe('Configuration', () => {
describe('arrowMarkerAbsolute', () => {
it('should handle default value false of arrowMarkerAbsolute', () => {

View File

@@ -1,4 +1,4 @@
import { urlSnapshotTest } from '../../helpers/util.js';
import { urlSnapshotTest } from '../../helpers/util.ts';
describe('mermaid', () => {
describe('registerDiagram', () => {

View File

@@ -1,4 +1,4 @@
import { urlSnapshotTest } from '../../helpers/util.js';
import { urlSnapshotTest, openURLAndVerifyRendering } from '../../helpers/util.ts';
describe('CSS injections', () => {
it('should not allow CSS injections outside of the diagram', () => {
@@ -13,4 +13,11 @@ describe('CSS injections', () => {
flowchart: { htmlLabels: false },
});
});
it('should not allow manipulating styletags using arrowheads', () => {
openURLAndVerifyRendering('http://localhost:9000/xss23-css.html', {
logLevel: 1,
arrowMarkerAbsolute: false,
flowchart: { htmlLabels: true },
});
});
});

View File

@@ -1,4 +1,4 @@
import { mermaidUrl } from '../../helpers/util.js';
import { mermaidUrl } from '../../helpers/util.ts';
describe('XSS', () => {
it('should handle xss in tags', () => {
const str =

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Git Graph diagram', () => {
it('1: should render a simple gitgraph with commit on main branch', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('C4 diagram', () => {
it('should render a simple C4Context diagram', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Class diagram V2', () => {
it('0: should render a simple class diagram', () => {
imgSnapshotTest(

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Class diagram', () => {
it('1: should render a simple class diagram', () => {
@@ -423,4 +423,82 @@ describe('Class diagram', () => {
);
cy.get('svg');
});
it('should render class diagram with newlines in title', () => {
imgSnapshotTest(`
classDiagram
Animal <|-- \`Du\nck\`
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class \`Du\nck\` {
+String beakColor
+String featherColor
+swim()
+quack()
}
`);
cy.get('svg');
});
it('should render class diagram with many newlines in title', () => {
imgSnapshotTest(`
classDiagram
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
#int Members
+And()
-Many()
#Methods()
}
`);
});
it('should render with newlines in title and an annotation', () => {
imgSnapshotTest(`
classDiagram
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
#int Members
+And()
-Many()
#Methods()
}
&lt;&lt;Interface&gt;&gt; \`This\nTitle\nHas\nMany\nNewlines\`
`);
});
it('should handle newline title in namespace', () => {
imgSnapshotTest(`
classDiagram
namespace testingNamespace {
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
#int Members
+And()
-Many()
#Methods()
}
}
`);
});
it('should handle newline in string label', () => {
imgSnapshotTest(`
classDiagram
class A["This has\na newline!"] {
+String boop
-Int beep
#double bop
}
class B["This title also has\na newline"]
B : +with(more)
B : -methods()
`);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Configuration and directives - nodes should be light blue', () => {
it('No config - use default', () => {
@@ -14,7 +14,6 @@ describe('Configuration and directives - nodes should be light blue', () => {
`,
{}
);
cy.get('svg');
});
it('Settings from initialize - nodes should be green', () => {
imgSnapshotTest(
@@ -28,7 +27,6 @@ graph TD
end `,
{ theme: 'forest' }
);
cy.get('svg');
});
it('Settings from initialize overriding themeVariable - nodes should be red', () => {
imgSnapshotTest(
@@ -46,7 +44,6 @@ graph TD
`,
{ theme: 'base', themeVariables: { primaryColor: '#ff0000' }, logLevel: 0 }
);
cy.get('svg');
});
it('Settings from directive - nodes should be grey', () => {
imgSnapshotTest(
@@ -62,7 +59,24 @@ graph TD
`,
{}
);
cy.get('svg');
});
it('Settings from frontmatter - nodes should be grey', () => {
imgSnapshotTest(
`
---
config:
theme: neutral
---
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{}
);
});
it('Settings from directive overriding theme variable - nodes should be red', () => {
@@ -79,7 +93,6 @@ graph TD
`,
{}
);
cy.get('svg');
});
it('Settings from initialize and directive - nodes should be grey', () => {
imgSnapshotTest(
@@ -95,7 +108,6 @@ graph TD
`,
{ theme: 'forest' }
);
cy.get('svg');
});
it('Theme from initialize, directive overriding theme variable - nodes should be red', () => {
imgSnapshotTest(
@@ -111,8 +123,71 @@ graph TD
`,
{ theme: 'base' }
);
cy.get('svg');
});
it('Theme from initialize, frontmatter overriding theme variable - nodes should be red', () => {
imgSnapshotTest(
`
---
config:
theme: base
themeVariables:
primaryColor: '#ff0000'
---
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'forest' }
);
});
it('Theme from initialize, frontmatter overriding theme variable, directive overriding primaryColor - nodes should be red', () => {
imgSnapshotTest(
`
---
config:
theme: base
themeVariables:
primaryColor: '#00ff00'
---
%%{init: {'theme': 'base', 'themeVariables':{ 'primaryColor': '#ff0000'}}}%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'forest' }
);
});
it('should render if values are not quoted properly', () => {
// #ff0000 is not quoted properly, and will evaluate to null.
// This test ensures that the rendering still works.
imgSnapshotTest(
`---
config:
theme: base
themeVariables:
primaryColor: #ff0000
---
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'forest' }
);
});
it('Theme variable from initialize, theme from directive - nodes should be red', () => {
imgSnapshotTest(
`
@@ -127,13 +202,11 @@ graph TD
`,
{ themeVariables: { primaryColor: '#ff0000' } }
);
cy.get('svg');
});
describe('when rendering several diagrams', () => {
it('diagrams should not taint later diagrams', () => {
const url = 'http://localhost:9000/theme-directives.html';
cy.visit(url);
cy.get('svg');
cy.matchImageSnapshot('conf-and-directives.spec-when-rendering-several-diagrams-diagram-1');
});
});

View File

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

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Flowchart', () => {
it('34: testing the label width in percy', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Entity Relationship Diagram', () => {
it('should render a simple ER diagram', () => {
@@ -200,6 +200,27 @@ describe('Entity Relationship Diagram', () => {
);
});
it('should render entities with attributes that begin with asterisk', () => {
imgSnapshotTest(
`
erDiagram
BOOK {
int *id
string name
varchar(99) summary
}
BOOK }o..o{ STORE : soldBy
STORE {
int *id
string name
varchar(50) address
}
`,
{ loglevel: 1 }
);
cy.get('svg');
});
it('should render entities with keys', () => {
renderGraph(
`

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe.skip('Flowchart ELK', () => {
it('1-elk: should render a simple flowchart', () => {
@@ -681,9 +681,23 @@ title: Simple flowchart
flowchart-elk TD
A --> B
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('elk: should include classes on the edges', () => {
renderGraph(
`flowchart-elk TD
A --> B --> C --> D
`,
{}
);
cy.get('svg').should((svg) => {
const edges = svg.querySelectorAll('.edges > path');
edges.forEach((edge) => {
expect(edge).to.have.class('flowchart-link');
});
});
});
describe('Markdown strings flowchart-elk (#4220)', () => {
describe('html labels', () => {
it('With styling and classes', () => {
@@ -696,7 +710,7 @@ flowchart-elk LR
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('With formatting in a node', () => {
@@ -712,7 +726,7 @@ flowchart-elk LR
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('New line in node and formatted edge label', () => {
@@ -722,7 +736,7 @@ flowchart-elk LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Wrapping long text with a new line', () => {
@@ -735,7 +749,7 @@ Word!
Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. \`) --> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Sub graphs and markdown strings', () => {
@@ -752,7 +766,7 @@ subgraph "\`**Two**\`"
end
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
});
@@ -768,7 +782,7 @@ flowchart-elk LR
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('With formatting in a node', () => {
@@ -784,7 +798,7 @@ flowchart-elk LR
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('New line in node and formatted edge label', () => {
@@ -794,7 +808,7 @@ flowchart-elk LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Wrapping long text with a new line', () => {
@@ -807,7 +821,7 @@ Word!
Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. \`") --> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Sub graphs and markdown strings', () => {
@@ -824,7 +838,7 @@ subgraph "\`**Two**\`"
end
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Flowchart v2', () => {
it('1: should render a simple flowchart', () => {
@@ -172,7 +172,7 @@ describe('Flowchart v2', () => {
);
});
it('52: handle nested subgraphs in several levels', () => {
it('52: handle nested subgraphs in several levels.', () => {
imgSnapshotTest(
`flowchart TB
b-->B
@@ -449,7 +449,7 @@ flowchart TD
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65: text-color from classes', () => {
it('65-1: text-color from classes', () => {
imgSnapshotTest(
`
flowchart LR
@@ -460,6 +460,31 @@ flowchart TD
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65-2: bold text from classes', () => {
imgSnapshotTest(
`
flowchart
classDef cat fill:#f9d5e5, stroke:#233d4d,stroke-width:2px, font-weight:bold;
CS(A long bold text to be viewed):::cat
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65-3: bigger font from classes', () => {
imgSnapshotTest(
`
flowchart
Node1:::class1 --> Node2:::class2
Node1:::class1 --> Node3:::class2
Node3 --> Node4((I am a circle)):::larger
classDef class1 fill:lightblue
classDef class2 fill:pink
classDef larger font-size:30px,fill:yellow
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('66: More nested subgraph cases (TB)', () => {
imgSnapshotTest(
`
@@ -671,7 +696,7 @@ title: Simple flowchart
flowchart TD
A --> B
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 10 } }
);
});
it('3192: It should be possieble to render flowcharts with invisible edges', () => {
@@ -682,7 +707,7 @@ title: Simple flowchart with invisible edges
flowchart TD
A ~~~ B
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 10 } }
);
});
it('4023: Should render html labels with images and-or text correctly', () => {
@@ -695,6 +720,15 @@ A ~~~ B
{}
);
});
it('4439: Should render the graph even if some images are missing', () => {
imgSnapshotTest(
`flowchart TD
B[<img>]
B-->C[<img>]`,
{}
);
});
describe('Markdown strings flowchart (#4220)', () => {
describe('html labels', () => {
it('With styling and classes', () => {
@@ -707,7 +741,7 @@ flowchart LR
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('With formatting in a node', () => {
@@ -723,7 +757,7 @@ flowchart LR
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('New line in node and formatted edge label', () => {
@@ -733,7 +767,7 @@ flowchart LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Wrapping long text with a new line', () => {
@@ -746,7 +780,7 @@ Word!
Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. \`") --> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Sub graphs and markdown strings', () => {
@@ -763,7 +797,7 @@ subgraph "\`**Two**\`"
end
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
});
@@ -779,7 +813,7 @@ flowchart LR
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('With formatting in a node', () => {
@@ -795,7 +829,7 @@ flowchart LR
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('New line in node and formatted edge label', () => {
@@ -805,7 +839,7 @@ flowchart LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Wrapping long text with a new line', () => {
@@ -818,7 +852,7 @@ Word!
Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. Another line with many, many words. \`") --> c
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
it('Sub graphs and markdown strings', () => {
@@ -835,7 +869,7 @@ subgraph "\`**Two**\`"
end
`,
{ titleTopMargin: 0 }
{ flowchart: { titleTopMargin: 0 } }
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Graph', () => {
it('1: should render a simple flowchart no htmlLabels', () => {
@@ -891,4 +891,27 @@ graph TD
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('66: apply class called default on node called default', () => {
imgSnapshotTest(
`
graph TD
classDef default fill:#a34,stroke:#000,stroke-width:4px,color:#fff
hello --> default
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('67: should be able to style default node independently', () => {
imgSnapshotTest(
`
flowchart TD
classDef default fill:#a34
hello --> default
style default stroke:#000,stroke-width:4px
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Gantt diagram', () => {
beforeEach(() => {
@@ -414,6 +414,28 @@ describe('Gantt diagram', () => {
);
});
it('should render a gantt diagram with tick is 1 week, with the day starting on monday', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
axisFormat %m-%d
tickInterval 1week
weekday monday
excludes weekends
section Section
A task : a1, 2022-10-01, 30d
Another task : after a1, 20d
section Another
Task in sec : 2022-10-20, 12d
another task : 24d
`,
{}
);
});
it('should render a gantt diagram with tick is 1 month', () => {
imgSnapshotTest(
`

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Git Graph diagram', () => {
it('1: should render a simple gitgraph with commit on main branch', () => {
@@ -333,4 +333,372 @@ gitGraph
{}
);
});
it('15: should render a simple gitgraph with commit on main branch | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "1"
commit id: "2"
commit id: "3"
`,
{}
);
});
it('16: should render a simple gitgraph with commit on main branch with Id | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "One"
commit id: "Two"
commit id: "Three"
`,
{}
);
});
it('17: should render a simple gitgraph with different commitTypes on main branch | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "Normal Commit"
commit id: "Reverse Commit" type: REVERSE
commit id: "Hightlight Commit" type: HIGHLIGHT
`,
{}
);
});
it('18: should render a simple gitgraph with tags commitTypes on main branch | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "Normal Commit with tag" tag: "v1.0.0"
commit id: "Reverse Commit with tag" type: REVERSE tag: "RC_1"
commit id: "Hightlight Commit" type: HIGHLIGHT tag: "8.8.4"
`,
{}
);
});
it('19: should render a simple gitgraph with two branches | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "1"
commit id: "2"
branch develop
checkout develop
commit id: "3"
commit id: "4"
checkout main
commit id: "5"
commit id: "6"
`,
{}
);
});
it('20: should render a simple gitgraph with two branches and merge commit | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "1"
commit id: "2"
branch develop
checkout develop
commit id: "3"
commit id: "4"
checkout main
merge develop
commit id: "5"
commit id: "6"
`,
{}
);
});
it('21: should render a simple gitgraph with three branches and tagged merge commit | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "1"
commit id: "2"
branch nice_feature
checkout nice_feature
commit id: "3"
checkout main
commit id: "4"
checkout nice_feature
branch very_nice_feature
checkout very_nice_feature
commit id: "5"
checkout main
commit id: "6"
checkout nice_feature
commit id: "7"
checkout main
merge nice_feature id: "12345" tag: "my merge commit"
checkout very_nice_feature
commit id: "8"
checkout main
commit id: "9"
`,
{}
);
});
it('22: should render a simple gitgraph with more than 8 branchs & overriding variables | Vertical Branch', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
'gitBranchLabel0': '#ffffff',
'gitBranchLabel1': '#ffffff',
'gitBranchLabel2': '#ffffff',
'gitBranchLabel3': '#ffffff',
'gitBranchLabel4': '#ffffff',
'gitBranchLabel5': '#ffffff',
'gitBranchLabel6': '#ffffff',
'gitBranchLabel7': '#ffffff',
} } }%%
gitGraph TB:
checkout main
branch branch1
branch branch2
branch branch3
branch branch4
branch branch5
branch branch6
branch branch7
branch branch8
branch branch9
checkout branch1
commit id: "1"
`,
{}
);
});
it('23: should render a simple gitgraph with rotated labels | Vertical Branch', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'gitGraph': {
'rotateCommitLabel': true
} } }%%
gitGraph TB:
commit id: "75f7219e83b321cd3fdde7dcf83bc7c1000a6828"
commit id: "0db4784daf82736dec4569e0dc92980d328c1f2e"
commit id: "7067e9973f9eaa6cd4a4b723c506d1eab598e83e"
commit id: "66972321ad6c199013b5b31f03b3a86fa3f9817d"
`,
{}
);
});
it('24: should render a simple gitgraph with horizontal labels | Vertical Branch', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'gitGraph': {
'rotateCommitLabel': false
} } }%%
gitGraph TB:
commit id: "Alpha"
commit id: "Beta"
commit id: "Gamma"
commit id: "Delta"
`,
{}
);
});
it('25: should render a simple gitgraph with cherry pick commit | Vertical Branch', () => {
imgSnapshotTest(
`
gitGraph TB:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A"
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('26: should render a gitgraph with cherry pick commit with custom tag | Vertical Branch', () => {
imgSnapshotTest(
`
gitGraph TB:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: "snapshot"
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('27: should render a gitgraph with cherry pick commit with no tag | Vertical Branch', () => {
imgSnapshotTest(
`
gitGraph TB:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: ""
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('28: should render a simple gitgraph with two cherry pick commit | Vertical Branch', () => {
imgSnapshotTest(
`
gitGraph TB:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
branch featureA
commit id:"FIX"
commit id: "FIX-2"
checkout main
commit id:"TWO"
cherry-pick id:"A"
commit id:"THREE"
cherry-pick id:"FIX"
checkout develop
commit id:"C"
merge featureA
`,
{}
);
});
it('29: should render commits for more than 8 branches | Vertical Branch', () => {
imgSnapshotTest(
`
gitGraph TB:
checkout main
%% Make sure to manually set the ID of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
commit id: "2-abcdefg"
checkout main
merge branch1
branch branch2
commit id: "3-abcdefg"
checkout main
merge branch2
branch branch3
commit id: "4-abcdefg"
checkout main
merge branch3
branch branch4
commit id: "5-abcdefg"
checkout main
merge branch4
branch branch5
commit id: "6-abcdefg"
checkout main
merge branch5
branch branch6
commit id: "7-abcdefg"
checkout main
merge branch6
branch branch7
commit id: "8-abcdefg"
checkout main
merge branch7
branch branch8
commit id: "9-abcdefg"
checkout main
merge branch8
branch branch9
commit id: "10-abcdefg"
`,
{}
);
});
it('30: should render a simple gitgraph with three branches,custom merge commit id,tag,type | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "1"
commit id: "2"
branch nice_feature
checkout nice_feature
commit id: "3"
checkout main
commit id: "4"
checkout nice_feature
branch very_nice_feature
checkout very_nice_feature
commit id: "5"
checkout main
commit id: "6"
checkout nice_feature
commit id: "7"
checkout main
merge nice_feature id: "customID" tag: "customTag" type: REVERSE
checkout very_nice_feature
commit id: "8"
checkout main
commit id: "9"
`,
{}
);
});
it('31: should render a simple gitgraph with a title | Vertical Branch', () => {
imgSnapshotTest(
`---
title: simple gitGraph
---
gitGraph TB:
commit id: "1-abcdefg"
`,
{}
);
});
it('32: should render a simple gitgraph overlapping commits | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id:"s1"
commit id:"s2"
branch branch1
commit id:"s3"
commit id:"s4"
checkout main
commit id:"s5"
checkout branch1
commit id:"s6"
commit id:"s7"
merge main
`,
{}
);
});
it('33: should render a simple gitgraph overlapping commits', () => {
imgSnapshotTest(
`gitGraph
commit id:"s1"
commit id:"s2"
branch branch1
commit id:"s3"
commit id:"s4"
checkout main
commit id:"s5"
checkout branch1
commit id:"s6"
commit id:"s7"
merge main
`,
{}
);
});
});

View File

@@ -1,13 +0,0 @@
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Sequencediagram', () => {
it('should render a simple info diagrams', () => {
imgSnapshotTest(
`
info
showInfo
`,
{}
);
});
});

View File

@@ -0,0 +1,11 @@
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('info diagram', () => {
it('should handle an info definition', () => {
imgSnapshotTest(`info`);
});
it('should handle an info definition with showInfo', () => {
imgSnapshotTest(`info showInfo`);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('User journey diagram', () => {
it('Simple test', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
/**
* Check whether the SVG Element has a Mindmap root
@@ -52,6 +52,17 @@ root[A root with a long text that wraps to keep the node size in check]
);
});
it('a root with wrapping text and long words that exceed width', () => {
imgSnapshotTest(
`mindmap
root[A few smaller words but then averylongsetofcharacterswithoutwhitespacetoseparate that we expect to wrapontonextlinesandnotexceedwidthparameters]
`,
{},
undefined,
shouldHaveRoot
);
});
it('a root with an icon', () => {
imgSnapshotTest(
`mindmap
@@ -231,8 +242,7 @@ mindmap
a second line 😎\`]
id2[\`The dog in **the** hog... a *very long text* about it
Word!\`]
`,
{ titleTopMargin: 0 }
`
);
});
});

View File

@@ -1,89 +1,85 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Pie Chart', () => {
describe('pie chart', () => {
it('should render a simple pie diagram', () => {
imgSnapshotTest(
`pie title Sports in Sweden
"Bandy": 40
"Ice-Hockey": 80
"Football": 90
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`,
{}
);
cy.get('svg');
});
it('should render a simple pie diagram with long labels', () => {
imgSnapshotTest(
`pie title NETFLIX
"Time spent looking for movie": 90
"Time spent watching it": 10
`
pie title NETFLIX
"Time spent looking for movie" : 90
"Time spent watching it" : 10
`,
{}
);
cy.get('svg');
});
it('should render a simple pie diagram with capital letters for labels', () => {
imgSnapshotTest(
`pie title What Voldemort doesn't have?
"FRIENDS": 2
"FAMILY": 3
"NOSE": 45
`
pie title What Voldemort doesn't have?
"FRIENDS" : 2
"FAMILY" : 3
"NOSE" : 45
`,
{}
);
cy.get('svg');
});
it('should render a pie diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`pie title Sports in Sweden
"Bandy": 40
"Ice-Hockey": 80
"Football": 90
`,
{ pie: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
// expect(svg).to.have.attr('height');
// const height = parseFloat(svg.attr('height'));
// expect(height).to.eq(450);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.eq(984);
});
});
it('should render a pie diagram when useMaxWidth is false', () => {
renderGraph(
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`pie title Sports in Sweden
"Bandy": 40
"Ice-Hockey": 80
"Football": 90
`,
{ pie: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
// const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
// expect(height).to.eq(450);
expect(width).to.eq(984);
expect(svg).to.not.have.attr('style');
});
});
it('should render a pie diagram when textPosition is set', () => {
it('should render a pie diagram when textPosition is setted', () => {
imgSnapshotTest(
`
pie
"Dogs": 50
"Cats": 25
`,
`pie
"Dogs": 50
"Cats": 25
`,
{ logLevel: 1, pie: { textPosition: 0.9 } }
);
cy.get('svg');
});
it('should render a pie diagram with showData', () => {
imgSnapshotTest(
`pie showData
"Dogs": 50
"Cats": 25
`
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Quadrant Chart', () => {
it('should render if only chart type is provided', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Requirement diagram', () => {
it('sample', () => {

View File

@@ -0,0 +1,144 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('Sankey Diagram', () => {
it('should render a simple example', () => {
imgSnapshotTest(
`
sankey-beta
sourceNode,targetNode,10
`,
{}
);
});
describe('when given a linkColor', function () {
this.beforeAll(() => {
cy.wrap(
`sankey-beta
a,b,10
`
).as('graph');
});
it('links should use hex color', function () {
renderGraph(this.graph, { sankey: { linkColor: '#636465' } });
cy.get('.link path').should((link) => {
expect(link.attr('stroke')).to.equal('#636465');
});
});
it('links should be the same color as source node', function () {
renderGraph(this.graph, { sankey: { linkColor: 'source' } });
cy.get('.link path').then((link) => {
cy.get('.node[id="node-1"] rect').should((node) =>
expect(link.attr('stroke')).to.equal(node.attr('fill'))
);
});
});
it('links should be the same color as target node', function () {
renderGraph(this.graph, { sankey: { linkColor: 'target' } });
cy.get('.link path').then((link) => {
cy.get('.node[id="node-2"] rect').should((node) =>
expect(link.attr('stroke')).to.equal(node.attr('fill'))
);
});
});
it('links must be gradient', function () {
renderGraph(this.graph, { sankey: { linkColor: 'gradient' } });
cy.get('.link path').should((link) => {
expect(link.attr('stroke')).to.equal('url(#linearGradient-3)');
});
});
});
describe('when given a nodeAlignment', function () {
this.beforeAll(() => {
cy.wrap(
`
sankey-beta
a,b,8
b,c,8
c,d,8
d,e,8
x,c,4
c,y,4
`
).as('graph');
});
this.afterEach(() => {
cy.get('.node[id="node-1"]').should((node) => {
expect(node.attr('x')).to.equal('0');
});
cy.get('.node[id="node-2"]').should((node) => {
expect(node.attr('x')).to.equal('100');
});
cy.get('.node[id="node-3"]').should((node) => {
expect(node.attr('x')).to.equal('200');
});
cy.get('.node[id="node-4"]').should((node) => {
expect(node.attr('x')).to.equal('300');
});
cy.get('.node[id="node-5"]').should((node) => {
expect(node.attr('x')).to.equal('400');
});
});
it('should justify nodes', function () {
renderGraph(this.graph, {
sankey: { nodeAlignment: 'justify', width: 410, useMaxWidth: false },
});
cy.get('.node[id="node-6"]').should((node) => {
expect(node.attr('x')).to.equal('0');
});
cy.get('.node[id="node-7"]').should((node) => {
expect(node.attr('x')).to.equal('400');
});
});
it('should align nodes left', function () {
renderGraph(this.graph, {
sankey: { nodeAlignment: 'left', width: 410, useMaxWidth: false },
});
cy.get('.node[id="node-6"]').should((node) => {
expect(node.attr('x')).to.equal('0');
});
cy.get('.node[id="node-7"]').should((node) => {
expect(node.attr('x')).to.equal('300');
});
});
it('should align nodes right', function () {
renderGraph(this.graph, {
sankey: { nodeAlignment: 'right', width: 410, useMaxWidth: false },
});
cy.get('.node[id="node-6"]').should((node) => {
expect(node.attr('x')).to.equal('100');
});
cy.get('.node[id="node-7"]').should((node) => {
expect(node.attr('x')).to.equal('400');
});
});
it('should center nodes', function () {
renderGraph(this.graph, {
sankey: { nodeAlignment: 'center', width: 410, useMaxWidth: false },
});
cy.get('.node[id="node-6"]').should((node) => {
expect(node.attr('x')).to.equal('100');
});
cy.get('.node[id="node-7"]').should((node) => {
expect(node.attr('x')).to.equal('300');
});
});
});
});

View File

@@ -1,6 +1,6 @@
/// <reference types="Cypress" />
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
context('Sequence diagram', () => {
it('should render a sequence diagram with boxes', () => {
@@ -88,6 +88,16 @@ context('Sequence diagram', () => {
{}
);
});
it('should handle empty lines', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>John: Hello John<br/>
John-->>Alice: Great<br/><br/>day!
`,
{}
);
});
it('should handle line breaks and wrap annotations', () => {
imgSnapshotTest(
`
@@ -146,6 +156,81 @@ context('Sequence diagram', () => {
`
);
});
it('should render a sequence diagram with basic actor creation and destruction', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice ->> Bob: Hello Bob, how are you ?
Bob ->> Alice: Fine, thank you. And you?
create participant Polo
Alice ->> Polo: Hi Polo!
create actor Ola1 as Ola
Polo ->> Ola1: Hiii
Ola1 ->> Alice: Hi too
destroy Ola1
Alice --x Ola1: Bye!
Alice ->> Bob: And now?
create participant Ola2 as Ola
Alice ->> Ola2: Hello again
destroy Alice
Alice --x Ola2: Bye for me!
destroy Bob
Ola2 --> Bob: The end
`
);
});
it('should render a sequence diagram with actor creation and destruction coupled with backgrounds, loops and notes', () => {
imgSnapshotTest(
`
sequenceDiagram
accTitle: test the accTitle
accDescr: Test a description
participant Alice
participant Bob
autonumber 10 10
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
create participant John as John<br />Second Line
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-->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.
destroy John
Bob-x John: John! Cmon!
Note over John: After a few more moments, John<br />finally snaps out of it.
end
autonumber off
alt either this
create actor Lola
Alice->>+Lola: Yes
Lola-->>-Alice: OK
else or this
autonumber
Alice->>Lola: No
else or this will happen
Alice->Lola: Maybe
end
autonumber 200
par this happens in parallel
destroy Bob
Alice -->> Bob: Parallel message 1
and
Alice -->> Lola: Parallel message 2
end
`
);
});
context('font settings', () => {
it('should render different note fonts when configured', () => {
imgSnapshotTest(

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('State diagram', () => {
it('v2 should render a simple info', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
describe('State diagram', () => {
it('should render a simple state diagrams', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('themeCSS balancing, it', () => {
it('should not allow unbalanced CSS definitions', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Timeline diagram', () => {
it('1: should render a simple timeline with no specific sections', () => {

View File

@@ -0,0 +1,19 @@
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Zen UML', () => {
it('Basic Zen UML diagram', () => {
imgSnapshotTest(
`
zenuml
A.method() {
if(x) {
B.method() {
selfCall() { return X }
}
}
}
`,
{}
);
});
});

View File

@@ -1,23 +0,0 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
</head>
<body>
<h1>info below</h1>
<pre class="mermaid">
info
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
flowchart: { curve: 'linear' },
gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50 },
// sequenceDiagram: { actorMargin: 300 } // deprecated
});
</script>
</body>
</html>

View File

@@ -58,6 +58,23 @@
</head>
<body>
<pre id="diagram" class="mermaid">
flowchart
classDef mainCategories fill:#f9d5e5, stroke:#233d4d,stroke-width:2px, font-weight:bold;
CS(Customer Awareness Journey):::mainCategories
</pre
>
<pre id="diagram" class="mermaid">
flowchart
Node1:::class1 --> Node2:::class2
Node1:::class1 --> Node3:::class2
Node3 --> Node4((I am a circle)):::larger
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 --> [*]
@@ -73,7 +90,7 @@ flowchart RL
a1 -- l2 --> a2
end
</pre>
<pre id="diagram" class="mermaid">
<pre id="diagram" class="mermaid2">
flowchart RL
subgraph "`one`"
a1 -- l1 --> a2
@@ -98,11 +115,11 @@ flowchart LR
way`"]
</pre
>
<pre id="diagram" class="mermaid">
<pre id="diagram" class="mermaid2">
classDiagram-v2
note "I love this diagram!\nDo you love it?"
</pre>
<pre id="diagram" class="mermaid">
<pre id="diagram" class="mermaid2">
stateDiagram-v2
State1: The state with a note with minus - and plus + in it
note left of State1
@@ -147,7 +164,7 @@ mindmap
शान्तिः سلام 和平 `"]
</pre>
<pre id="diagram" class="mermaid">
<pre id="diagram" class="mermaid2">
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
@@ -399,21 +416,31 @@ mindmap
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
// mermaid.initialize({
// // theme: 'forest',
// startOnLoad: true,
// logLevel: 0,
// flowchart: {
// // defaultRenderer: 'elk',
// useMaxWidth: false,
// // htmlLabels: false,
// htmlLabels: true,
// },
// // htmlLabels: false,
// gantt: {
// useMaxWidth: false,
// },
// useMaxWidth: false,
// });
mermaid.initialize({
// theme: 'forest',
startOnLoad: true,
logLevel: 0,
flowchart: {
// defaultRenderer: 'elk',
useMaxWidth: false,
// htmlLabels: false,
htmlLabels: true,
flowchart: { titleTopMargin: 10 },
fontFamily: 'courier',
sequence: {
actorFontFamily: 'courier',
noteFontFamily: 'courier',
messageFontFamily: 'courier',
},
// htmlLabels: false,
gantt: {
useMaxWidth: false,
},
useMaxWidth: false,
fontSize: 16,
});
function callback() {
alert('It worked');

View File

@@ -1,5 +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';
function b64ToUtf8(str) {
return decodeURIComponent(escape(window.atob(str)));
@@ -44,7 +45,7 @@ const contentLoaded = async function () {
document.getElementsByTagName('body')[0].appendChild(div);
}
await mermaid2.registerExternalDiagrams([externalExample]);
await mermaid2.registerExternalDiagrams([externalExample, zenUml]);
mermaid2.initialize(graphObj.mermaid);
await mermaid2.run();
}

View File

@@ -0,0 +1,85 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 {
color: grey;
}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="graph-div"></div>
<div id="res" class=""></div>
</div>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'base',
startOnLoad: false,
flowcharts: { htmlLabels: true },
});
function callback() {
alert('It worked');
}
function xssAttack() {
const div = document.createElement('div');
div.id = 'the-malware';
div.className = 'malware';
div.innerHTML = 'XSS Succeeded';
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeeded');
}
let diagram = `graph TD
A[["a marker-end=#quot;url(<s title='#<style>*{background:red}</style>'>b"]]
`;
const el = document.querySelector('#graph-div');
console.log(diagram);
const { svg } = await mermaid.render('graph-div', diagram);
document.querySelector('#res').innerHTML = svg;
window.rendered = true;
</script>
</body>
</html>

View File

@@ -13,8 +13,8 @@
// https://on.cypress.io/configuration
// ***********************************************************
import '@cypress/code-coverage/support';
import '@applitools/eyes-cypress/commands';
// Import commands.js using ES2015 syntax:
import './commands';

View File

@@ -2,7 +2,9 @@
"compilerOptions": {
"target": "es2020",
"lib": ["es2020", "dom"],
"types": ["cypress", "node"]
"types": ["cypress", "node"],
"allowImportingTsExtensions": true,
"noEmit": true
},
"include": ["**/*.ts"]
}

View File

@@ -154,6 +154,29 @@
</pre>
<hr />
<pre class="mermaid">
classDiagram
A1 --> B1
namespace A {
class A1 {
+foo : string
}
class A2 {
+bar : int
}
}
namespace B {
class B1 {
+foo : bool
}
class B2 {
+bar : float
}
}
A2 --> B2
</pre>
<hr />
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({

34
demos/dev/example.html Normal file
View File

@@ -0,0 +1,34 @@
<!--Do not edit this file-->
<!--Duplicate this file to any name you like, run `pnpm dev`, open http://localhost:9000/dev/name.html to view-->
<html>
<head>
<title>Mermaid development page</title>
</head>
<body>
<pre id="diagram" class="mermaid">
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<div id="dynamicDiagram"></div>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
console.error('Mermaid error: ', err);
};
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;
</script>
</body>
</html>

View File

@@ -21,6 +21,8 @@
<pre class="mermaid">
---
title: This is a title
config:
theme: forest
---
erDiagram
%% title This is a title

View File

@@ -123,6 +123,13 @@
<h3>flowchart</h3>
<pre class="mermaid">
---
title: This is another complicated flow
config:
theme: base
flowchart:
curve: cardinal
---
flowchart LR
sid-B3655226-6C29-4D00-B685-3D5C734DC7E1["
@@ -1505,6 +1512,34 @@
</pre>
<hr />
<pre class="mermaid">
graph 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))
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 bugged_node fill:#F88,stroke:#F22,stroke-width:3px
classDef start_node,finish_node fill:#3B1,stroke:#391,stroke-width:8px
class A start_node;
class B,C,E,F,H active_node;
class D unactive_node;
class G finish_node;
class I bugged_node
</pre>
<hr />
<h1 id="link-clicked">Anchor for "link-clicked" test</h1>
<script type="module">

View File

@@ -45,6 +45,9 @@
<li>
<h2><a href="./git.html">Git</a></h2>
</li>
<li>
<h2><a href="./info.html">Info</a></h2>
</li>
<li>
<h2><a href="./journey.html">Journey</a></h2>
</li>
@@ -66,6 +69,15 @@
<li>
<h2><a href="./state.html">State</a></h2>
</li>
<li>
<h2><a href="./timeline.html">Timeline</a></h2>
</li>
<li>
<h2><a href="./zenuml.html">ZenUML</a></h2>
</li>
<li>
<h2><a href="./sankey.html">Sankey</a></h2>
</li>
</ul>
</body>
</html>

35
demos/info.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 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>Info diagram demos</h1>
<pre class="mermaid">
info
</pre>
<hr />
<pre class="mermaid">
info showInfo
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
logLevel: 3,
securityLevel: 'loose',
});
</script>
</body>
</html>

View File

@@ -7,7 +7,6 @@
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
@@ -17,37 +16,32 @@
<h1>Pie chart demos</h1>
<pre class="mermaid">
pie title Pets adopted by volunteers
accTitle: simple pie char demo
accDescr: pie chart with 3 sections: dogs, cats, rats. Most are dogs.
"Dogs" : 386
"Cats" : 85
"Rats" : 15
accTitle: simple pie char demo
accDescr: pie chart with 3 sections: dogs, cats, rats. Most are dogs.
"Dogs": 386
"Cats": 85
"Rats": 15
</pre>
<hr />
<pre class="mermaid">
%%{init: {"pie": {"textPosition": 0.9}, "themeVariables": {"pieOuterStrokeWidth": "5px"}} }%%
pie
title Key elements in Product X
%%{init: {"pie": {"textPosition": 0.9}, "themeVariables": {"pieOuterStrokeWidth": "5px"}}}%%
pie
title Key elements in Product X
accTitle: Key elements in Product X
accDescr: This is a pie chart showing the key elements in Product X.
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
accDescr: This is a pie chart showing the key elements in Product X.
"Calcium": 42.96
"Potassium": 50.05
"Magnesium": 10.01
"Iron": 5
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',
// flowchart: { curve: 'basis' },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50 },
// sequenceDiagram: { actorMargin: 300 } // deprecated
});
</script>
</body>

124
demos/sankey.html Normal file
View File

@@ -0,0 +1,124 @@
<!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>Sankey Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
</head>
<body>
<h1>Sankey diagram demos</h1>
<h2>FY20-21 Performance</h2>
<pre class="mermaid">
---
config:
sankey:
showValues: true
prefix: $
suffix: B
width: 800
nodeAlignment: left
---
sankey-beta
Revenue,Expenses,10
Revenue,Profit,10
Expenses,Manufacturing,5
Expenses,Tax,3
Expenses,Research,2
</pre>
<h2>Energy flow</h2>
<pre class="mermaid">
---
config:
sankey:
showValues: false
width: 1200
height: 600
linkColor: gradient
nodeAlignment: justify
---
sankey-beta
Agricultural 'waste',Bio-conversion,124.729
Bio-conversion,Liquid,0.597
Bio-conversion,Losses,26.862
Bio-conversion,Solid,280.322
Bio-conversion,Gas,81.144
Biofuel imports,Liquid,35
Biomass imports,Solid,35
Coal imports,Coal,11.606
Coal reserves,Coal,63.965
Coal,Solid,75.571
District heating,Industry,10.639
District heating,Heating and cooling - commercial,22.505
District heating,Heating and cooling - homes,46.184
Electricity grid,Over generation / exports,104.453
Electricity grid,Heating and cooling - homes,113.726
Electricity grid,H2 conversion,27.14
Electricity grid,Industry,342.165
Electricity grid,Road transport,37.797
Electricity grid,Agriculture,4.412
Electricity grid,Heating and cooling - commercial,40.858
Electricity grid,Losses,56.691
Electricity grid,Rail transport,7.863
Electricity grid,Lighting & appliances - commercial,90.008
Electricity grid,Lighting & appliances - homes,93.494
Gas imports,Ngas,40.719
Gas reserves,Ngas,82.233
Gas,Heating and cooling - commercial,0.129
Gas,Losses,1.401
Gas,Thermal generation,151.891
Gas,Agriculture,2.096
Gas,Industry,48.58
Geothermal,Electricity grid,7.013
H2 conversion,H2,20.897
H2 conversion,Losses,6.242
H2,Road transport,20.897
Hydro,Electricity grid,6.995
Liquid,Industry,121.066
Liquid,International shipping,128.69
Liquid,Road transport,135.835
Liquid,Domestic aviation,14.458
Liquid,International aviation,206.267
Liquid,Agriculture,3.64
Liquid,National navigation,33.218
Liquid,Rail transport,4.413
Marine algae,Bio-conversion,4.375
Ngas,Gas,122.952
Nuclear,Thermal generation,839.978
Oil imports,Oil,504.287
Oil reserves,Oil,107.703
Oil,Liquid,611.99
Other waste,Solid,56.587
Other waste,Bio-conversion,77.81
Pumped heat,Heating and cooling - homes,193.026
Pumped heat,Heating and cooling - commercial,70.672
Solar PV,Electricity grid,59.901
Solar Thermal,Heating and cooling - homes,19.263
Solar,Solar Thermal,19.263
Solar,Solar PV,59.901
Solid,Agriculture,0.882
Solid,Thermal generation,400.12
Solid,Industry,46.477
Thermal generation,Electricity grid,525.531
Thermal generation,Losses,787.129
Thermal generation,District heating,79.329
Tidal,Electricity grid,9.452
UK land based bioenergy,Bio-conversion,182.01
Wave,Electricity grid,19.013
Wind,Electricity grid,289.366
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'default',
logLevel: 3,
securityLevel: 'loose',
startOnLoad: true,
});
</script>
</body>
</html>

53
demos/zenuml.html Normal file
View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Zenuml Test Page</title>
</head>
<body>
<h1>Zenuml demos</h1>
<pre class="mermaid">
zenuml
title Sync Messages (Design Pattern: Adapter)
@Starter(Client)
Adapter.interfaceMethod() {
translateParameter(parameter)
result = Implementation.implementationMethod()
translateResult()
return translatedResult
}
</pre>
<pre class="mermaid">
zenuml
title Async Messages (SPA Authentication)
// ```
// GET https://${account.namespace}/authorize/?
// response_type=token
// &client_id=${account.clientId}
// &redirect_url=YOUR_CALLBACK_URL
// &state=VALUE_THAT_SURVIVES_REDIRECTS
// &scope=openid
// ```
Browser->Auth0: 1. initiate the authentication
Auth0->"Identity Provider": 2. OAuth2 / SAML, etc
"Identity Provider"->"Identity Provider": 3. user gets authenticated
Auth0->Browser: 4. redirect to ${YOUR_CALLBACK_URL}/#id_token=e68...
Browser->Auth0: 5. validate id_token and get user profile
Browser->"Your API": 6. call API sending JWT in Authorization header
"Your API"->"Your API": 7. validate token
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import zenuml from './mermaid-zenuml.esm.mjs';
await mermaid.registerExternalDiagrams([zenuml]);
mermaid.initialize({
logLevel: 3,
});
</script>
</body>
</html>

36
docker-compose.yml Normal file
View File

@@ -0,0 +1,36 @@
version: '3.9'
services:
mermaid:
image: node:18.17.1-alpine3.18
stdin_open: true
tty: true
working_dir: /mermaid
mem_limit: '2G'
environment:
- NODE_OPTIONS=--max_old_space_size=2048
volumes:
- ./:/mermaid
- root_cache:/root/.cache
- root_local:/root/.local
- root_npm:/root/.npm
ports:
- 9000:9000
- 3333:3333
cypress:
image: cypress/included:12.17.4
stdin_open: true
tty: true
working_dir: /mermaid
mem_limit: '2G'
entrypoint: cypress
environment:
- DISPLAY
volumes:
- ./:/mermaid
- /tmp/.X11-unix:/tmp/.X11-unix
network_mode: host
volumes:
root_cache:
root_local:
root_npm:

File diff suppressed because it is too large Load Diff

176
docs/community/code.md Normal file
View File

@@ -0,0 +1,176 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/code.md](../../packages/mermaid/src/docs/community/code.md).
# Contributing Code
The basic steps for contributing code are:
```mermaid-example
graph LR
git[1. Checkout a git branch] --> codeTest[2. Write tests and code] --> doc[3. Update documentation] --> submit[4. Submit a PR] --> review[5. Review and merge]
```
```mermaid
graph LR
git[1. Checkout a git branch] --> codeTest[2. Write tests and code] --> doc[3. Update documentation] --> submit[4. Submit a PR] --> review[5. Review and merge]
```
1. **Create** and checkout a git branch and work on your code in the branch
2. Write and update **tests** (unit and perhaps even integration (e2e) tests) (If you do TDD/BDD, the order might be different.)
3. **Let users know** that things have changed or been added in the documents! This is often overlooked, but _critical_
4. **Submit** your code as a _pull request_.
5. Maintainers will **review** your code. If there are no changes necessary, the PR will be merged. Otherwise, make the requested changes and repeat.
## 1. Checkout a git branch
Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)inspired approach to branching.
Development is done in the `develop` branch.
Once development is done we create a `release/vX.X.X` branch from `develop` for testing.
Once the release happens we add a tag to the `release` branch and merge it with `master`. The live product and on-line documentation are what is in the `master` branch.
**All new work should be based on the `develop` branch.**
**When you are ready to do work, always, ALWAYS:**
1. Make sure you have the most up-to-date version of the `develop` branch. (fetch or pull to update it)
2. Check out the `develop` branch
3. Create a new branch for your work. Please name the branch following our naming convention below.
We use the follow naming convention for branches:
```txt
[feature | bug | chore | docs]/[issue number]_[short description using dashes ('-') or underscores ('_') instead of spaces]
```
You can always check current [configuration of labelling and branch prefixes](https://github.com/mermaid-js/mermaid/blob/develop/.github/pr-labeler.yml)
- The first part is the **type** of change: a feature, bug, chore, or documentation change ('docs')
- followed by a _slash_ (which helps to group like types together in many git tools)
- followed by the **issue number**
- followed by an _underscore_ ('\_')
- followed by a short text description (but use dashes ('-') or underscores ('\_') instead of spaces)
If your work is specific to a single diagram type, it is a good idea to put the diagram type at the start of the description. This will help us keep release notes organized: it will help us keep changes for a diagram type together.
**Ex: A new feature described in issue 2945 that adds a new arrow type called 'florbs' to state diagrams**
`feature/2945_state-diagram-new-arrow-florbs`
**Ex: A bug described in issue 1123 that causes random ugly red text in multiple diagram types**
`bug/1123_fix_random_ugly_red_text`
## 2. Write Tests
Tests ensure that each function, module, or part of code does what it says it will do. This is critically
important when other changes are made to ensure that existing code is not broken (no regression).
Just as important, the tests act as _specifications:_ they specify what the code does (or should do).
Whenever someone is new to a section of code, they should be able to read the tests to get a thorough understanding of what it does and why.
If you are fixing a bug, you should add tests to ensure that your code has actually fixed the bug, to specify/describe what the code is doing, and to ensure the bug doesn't happen again.
(If there had been a test for the situation, the bug never would have happened in the first place.)
You may need to change existing tests if they were inaccurate.
If you are adding a feature, you will definitely need to add tests. Depending on the size of your feature, you may need to add integration tests.
### Unit Tests
Unit tests are tests that test a single function or module. They are the easiest to write and the fastest to run.
Unit tests are mandatory all code except the renderers. (The renderers are tested with integration tests.)
We use [Vitest](https://vitest.dev) to run unit tests.
You can use the following command to run the unit tests:
```sh
pnpm test
```
When writing new tests, it's easier to have the tests automatically run as you make changes. You can do this by running the following command:
```sh
pnpm test:watch
```
### Integration/End-to-End (e2e) tests
These test the rendering and visual appearance of the diagrams.
This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks!
To start working with the e2e tests:
1. Run `pnpm dev` to start the dev server
2. Start **Cypress** by running `pnpm cypress:open`.
The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress.
When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs.
This is what a rendering test looks like:
```js
it('should render forks and joins', () => {
imgSnapshotTest(
`
stateDiagram
state fork_state &lt;&lt;fork&gt;&gt;
[*] --> fork_state
fork_state --> State2
fork_state --> State3
state join_state &lt;&lt;join&gt;&gt;
State2 --> join_state
State3 --> join_state
join_state --> State4
State4 --> [*]
`,
{ logLevel: 0 }
);
cy.get('svg');
});
```
**_\[TODO - running the tests against what is expected in development. ]_**
**_\[TODO - how to generate new screenshots]_**
....
## 3. Update Documentation
If the users have no way to know that things have changed, then you haven't really _fixed_ anything for the users; you've just added to making Mermaid feel broken.
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 to users know that things have 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.
eg: `# Feature Name (v<MERMAID_RELEASE_VERSION>+)`
We know it can sometimes be hard to code _and_ write user documentation.
Our documentation is managed in `packages/mermaid/src/docs`. Details on how to edit is in the [Contributing Documentation](#contributing-documentation) section.
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!
When in doubt, write up and submit what you can. It can be clarified and refined later. (With documentation, something is better than nothing!)
## 4. Submit your pull request
**\[TODO - PR titles should start with (fix | feat | ....)]**
We make all changes via Pull Requests (PRs). As we have many Pull Requests from developers new to Mermaid, we have put in place a process wherein _knsv, Knut Sveidqvist_ is in charge of the final release process and the active maintainers are in charge of reviewing and merging most PRs.
- PRs will be reviewed by active maintainers, who will provide feedback and request changes as needed.
- The maintainers will request a review from knsv, if necessary.
- Once the PR is approved, the maintainers will merge the PR into the `develop` branch.
- 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.
**Reminder: Pull Requests should be submitted to the develop branch.**

View File

@@ -4,7 +4,11 @@
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/development.md](../../packages/mermaid/src/docs/community/development.md).
# Development and Contribution 🙌
# Contributing to Mermaid
> The following documentation describes how to work with Mermaid in your host environment.
> There's also a [Docker installation guide](../community/docker-development.md)
> if you prefer to work in a Docker environment.
So you want to help? That's great!
@@ -12,125 +16,76 @@ So you want to help? That's great!
Here are a few things to get you started on the right path.
**The Docs Structure is dictated by [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
## Get the Source Code
**Note: Commits and Pull Requests should be directed to the develop branch.**
In GitHub, you first **fork** a repository when you are going to make changes and submit pull requests.
## Branching
Then you **clone** a copy to your local development machine (e.g. where you code) to make a copy with all the files to work with.
Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)inspired approach to branching. So development is done in the `develop` branch.
[Fork mermaid](https://github.com/mermaid-js/mermaid/fork) to start contributing to the main project and its documentaion, or [search for other repositories](https://github.com/orgs/mermaid-js/repositories).
Once development is done we branch a `release` branch from `develop` for testing.
[Here is a GitHub document that gives an overview of the process.](https://docs.github.com/en/get-started/quickstart/fork-a-repo)
Once the release happens we merge the `release` branch with `master` and kill the `release` branch.
## Technical Requirements
This means that **you should branch off your pull request from develop** and direct all Pull Requests to it.
> The following documentation describes how to work with Mermaid in your host environment.
> There's also a [Docker installation guide](../community/docker-development.md)
> if you prefer to work in a Docker environment.
## Contributing Code
These are the tools we use for working with the code and documentation:
We make all changes via Pull Requests. As we have many Pull Requests from developers new to mermaid, we have put in place a process, wherein _knsv, Knut Sveidqvist_ is the primary reviewer of changes and merging pull requests. The process is as follows:
- [volta](https://volta.sh/) to manage node versions.
- [Node.js](https://nodejs.org/en/). `volta install node`
- [pnpm](https://pnpm.io/) package manager. `volta install pnpm`
- [npx](https://docs.npmjs.com/cli/v8/commands/npx) the packaged executor in npm. This is needed [to install pnpm.](#install-packages)
- Large changes reviewed by knsv or other developer asked to review by knsv
- Smaller, low-risk changes like dependencies, documentation, etc. can be merged by active collaborators
- Documentation (we encourage updates to the `/packages/mermaid/src/docs` folder; you can submit them via direct commits)
Follow the setup steps below to install them and start the development.
When you commit code, create a branch with the following naming convention:
## Setup and Launch
Start with the type, such as **feature** or **bug**, followed by the issue number for reference, and a text that describes the issue.
### Switch to project
**One example:**
Once you have cloned the repository onto your development machine, change into the `mermaid` project folder (the top level directory of the mermaid project repository)
`feature/945_state_diagrams`
**Another example:**
`bug/123_nasty_bug_branch`
## Contributing to Documentation
If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature?
The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via **[.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
> **All the documents displayed in the GitHub.io page are listed in [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**.
The contents of <https://mermaid-js.github.io/mermaid/> are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid-js.github.io/mermaid/) once released.
## How to Contribute to Documentation
We are a little less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator.
The documentation is located in the `src/docs` directory and organized according to relevant subfolder.
The `docs` folder will be automatically generated when committing to `src/docs` and should not be edited manually.
We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s)
### Add Unit Tests for Parsing
This is important so that, if someone that does not know about this great feature suggests a change to the grammar, they get notified early on when that change breaks the parser. Another important aspect is that, without proper parsing, tests refactoring is pretty much impossible.
### Add E2E Tests
This tests the rendering and visual appearance of the diagrams. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks!
To start working with the e2e tests:
1. Run `pnpm run dev` to start the dev server
2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder.
The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress.
When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs.
This is what a rendering test looks like:
```js
it('should render forks and joins', () => {
imgSnapshotTest(
`
stateDiagram
state fork_state &lt;&lt;fork&gt;&gt;
[*] --> fork_state
fork_state --> State2
fork_state --> State3
state join_state &lt;&lt;join&gt;&gt;
State2 --> join_state
State3 --> join_state
join_state --> State4
State4 --> [*]
`,
{ logLevel: 0 }
);
cy.get('svg');
});
```bash
cd mermaid
```
### Any Questions or Suggestions?
### Install packages
After logging in at [GitHub.com](https://www.github.com), open or append to an issue [using the GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22).
Run `npx pnpm install`. You will need `npx` for this because volta doesn't support it yet.
### How to Contribute a Suggestion
```bash
npx pnpm install # npx is required for first install
```
Markdown is used to format the text, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).
### Launch
To edit Docs on your computer:
```bash
npx pnpm run dev
```
1. Find the Markdown file (.md) to edit in the [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) directory in the `develop` branch.
2. Create a fork of the develop branch.
3. Make changes or add new documentation.
4. Commit changes to your fork and push it to GitHub.
5. Create a Pull Request of your fork.
Now you are ready to make your changes! Edit whichever files in `src` as required.
To edit Docs on GitHub:
Open <http://localhost:9000> in your browser, after starting the dev server.
There is a list of demos that can be used to see and test your changes.
1. Login to [GitHub.com](https://www.github.com).
2. Navigate to [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs).
3. To edit a file, click the pencil icon at the top-right of the file contents panel.
4. Describe what you changed in the **Propose file change** section, located at the bottom of the page.
5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch).
6. Create a Pull Request of your newly forked branch by clicking the green **Create Pull Request** button.
If you need a specific diagram, you can duplicate the `example.html` file in `/demos/dev` and add your own mermaid code to your copy.
That will be served at <http://localhost:9000/dev/your-file-name.html>.
After making code changes, the dev server will rebuild the mermaid library. You will need to reload the browser page yourself to see the changes. (PRs for auto reload are welcome!)
## Verify Everything is Working
You can run the `test` script to verify that pnpm is working _and_ that the repository has been cloned correctly:
```bash
pnpm test
```
The `test` script and others are in the top-level `package.json` file.
All tests should run successfully without any errors or failures. (You might see _lint_ or _formatting_ warnings; those are ok during this step.)
## Last Words

View File

@@ -0,0 +1,109 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/docker-development.md](../../packages/mermaid/src/docs/community/docker-development.md).
# Contributing to Mermaid via Docker
> The following documentation describes how to work with Mermaid in a Docker environment.
> There's also a [host installation guide](../community/development.md)
> if you prefer to work without a Docker environment.
So you want to help? That's great!
![Image of happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif)
Here are a few things to get you started on the right path.
## Get the Source Code
In GitHub, you first **fork** a repository when you are going to make changes and submit pull requests.
Then you **clone** a copy to your local development machine (e.g. where you code) to make a copy with all the files to work with.
[Fork mermaid](https://github.com/mermaid-js/mermaid/fork) to start contributing to the main project and its documentaion, or [search for other repositories](https://github.com/orgs/mermaid-js/repositories).
[Here is a GitHub document that gives an overview of the process.](https://docs.github.com/en/get-started/quickstart/fork-a-repo)
## Technical Requirements
> The following documentation describes how to work with Mermaid in a Docker environment.
> There's also a [host installation guide](../community/development.md)
> if you prefer to work without a Docker environment.
[Install Docker](https://docs.docker.com/engine/install/). And that is pretty much all you need.
Optionally, to run GUI (Cypress) within Docker you will also need an X11 server installed.
You might already have it installed, so check this by running:
```bash
echo $DISPLAY
```
If the `$DISPLAY` variable is not empty, then an X11 server is running. Otherwise you may need to install one.
## Setup and Launch
### Switch to project
Once you have cloned the repository onto your development machine, change into the `mermaid` project folder (the top level directory of the mermaid project repository)
```bash
cd mermaid
```
### Make `./run` executable
For development using Docker there is a self-documented `run` bash script, which provides convenient aliases for `docker compose` commands.
Ensure `./run` script is executable:
```bash
chmod +x run
```
> **💡 Tip**
> To get detailed help simply type `./run` or `./run help`.
>
> It also has short _Development quick start guide_ embedded.
### Install packages
```bash
./run pnpm install # Install packages
```
### Launch
```bash
./run dev
```
Now you are ready to make your changes! Edit whichever files in `src` as required.
Open <http://localhost:9000> in your browser, after starting the dev server.
There is a list of demos that can be used to see and test your changes.
If you need a specific diagram, you can duplicate the `example.html` file in `/demos/dev` and add your own mermaid code to your copy.
That will be served at <http://localhost:9000/dev/your-file-name.html>.
After making code changes, the dev server will rebuild the mermaid library. You will need to reload the browser page yourself to see the changes. (PRs for auto reload are welcome!)
## Verify Everything is Working
```bash
./run pnpm test
```
The `test` script and others are in the top-level `package.json` file.
All tests should run successfully without any errors or failures. (You might see _lint_ or _formatting_ warnings; those are ok during this step.)
## Last Words
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)
![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif)

View File

@@ -0,0 +1,105 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/documentation.md](../../packages/mermaid/src/docs/community/documentation.md).
# Contributing Documentation
**_\[TODO: This section is still a WIP. It still needs MAJOR revision.]_**
If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature?
The docs are located in the `packages/mermaid/src/docs` folder and are written in Markdown. Just pick the right section and start typing.
The contents of [mermaid.js.org](https://mermaid.js.org/) are based on the docs from the `master` branch.
Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid.js.org/) once published.
## How to Contribute to Documentation
We are a little less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator.
The documentation is located in the `packages/mermaid/src/docs` directory and organized according to relevant subfolder.
The `docs` folder will be automatically generated when committing to `packages/mermaid/src/docs` and **should not** be edited manually.
```mermaid-example
flowchart LR
classDef default fill:#fff,color:black,stroke:black
source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"]
```
```mermaid
flowchart LR
classDef default fill:#fff,color:black,stroke:black
source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"]
```
You can use `note`, `tip`, `warning` and `danger` in triple backticks to add a note, tip, warning or danger box.
Do not use vitepress specific markdown syntax `::: warning` as it will not be processed correctly.
````markdown
```note
Note content
```
```tip
Tip content
```
```warning
Warning content
```
```danger
Danger content
```
````
> **Note**
> If the change is _only_ to the documentation, you can get your changes published to the site quicker by making a PR to the `master` branch. In that case, your branch should be based on master, not develop.
We encourage contributions to the documentation at [packages/mermaid/src/docs in the _develop_ branch](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs).
**_DO NOT CHANGE FILES IN `/docs`_**
## The official documentation site
**[The mermaid documentation site](https://mermaid.js.org/) is powered by [Vitepress](https://vitepress.vuejs.org/).**
To run the documentation site locally:
1. Run `pnpm --filter mermaid run docs:dev` to start the dev server. (Or `pnpm docs:dev` inside the `packages/mermaid` directory.)
2. Open <http://localhost:3333/> in your browser.
Markdown is used to format the text, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).
To edit Docs on your computer:
_\[TODO: need to keep this in sync with [check out a git branch in Contributing Code above](#1-checkout-a-git-branch) ]_
1. Create a fork of the develop branch to work on.
2. Find the Markdown file (.md) to edit in the `packages/mermaid/src/docs` directory.
3. Make changes or add new documentation.
4. Commit changes to your branch and push it to GitHub (which should create a new branch).
5. Create a Pull Request from the branch of your fork.
To edit Docs on GitHub:
1. Login to [GitHub.com](https://www.github.com).
2. Navigate to [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) in the mermaid-js repository.
3. To edit a file, click the pencil icon at the top-right of the file contents panel.
4. Describe what you changed in the **Propose file change** section, located at the bottom of the page.
5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch).
6. Visit the Actions tab in Github, `https://github.com/<Your Username>/mermaid/actions` and enable the actions for your fork. This will ensure that the documentation is built and updated in your fork.
7. Create a Pull Request of your newly forked branch by clicking the green **Create Pull Request** button.
## Documentation organization: Sidebar navigation
If you want to propose changes to how the documentation is _organized_, such as adding a new section or re-arranging or renaming a section, you must update the **sidebar navigation.**
The sidebar navigation is defined in [the vitepress configuration file config.ts](../.vitepress/config.ts).

View File

@@ -1,74 +0,0 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/n00b-overview.md](../../packages/mermaid/src/docs/community/n00b-overview.md).
# Overview for Beginners
**Explaining with a Diagram**
A picture is worth a thousand words, a good diagram is undoubtedly worth more. They make understanding easier.
## Creating and Maintaining Diagrams
Anyone who has used Visio, or (God Forbid) Excel to make a Gantt Chart, knows how hard it is to create, edit and maintain good visualizations.
Diagrams/Charts are significant but also become obsolete/inaccurate very fast. This catch-22 hobbles the productivity of teams.
# Doc Rot in Diagrams
Doc-Rot kills diagrams as quickly as it does text, but it takes hours in a desktop application to produce a diagram.
Mermaid seeks to change using markdown-inspired syntax. The process is a quicker, less complicated, and more convenient way of going from concept to visualization.
It is a relatively straightforward solution to a significant hurdle with the software teams.
# Definition of Terms/ Dictionary
**Mermaid text definitions can be saved for later reuse and editing.**
> These are the Mermaid diagram definitions inside `<div>` tags, with the `class=mermaid`.
```html
<pre class="mermaid">
graph TD
A[Client] --> B[Load Balancer]
B --> C[Server01]
B --> D[Server02]
</pre>
```
**render**
> This is the core function of the Mermaid API. It reads all the `Mermaid Definitions` inside `div` tags and returns an SVG file, based on the definition.
**Nodes**
> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../intro/n00b-syntaxReference.md)
## Advantages of using Mermaid
- Ease to generate, modify and render diagrams when you make them.
- The number of integrations and plugins it has.
- You can add it to your or companies website.
- Diagrams can be created through comments like this in a script:
## The catch-22 of Diagrams and Charts:
**Diagramming and charting is a large waste of developer's time, but not having diagrams ruins productivity.**
Mermaid solves this by reducing the time and effort required to create diagrams and charts.
Because, the text base for the diagrams allows it to be updated easily. Also, it can be made part of production scripts (and other pieces of code). So less time is spent on documenting, as a separate task.
## Catching up with Development
Being based on markdown, Mermaid can be used, not only by accomplished front-end developers, but by most computer savvy people to render diagrams, at much faster speeds.
In fact one can pick up the syntax for it quite easily from the examples given and there are many tutorials available in the internet.
## Mermaid is for everyone.
Video [Tutorials](https://mermaid-js.github.io/mermaid/#/../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/).
Alternatively you can use Mermaid [Plug-Ins](https://mermaid-js.github.io/mermaid/#/./integrations), with tools you already use, like Google Docs.

View File

@@ -10,7 +10,7 @@
#### Grammar
This would be to define a jison grammar for the new diagram type. That should start with a way to identify that the text in the mermaid tag is a diagram of that type. Create a new folder under diagrams for your new diagram type and a parser folder in it. This leads us to step 2.
This would be to define a JISON grammar for the new diagram type. That should start with a way to identify that the text in the mermaid tag is a diagram of that type. Create a new folder under diagrams for your new diagram type and a parser folder in it. This leads us to step 2.
For instance:
@@ -60,7 +60,7 @@ Place the renderer in the diagram folder.
### Step 3: Detection of the new diagram type
The second thing to do is to add the capability to detect the new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type.
The second thing to do is to add the capability to detect the new diagram to type to the detectType in `diagram-api/detectType.ts`. The detection should return a key for the new diagram type.
[This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type.
For example, if your new diagram use a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader
would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram.
@@ -124,53 +124,6 @@ There are a few features that are common between the different types of diagrams
Here some pointers on how to handle these different areas.
#### [Directives](../config/directives.md)
Here is example handling from flowcharts:
Jison:
```jison
/* lexical grammar */
%lex
%x open_directive
%x type_directive
%x arg_directive
%x close_directive
\%\%\{ { this.begin('open_directive'); return 'open_directive'; }
<open_directive>((?:(?!\}\%\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }
<type_directive>":" { this.popState(); this.begin('arg_directive'); return ':'; }
<type_directive,arg_directive>\}\%\% { this.popState(); this.popState(); return 'close_directive'; }
<arg_directive>((?:(?!\}\%\%).|\n)*) return 'arg_directive';
/* language grammar */
/* ... */
directive
: openDirective typeDirective closeDirective separator
| openDirective typeDirective ':' argDirective closeDirective separator
;
openDirective
: open_directive { yy.parseDirective('%%{', 'open_directive'); }
;
typeDirective
: type_directive { yy.parseDirective($1, 'type_directive'); }
;
argDirective
: arg_directive { $1 = $1.trim().replace(/'/g, '"'); yy.parseDirective($1, 'arg_directive'); }
;
closeDirective
: close_directive { yy.parseDirective('}%%', 'close_directive', 'flowchart'); }
;
```
It is probably a good idea to keep the handling similar to this in your new diagram. The parseDirective function is provided by the mermaidAPI.
## Accessibility
Mermaid automatically adds the following accessibility information for the diagram SVG HTML element:
@@ -189,7 +142,7 @@ See [the definition of aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/
The syntax for accessible titles and descriptions is described in [the Accessibility documenation section.](../config/accessibility.md)
In a similar way to the directives, the jison syntax are quite similar between the diagrams.
As a design goal, the jison syntax should be similar between the diagrams.
```jison

View File

@@ -0,0 +1,26 @@
> **Warning**
>
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
>
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/questions-and-suggestions.md](../../packages/mermaid/src/docs/community/questions-and-suggestions.md).
# Questions or Suggestions?
**_\[TODO: This section is still a WIP. It still needs MAJOR revision.]_**
## First search to see if someone has already asked (and hopefully been answered) or suggested the same thing.
- Search in Discussions
- Search in open Issues
- Search in closed Issues
If you find an open issue or discussion thread that is similar to your question but isn't answered, you can let us know that you are also interested in it.
Use the GitHub reactions to add a thumbs-up to the issue or discussion thread.
This helps the team know the relative interest in something and helps them set priorities and assignments.
Feel free to add to the discussion on the issue or topic.
If you can't find anything that already addresses your question or suggestion, _open a new issue:_
Log in to [GitHub.com](https://www.github.com), open or append to an issue [using the GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22).

View File

@@ -26,6 +26,10 @@ The definitions that can be generated the Live-Editor are also backwards-compati
[Eddie Jaoude: Can you code your diagrams?](https://www.youtube.com/watch?v=9HZzKkAqrX8)
## Mermaid with OpenAI
[Elle Neal: Mind Mapping with AI: An Accessible Approach for Neurodiverse Learners Tutorial:](https://medium.com/@elle.neal_71064/mind-mapping-with-ai-an-accessible-approach-for-neurodiverse-learners-1a74767359ff), [Demo:](https://databutton.com/v/jk9vrghc)
## Mermaid with HTML
Examples are provided in [Getting Started](../intro/n00b-gettingStarted.md)

View File

@@ -10,10 +10,41 @@ When mermaid starts, configuration is extracted to determine a configuration to
- The default configuration
- Overrides at the site level are set by the initialize call, and will be applied to all diagrams in the site/app. The term for this is the **siteConfig**.
- Directives - diagram authors can update select configuration parameters directly in the diagram code via directives. These are applied to the render config.
- Frontmatter (v\<MERMAID_RELEASE_VERSION>+) - diagram authors can update select configuration parameters in the frontmatter of the diagram. These are applied to the render config.
- Directives (Deprecated by Frontmatter) - diagram authors can update select configuration parameters directly in the diagram code via directives. These are applied to the render config.
**The render config** is configuration that is used when rendering by applying these configurations.
## Frontmatter config
The entire mermaid configuration (except the secure configs) can be overridden by the diagram author in the frontmatter of the diagram. The frontmatter is a YAML block at the top of the diagram.
```mermaid-example
---
title: Hello Title
config:
theme: base
themeVariables:
primaryColor: "#00ff00"
---
flowchart
Hello --> World
```
```mermaid
---
title: Hello Title
config:
theme: base
themeVariables:
primaryColor: "#00ff00"
---
flowchart
Hello --> World
```
## Theme configuration
## Starting mermaid

View File

@@ -6,13 +6,16 @@
# Directives
> **Warning**
> Directives are deprecated from v\<MERMAID_RELEASE_VERSION>. Please use the `config` key in frontmatter to pass configuration. See [Configuration](./configuration.md) for more details.
## Directives
Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration.
Directives give a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration.
The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level.
The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram-specific configurations. So, directives are applied on top of the default configuration. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level.
While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives.
While directives allow you to change most of the default configuration settings, there are some that are not available, for security reasons. Also, you have the _option to define the set of configurations_ that you wish to allow diagram authors to override with directives.
## Types of Directives options
@@ -20,29 +23,29 @@ Mermaid basically supports two types of configuration options to be overridden b
1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are:
- theme
- fontFamily
- logLevel
- securityLevel
- startOnLoad
- secure
- theme
- fontFamily
- logLevel
- securityLevel
- startOnLoad
- secure
2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves.
For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type.
2. _Diagram-specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves.
For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alters whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type.
**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
**NOTE:** Not all configuration options are listed here. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
> **Note**
> We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon.
> We plan to publish a complete list of top-level configurations & diagram-specific configurations with their possible values in the docs soon.
## Declaring directives
Now that we have defined the types of configurations that are available, we can learn how to declare directives.
A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`.
A directive always starts and ends with `%%` signs with directive text in between, like `%% {directive_text} %%`.
Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section.
Following code snippet shows the structure of a directive:
The following code snippet shows the structure of a directive:
%%{
init: {
@@ -61,14 +64,14 @@ Following code snippet shows the structure of a directive:
You can also define the directives in a single line, like this:
%%{init: { **insert argument here**}}%%
%%{init: { **insert configuration options here** } }%%
For example, the following code snippet:
%%{init: { "sequence": { "mirrorActors":false }}}%%
**Notes:**
The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored.
The JSON object that is passed as {**argument**} must be valid key value pairs and encased in quotation marks or it will be ignored.
Valid Key Value pairs can be found in config.
Example with a simple graph:
@@ -87,7 +90,7 @@ A-->B
Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself.
Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means:
Note: You can use 'init' or 'initialize' as both are acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed.
```mermaid-example
%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%
@@ -101,7 +104,7 @@ Note: You can use 'init' or 'initialize' as both acceptable as init directives.
...
```
parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`:
For example, parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`:
```json
{
@@ -115,16 +118,15 @@ This will then be sent to `mermaid.initialize(...)` for rendering.
## Directive Examples
More directive examples for diagram specific configuration overrides
Now that the concept of directives has been explained, Let us see some more examples for directives usage:
Now that the concept of directives has been explained, let us see some more examples of directive usage:
### Changing Theme via directive
### Changing theme via directive
The following code snippet changes theme to forest:
The following code snippet changes `theme` to `forest`:
`%%{init: { "theme": "forest" } }%%`
Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`.
Possible theme values are: `default`,`base`, `dark`, `forest` and `neutral`.
Default Value is `default`.
Example:
@@ -155,7 +157,7 @@ A --> C[End]
### Changing fontFamily via directive
The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif:
The following code snippet changes fontFamily to Trebuchet MS, Verdana, Arial, Sans-Serif:
`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%`
@@ -187,11 +189,11 @@ A --> C[End]
### Changing logLevel via directive
The following code snippet changes logLevel to 2:
The following code snippet changes `logLevel` to `2`:
`%%{init: { "logLevel": 2 } }%%`
Possible logLevel values are:
Possible `logLevel` values are:
- `1` for _debug_,
- `2` for _info_
@@ -234,14 +236,14 @@ Some common flowchart configurations are:
- _diagramPadding_: number
- _useMaxWidth_: number
For complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_
For a complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
_Soon we plan to publish a complete list of all diagram-specific configurations updated in the docs._
The following code snippet changes flowchart config:
`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%`
Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear.
Here we are overriding only the flowchart config, and not the general config, setting `htmlLabels` to `true` and `curve` to `linear`.
```mermaid-example
%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%
@@ -267,7 +269,7 @@ A --> C[End]
### Changing Sequence diagram config via directive
Some common sequence configurations are:
Some common sequence diagram configurations are:
- _width_: number
- _height_: number
@@ -278,8 +280,8 @@ Some common sequence configurations are:
- _showSequenceNumbers_: boolean
- _wrap_: boolean
For complete list of sequence diagram configurations, see _defaultConfig.ts_ in the source code.
_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_
For a complete list of sequence diagram configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code.
_Soon we plan to publish a complete list of all diagram-specific configurations updated in the docs._
So, `wrap` by default has a value of `false` for sequence diagrams.
@@ -289,7 +291,7 @@ Let us see an example:
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion?
Bob->Alice: Fine, how did you mother like the book I suggested? And did you catch the new book about alien invasion?
Alice->Bob: Good.
Bob->Alice: Cool
```
@@ -298,7 +300,7 @@ Bob->Alice: Cool
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion?
Bob->Alice: Fine, how did you mother like the book I suggested? And did you catch the new book about alien invasion?
Alice->Bob: Good.
Bob->Alice: Cool
```
@@ -309,13 +311,13 @@ The following code snippet changes sequence diagram config for `wrap` to `true`:
`%%{init: { "sequence": { "wrap": true} } }%%`
Using in the diagram above, the wrap will be enabled.
By applying that snippet to the diagram above, `wrap` will be enabled:
```mermaid-example
%%{init: { "sequence": { "wrap": true, "width":300 } } }%%
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion?
Bob->Alice: Fine, how did you mother like the book I suggested? And did you catch the new book about alien invasion?
Alice->Bob: Good.
Bob->Alice: Cool
```
@@ -324,7 +326,7 @@ Bob->Alice: Cool
%%{init: { "sequence": { "wrap": true, "width":300 } } }%%
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion?
Bob->Alice: Fine, how did you mother like the book I suggested? And did you catch the new book about alien invasion?
Alice->Bob: Good.
Bob->Alice: Cool
```

View File

@@ -16,4 +16,4 @@
#### Defined in
[mermaidAPI.ts:77](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L77)
[mermaidAPI.ts:78](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L78)

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