Compare commits

...

807 Commits

Author SHA1 Message Date
Sidharth Vinod
92dfe5c61e Remove mdast-util-from-markdown 2023-04-26 11:40:22 +05:30
Sidharth Vinod
5c94632130 Use remark-rehype 2023-04-26 11:34:41 +05:30
Sidharth Vinod
ba2c076ead Keep TS 2023-04-26 11:25:22 +05:30
Sidharth Vinod
3c9b169ac2 Merge branch 'sidv/removeSimpleMarkdown' into sidv/removeReact
* sidv/removeSimpleMarkdown:
  Back to JS with jsdoc types
  Add unsupported text
  Reduce changes in test
  Fix deps
  Fix lockfile
  Use mdast-util-from-markdown instead of simple-markdown
  handleMarkdown JS -> TS
2023-04-26 11:23:14 +05:30
Sidharth Vinod
91f1ef9c42 Back to JS with jsdoc types 2023-04-26 11:00:35 +05:30
Sidharth Vinod
eba3a7bdcc Add unsupported text 2023-04-26 10:55:37 +05:30
Sidharth Vinod
5bbce45c56 Reduce changes in test 2023-04-26 10:51:54 +05:30
Sidharth Vinod
8142ac4bb2 Add test 2023-04-26 10:45:05 +05:30
Sidharth Vinod
395a794758 Fix deps 2023-04-26 10:37:03 +05:30
Sidharth Vinod
1f2af83a0c Fix lockfile 2023-04-26 10:35:24 +05:30
Sidharth Vinod
4d3e5e42e1 Use mdast-util-from-markdown instead of simple-markdown 2023-04-26 10:30:13 +05:30
Sidharth Vinod
9b912c4a59 handleMarkdown JS -> TS 2023-04-26 10:11:19 +05:30
Sidharth Vinod
5f5143fd8f Add docs 2023-04-25 11:48:59 +05:30
Sidharth Vinod
d1b9e44075 Remove simple-markdown 2023-04-25 10:23:58 +05:30
Sidharth Vinod
56ec1ab52c Merge pull request #4338 from mermaid-js/sidv/fixClassGrammar
fix ClassGrammar
2023-04-24 20:43:48 +05:30
Sidharth Vinod
597a162249 Update version 2023-04-24 00:35:50 +05:30
Sidharth Vinod
24f5a15f20 Fix classParser 2023-04-24 00:34:41 +05:30
Sidharth Vinod
d125d22488 Check for conflict when linting jison 2023-04-24 00:15:51 +05:30
Sidharth Vinod
d09151e870 Update class grammar test 2023-04-24 00:15:30 +05:30
Sidharth Vinod
60db22886a fix Class diagram grammar 2023-04-24 00:15:07 +05:30
Sidharth Vinod
23bed7e653 Skip sourcemap 2023-04-23 23:40:24 +05:30
Sidharth Vinod
07dcb8cc44 Bump version 2023-04-23 23:38:34 +05:30
Sidharth Vinod
ba632ff65b Merge pull request #4303 from mermaid-js/MultipleUpdatesToClassDiagram
Multiple updates to class diagram
2023-04-23 23:37:24 +05:30
Sidharth Vinod
d79f946cbc Merge branch 'develop' into MultipleUpdatesToClassDiagram
* develop:
  Update deps
  Fix unit tests
2023-04-23 23:22:32 +05:30
Sidharth Vinod
b0c58a9764 Update deps 2023-04-23 23:15:26 +05:30
Sidharth Vinod
94991520ea Fix unit tests 2023-04-23 23:15:05 +05:30
Sidharth Vinod
05e7a6bd4b Merge branch 'develop' into MultipleUpdatesToClassDiagram
* develop: (30 commits)
  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
  chore(deps): update dependency eslint-plugin-unicorn to v46
  chore(deps): update actions/deploy-pages action to v2
  chore(deps): update dependency eslint-plugin-jsdoc to v43
  Split docs into build and deploy
  fix(deps): update dependency dompurify to v3
  chore(deps): update dependency concurrently to v8
  Split renovate groups
  Upgrade vitepress
  chore(deps): update pnpm to v7.30.5
  ...
2023-04-23 22:50:40 +05:30
Sidharth Vinod
9298f631f9 Merge pull request #4296 from Will-Low/patch-2
Updating documentation on notes for classes within class diagrams
2023-04-23 22:48:15 +05:30
Sidharth Vinod
04305bdddc Merge pull request #4281 from mermaid-js/sidv/addUMD
Add UMD build Back
2023-04-23 22:40:01 +05:30
Sidharth Vinod
f018ca34da Merge pull request #4335 from mermaid-js/sidv/fixApplitools
Sidv/fix applitools
2023-04-23 22:35:48 +05:30
Sidharth Vinod
bbe3909627 Update vite 2023-04-23 22:34:19 +05:30
Sidharth Vinod
642397b36c Fix applitools cypress 2023-04-23 15:59:27 +05:30
Sidharth Vinod
562514964e Update packages/mermaid/package.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-04-23 15:49:20 +05:30
Sidharth Vinod
125be13df4 Merge branch 'develop' into sidv/addUMD
* develop: (69 commits)
  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
  chore(deps): update dependency eslint-plugin-unicorn to v46
  chore(deps): update actions/deploy-pages action to v2
  chore(deps): update dependency eslint-plugin-jsdoc to v43
  Split docs into build and deploy
  fix(deps): update dependency dompurify to v3
  chore(deps): update dependency concurrently to v8
  Split renovate groups
  Upgrade vitepress
  chore(deps): update pnpm to v7.30.5
  pie diagram mermaid module import fix
  Update docs
  docs(flowchart): wrap br tag by codeblock
  ...
2023-04-23 15:31:17 +05:30
Sidharth Vinod
f3f7460706 Merge pull request #4328 from mermaid-js/renovate/typescript-5.x
chore(deps): update dependency typescript to v5
2023-04-23 13:09:44 +05:30
renovate[bot]
9e58f7bd99 chore(deps): update dependency typescript to v5 2023-04-22 20:51:24 +00:00
Sidharth Vinod
5110967bcd Merge pull request #4321 from mermaid-js/renovate/all-minor
fix(deps): update all minor dependencies (minor)
2023-04-23 02:20:12 +05:30
Sidharth Vinod
5c6773a47c Merge branch 'renovate/all-minor' of https://github.com/mermaid-js/mermaid into renovate/all-minor
* 'renovate/all-minor' of https://github.com/mermaid-js/mermaid:
  fix(deps): update all minor dependencies
  chore(deps): update pnpm to v8
  chore(deps): update fregante/setup-git-user action to v2
2023-04-23 02:04:28 +05:30
Sidharth Vinod
5634c6ca1a fix typedoc 2023-04-23 02:03:28 +05:30
renovate[bot]
1c17f4c770 fix(deps): update all minor dependencies 2023-04-22 20:30:38 +00:00
Sidharth Vinod
f17a325632 Merge pull request #4329 from mermaid-js/renovate/fregante-setup-git-user-2.x
chore(deps): update fregante/setup-git-user action to v2
2023-04-23 01:58:02 +05:30
Sidharth Vinod
9f2d14f676 Merge pull request #4330 from mermaid-js/renovate/pnpm-8.x
chore(deps): update pnpm to v8
2023-04-23 01:57:39 +05:30
renovate[bot]
bed9e8daab chore(deps): update pnpm to v8 2023-04-22 20:04:11 +00:00
renovate[bot]
4a258a0f2c chore(deps): update fregante/setup-git-user action to v2 2023-04-22 20:02:23 +00:00
renovate[bot]
e4bc3e2269 fix(deps): update all minor dependencies 2023-04-22 20:01:25 +00:00
Sidharth Vinod
a470407f02 Merge pull request #4327 from mermaid-js/renovate/start-server-and-test-2.x
chore(deps): update dependency start-server-and-test to v2
2023-04-23 01:30:16 +05:30
renovate[bot]
e6d11b9443 chore(deps): update dependency start-server-and-test to v2 2023-04-22 19:26:13 +00:00
Sidharth Vinod
c624cbb910 Merge pull request #4325 from mermaid-js/renovate/eslint-plugin-unicorn-46.x
chore(deps): update dependency eslint-plugin-unicorn to v46
2023-04-23 00:51:33 +05:30
Sidharth Vinod
b428c06bed Merge pull request #4326 from mermaid-js/renovate/rimraf-5.x
chore(deps): update dependency rimraf to v5
2023-04-23 00:51:08 +05:30
Sidharth Vinod
9cbc3d6fb9 Merge pull request #4322 from mermaid-js/renovate/actions-deploy-pages-2.x
chore(deps): update actions/deploy-pages action to v2
2023-04-23 00:50:58 +05:30
renovate[bot]
f597f15f82 chore(deps): update dependency rimraf to v5 2023-04-22 18:53:56 +00:00
renovate[bot]
909c063a67 chore(deps): update dependency eslint-plugin-unicorn to v46 2023-04-22 18:51:50 +00:00
renovate[bot]
f93bac9dd4 chore(deps): update actions/deploy-pages action to v2 2023-04-22 18:49:44 +00:00
renovate[bot]
8cb3318d94 chore(deps): update dependency eslint-plugin-jsdoc to v43 2023-04-22 18:46:44 +00:00
Sidharth Vinod
cb1e8220a4 Merge pull request #4331 from mermaid-js/renovate/dompurify-3.x
fix(deps): update dependency dompurify to v3
2023-04-22 23:59:53 +05:30
Sidharth Vinod
49bb87e14a Split docs into build and deploy 2023-04-22 23:59:33 +05:30
renovate[bot]
ddde451915 fix(deps): update dependency dompurify to v3 2023-04-22 08:28:31 +00:00
Sidharth Vinod
40d2682b14 Merge pull request #4323 from mermaid-js/renovate/concurrently-8.x
chore(deps): update dependency concurrently to v8
2023-04-22 13:53:05 +05:30
renovate[bot]
93eb72248a chore(deps): update dependency concurrently to v8 2023-04-20 04:15:28 +00:00
Sidharth Vinod
6883a92672 Split renovate groups 2023-04-20 09:40:58 +05:30
Sidharth Vinod
2fe0a1360f Upgrade vitepress 2023-04-20 09:35:28 +05:30
Sidharth Vinod
8e0f947d6c Merge pull request #4304 from mermaid-js/renovate/patch-all-minor-patch
chore(deps): update pnpm to v7.30.5
2023-04-19 16:29:40 +05:30
renovate[bot]
411f868f22 chore(deps): update pnpm to v7.30.5 2023-04-19 07:00:59 +00:00
Sidharth Vinod
39f9277a73 Merge pull request #4316 from agentraghav/agentraghav-pie-chart-demos-fix
pie diagram mermaid module import fix
2023-04-19 12:25:59 +05:30
raghvendra
ff3104ad9c pie diagram mermaid module import fix 2023-04-19 11:25:32 +05:30
sidharthv96
8dfad241c3 Update docs 2023-04-18 19:00:47 +00:00
Sidharth Vinod
44f6d11537 Merge pull request #4310 from Bogay/fix/escape-br-tag-in-flowchart-doc
docs(flowchart): wrap br tag by codeblock
2023-04-19 00:27:31 +05:30
Sidharth Vinod
698951c059 Merge pull request #4309 from dix/fix_doc_obsidian_link
fix(doc): Link to Obsidian doc/integration
2023-04-19 00:26:46 +05:30
bogay
b3959299bc docs(flowchart): wrap br tag by codeblock
so that it can render `<br>` text on doc correctly.
2023-04-18 18:51:52 +08:00
dix
1d4fc5051e fix(doc): Link to Obsidian doc/integration 2023-04-18 11:37:39 +02:00
Knut Sveidqvist
6ccdc2bd01 Fix for async handling flowchart-elk 2023-04-17 19:33:51 +02:00
Will-Low
28155b0e0a Removing redundant code block 2023-04-17 10:24:06 -07:00
Will-Low
47edb2c0bb Merge branch 'mermaid-js:develop' into patch-2 2023-04-17 07:30:18 -07:00
Justin Greywolf
642bc1a739 update tests for package visibility 2023-04-17 07:24:27 -07:00
Justin Greywolf
5b0eb702e5 Merge branch 'develop' into MultipleUpdatesToClassDiagram 2023-04-17 06:51:51 -07:00
Justin Greywolf
62870597d6 Fixed failing tests 2023-04-17 06:51:08 -07:00
Sidharth Vinod
01de155e3c Merge pull request #4278 from lishid/patch-2
Fix git graph css bracket leak
2023-04-17 17:29:27 +05:30
Sidharth Vinod
0485999636 Merge pull request #4299 from eitsupi/patch-1
docs(integrations): list quarto
2023-04-17 17:26:53 +05:30
Sidharth Vinod
f638082ab4 Merge pull request #4297 from bish0polis/develop
Update bug_report.yml
2023-04-17 17:26:18 +05:30
Justin Greywolf
59a85a7dfd Multiple Fixes to classes 2023-04-16 19:42:51 -07:00
eitsupi
432e8d6535 docs: reflect source changes 2023-04-15 17:01:51 +09:00
eitsupi
8c4fb6c753 docs(integrations): list quarto 2023-04-15 16:49:32 +09:00
Justin Greywolf
ac63788a9c organized and fixed tests 2023-04-14 10:13:21 -07:00
Alois Klink
32538b5b03 Merge branch 'develop' into lishid/patch-2
The E2E tests are failing, but will probably be fixed by commit
9bb0cef8 (fix: wait for image rendering in nodes, 2023-03-30)
on the `develop` branch.
2023-04-14 02:09:22 +01:00
Bishop Clark
8aa51cf3e7 Update bug_report.yml
correct adjective order
2023-04-13 16:59:13 -07:00
Will-Low
e3ca003127 Rebuilding docs 2023-04-13 09:59:11 -07:00
Will-Low
19363965ad Updating documentation on notes for classes
I was confused by the documentation on notes for a specific class. Updated the wording slightly and added an example for clarity.
2023-04-13 09:08:48 -07:00
Sidharth Vinod
32d553a28f Merge pull request #4213 from remcohaszing/fix-node16-module-resolution
Support node16 module resolution
2023-04-13 21:03:27 +05:30
Remco Haszing
e84c5ec4c9 Fix broken tests 2023-04-13 15:13:52 +02:00
Remco Haszing
aa5c1a5f78 Merge branch 'develop' into fix-node16-module-resolution 2023-04-13 14:58:17 +02:00
Sidharth Vinod
d9ebb0d492 Merge pull request #4295 from aloisklink/test/test-styles
Fix and test a bunch of invalid CSS issues
2023-04-13 18:08:11 +05:30
Sidharth Vinod
634d6602b9 Merge pull request #4272 from slab/develop
Add Slab to the list of integrations
2023-04-13 18:05:24 +05:30
Sidharth Vinod
ea6f9c2d59 Merge pull request #4286 from legonigel/4195_arrow_end_size
Fix #4195 start and end arrow have different sizes
2023-04-13 15:05:56 +05:30
Sidharth Vinod
dda2c25d52 Merge pull request #4294 from onayiga/Documentation-edits
Update index.md
2023-04-13 15:04:28 +05:30
Zihua Li
d13b58bec8 Merge branch 'mermaid-js:develop' into develop 2023-04-13 16:00:01 +08:00
Alois Klink
b4164b6ab5 test: test that styles and themes return valid CSS
Test that `src/diagrams/*/styles.ts` module returns a valid
CSS stylesheet that can be parsed via [stylis][1] and then
becomes a valid CSS that [csstree-validator][2] validates.

We test this for every diagram and for every theme, because
many of the invalid CSS bugs are caused by missing theme vars.

There are some CSS errors that I couldn't easily fix, so I've written
the tests to ignore the following CSS errors:
  - 'Unknown property `rx`' (Valid in SVG2 draft and in some browsers)
  - 'Unknown property `ry`' (Valid in SVG2 draft and in some browsers)
  - 'Unknown property `dy`'
    - This doesn't seem to be valid CSS in any SVG version, but maybe
      some browsers support it 🤷 I feel like we should probably change
      this though.

[1]: https://github.com/thysultan/stylis
[2]: https://github.com/csstree/validator
2023-04-13 08:27:32 +01:00
Alois Klink
aee18ca018 fix: fix scaleLabelColor in theme forest/neutral
The `scaleLabelColor` variable in `theme-forest` and `theme-neutral`
was set to `"calculated"`, as it defaults to `this.labelTextColor`
**before** `this.labelTextColor` was set.

Moving the `this.labelTextColor` assignments before `scaleLabelColor`
is calculated fixes this.

Fixes mindmap and timeline invalid CSS in theme forest and neutral.
2023-04-13 07:32:18 +01:00
Alois Klink
cd976871f0 fix: define gitBranchLabel* in theme forest/dark
Define `gitBranchLabel[0-7]` in `theme-dark` and `theme-forest` to fix
invalid CSS for gitgraphs.

The values have been copied from [`theme-default`][1]).

[1]: 727bf30824/packages/mermaid/src/themes/theme-default.js (L296-L303)
2023-04-13 07:32:18 +01:00
Alois Klink
4f9c4548bf fix: define excludeBkgColor for theme-dark
Define `excludeBkgColor` for `theme-dark` to fix invalid CSS
for gantt diagrams.

All the other themes defined this to '#eeeeee', but I thought that
was a bit too bright in a dark theme, so instead I set it to
`darken(this.sectionBkgColor, 10);`.
2023-04-13 07:32:18 +01:00
Alois Klink
720408e143 fix: define border2 for theme-base
`border2` is a theme variable used by the CSS for flowcharts and
user-journey.

I've defined this to default to `tertiaryBorderColor` in theme-base,
as other themes tend to set `border2` to the same value as
`clusterBorder`, which in theme-base is `tertiaryBorderColor`.
2023-04-13 07:32:18 +01:00
Alois Klink
54f827d850 fix: define arrowheadColor for theme-base
Define `arrowheadColor` as `invert(this.background)` in
`theme-base.js`, as it's currently `undefined`, which causes CSS
issues when using `theme-base`.

I've picked `invert(this.background)` so that it matches
the default value of `lineColor`.
2023-04-13 07:32:18 +01:00
Alois Klink
7566b5620e fix: fix requirementBorderSize theme variable
Currently, `requirementBorderSize` defaults to `primaryBorderColor`,
which is a color, not a valid SVG `stroke-width`.

Instead, I've made it default to `1`.
2023-04-13 07:32:18 +01:00
Alois Klink
9cb7a4a3f5 fix: fix invalid CSS fill-opacity value
Fix an invalid value for the CSS `fill-opacity` value.

Percentage values for `fill-opacity` are only supported in the SVG 2.0
draft, so according to [MDN][1]:

> it is not widely supported yet, […] as a consequence, it is best
> practices [sic] to set opacity with a value in the range `[0-1]`.

[1]: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-opacity
2023-04-13 07:32:18 +01:00
Alois Klink
616d370a51 fix: fix personBorder/Bkg C4 diagram theme vars
The current `personBorder`/`personBkg` theme variables for C4 diagrams
are set to the string `'calculated'`.

However, despite being `'calculated'`, they never seem to change to
anything else, and so become invalid CSS variables.

I've instead changed these to just default to base theme vars,
as that's what they do in [`these-base.js`][1].

[1]: 727bf30824/packages/mermaid/src/themes/theme-base.js (L106-L107)
2023-04-13 07:32:18 +01:00
Alois Klink
83d7d6c48f fix: fix invalid CSS for class diagram
`.divider` had a `stroke` property of `1` that was invalid.

This looks like a typo from PR
https://github.com/mermaid-js/mermaid/pull/1567,
as the `src/theme/class.scss` file's `.divider` section correctly
shows `stroke-width: 1;`.

Fixes: https://github.com/mermaid-js/mermaid/pull/1567
2023-04-13 07:32:18 +01:00
onayiga
1c98621cf4 Update index.md
Minor grammatical and editorial changes; Updated Mermaid API section to make use of active voice for enhanced readability and comprehension.
2023-04-12 23:12:16 -04:00
Justin Greywolf
727bf30824 Merge pull request #4268 from Valentine14th/bug/4023-image-rendering
fix: image rendering in nodes
2023-04-10 10:09:40 -07:00
legonigel
aa3c0023f4 Fix #4195 start and end arrow have different sizes
In #3938, it appears that the marker sizes for pointEnd was
unintentionally changed. This reverts the change in marker size.

It is also possible that the intention was to change the viewBox size
for both start and end, but I doubt this since it makes the arrows
significantly smaller than other markers.
2023-04-09 20:56:00 -07:00
Sidharth Vinod
f08778d0c7 Merge pull request #4285 from emersonbottero/dayjs-esm
fix: really import esm version of dayjs
2023-04-09 11:19:42 +05:30
Emerson Bottero
37eb100bb2 chore: add files to imports 2023-04-08 23:50:10 -03:00
Laura Valentine Tscharner
9bb0cef82b fix: wait for image rendering in nodes 2023-04-08 16:28:58 +01:00
Emerson Bottero
4643bb1c00 fix: really import esm version of dayjs 2023-04-07 23:38:05 -03:00
Knut Sveidqvist
d132d26246 Merge branch 'master' into develop 2023-04-06 08:33:18 +02:00
Sidharth Vinod
24c9506935 fix version 2023-04-05 22:07:46 +05:30
Sidharth Vinod
ca8ce8201c Merge branch 'develop' into sidv/addUMD
* develop: (81 commits)
  revert pnpm changes
  doc update
  auto generated from pnpm run
  auto generated from pnpm run
  linting
  added example of Bar chart
  Update docs
  Adding rendering tests and unit tests
  Syntax for markdown strings is a single backtick.
  updated labels in the chart
  Update docs
  updated example data smaller
  Bar chart
  fix: Remove comment line completely
  fix: trimStart to text
  test: add space before init
  fix uncaughexception in tests
  fix(#4256): Keep error diagram on screen
  fix(#4137): Cleanup comments before parsing
  Update docs
  ...
2023-04-05 22:04:53 +05:30
Sidharth Vinod
777a781052 Merge pull request #4261 from karistom/develop
Bar chart (using gantt chart)
2023-04-05 16:37:06 +05:30
Sidharth Vinod
d1e369e68d revert pnpm changes 2023-04-05 16:32:48 +05:30
chriskim-au1
3b861ab91f doc update 2023-04-05 13:11:22 +10:00
Ch K
721208e981 auto generated from pnpm run 2023-04-05 11:31:44 +10:00
Ch K
ee455c1edb auto generated from pnpm run 2023-04-05 11:26:28 +10:00
Ch K
43137fbdb2 Merge branch 'mermaid-js:develop' into develop 2023-04-05 10:12:12 +10:00
Ch K
7ac84fb9af linting 2023-04-05 09:18:11 +10:00
Ch K
efc4062721 added example of Bar chart 2023-04-05 09:07:01 +10:00
Lishid
5693f63603 Fix git graph css bracket leak 2023-04-04 11:22:19 -04:00
Knut Sveidqvist
8e6d16e601 Update docs 2023-04-04 15:53:53 +02:00
knsv
e96c8306d1 Update docs 2023-04-04 13:46:55 +00:00
Knut Sveidqvist
756fc06c5d 2w is anough, 4 is just too much 2023-04-04 15:43:33 +02:00
Knut Sveidqvist
80df10067d Adding Mermaid Strings to news 2023-04-04 15:39:23 +02:00
Knut Sveidqvist
e7c237dcf3 Merge branch 'release/10.1.0' 2023-04-04 15:19:15 +02:00
Knut Sveidqvist
75adb8ae90 Updated package.json 2023-04-04 14:38:09 +02:00
Knut Sveidqvist
fc1962c795 Version set 10.1.0 and fix for label centering 2023-04-04 14:36:05 +02:00
Knut Sveidqvist
1a56a18f9b Fixing issues with centering of labels for subgraphs and handling of special characters in html strings 2023-04-04 12:49:14 +02:00
Knut Sveidqvist
1841346ff6 Fixing issues in mindmaps and class diagram notes after tests 2023-04-04 10:45:39 +02:00
Knut Sveidqvist
e8799ad515 Merge remote-tracking branch 'origin/release/10.1.0' into release/10.1.0 2023-04-04 08:29:54 +02:00
Knut Sveidqvist
2b9872d656 Some styling fixes for markdown strings 2023-04-04 08:29:15 +02:00
Knut Sveidqvist
9ffd4d2344 Merge pull request #4254 from mermaid-js/add-latest-news-section
Docs: add Latest News section
2023-04-04 08:27:11 +02:00
Steph
815f4cab73 add blog post 2023-04-03 10:48:59 -07:00
Zihua Li
bc573ef0bb Add Slab to the list of integrations 2023-04-03 23:17:29 +08:00
Knut Sveidqvist
5d536b9973 Adding documentation for markdown strings 2023-04-03 14:41:13 +02:00
Knut Sveidqvist
6807c48f9a Merge pull request #4271 from mermaid-js/4220-string-synax-and-features
4220 string synax and features
2023-04-03 12:36:09 +02:00
knsv
c777f9193d Update docs 2023-04-03 10:35:19 +00:00
Knut Sveidqvist
917a54f3cd Merge branch 'develop' into 4220-string-synax-and-features 2023-04-03 12:31:56 +02:00
Knut Sveidqvist
471c842a58 Adding rendering tests and unit tests 2023-04-03 12:12:51 +02:00
Knut Sveidqvist
99f65813a1 Syntax for markdown strings is a single backtick. 2023-04-03 10:43:15 +02:00
Remco Haszing
da7725f38e Merge branch 'develop' into fix-node16-module-resolution 2023-04-01 12:05:19 +02:00
Sidharth Vinod
7e610d13dc Merge pull request #4207 from aloisklink/test/4198-fix-gantt-today-marker-tests
Fix broken Gantt  `todayMarker` tests
2023-03-31 18:23:06 +05:30
Ch K
64baf2d365 updated labels in the chart 2023-03-31 18:01:28 +11:00
knsv
f9c0f1d46f Update docs 2023-03-31 06:46:34 +00:00
Knut Sveidqvist
3823ecafb1 Merge pull request #4238 from JeremyFunk/feature/1618_repeating_tasks
Implement repeating tasks
2023-03-31 08:43:13 +02:00
Knut Sveidqvist
057c9e4b81 Merge branch 'develop' into feature/1618_repeating_tasks 2023-03-31 08:42:10 +02:00
Ch K
e6db9e8fc3 updated example data smaller 2023-03-31 17:36:50 +11:00
Knut Sveidqvist
c4e4efd4b8 Merge pull request #4258 from mermaid-js/sidv/fix/4256
fix(#4256): Keep error diagram on screen
2023-03-31 08:34:53 +02:00
Knut Sveidqvist
da066553bd Merge pull request #4257 from mermaid-js/sidv/fix/4137
fix(#4137): Cleanup comments before parsing
2023-03-31 08:32:55 +02:00
Ch K
a58d014a13 Bar chart 2023-03-31 17:00:53 +11:00
Sidharth Vinod
006da82470 fix: Remove comment line completely 2023-03-31 00:35:56 +05:30
Sidharth Vinod
1945a62990 fix: trimStart to text 2023-03-31 00:25:33 +05:30
Sidharth Vinod
d16894daf4 test: add space before init 2023-03-31 00:18:53 +05:30
Sidharth Vinod
4d933f6b72 Merge pull request #4253 from remcohaszing/export-mermaid-type
Define and export the Mermaid type
2023-03-30 23:56:48 +05:30
Sidharth Vinod
7739302ee8 fix uncaughexception in tests 2023-03-30 23:28:41 +05:30
Sidharth Vinod
46ab6f46f2 fix(#4256): Keep error diagram on screen 2023-03-30 23:09:46 +05:30
Sidharth Vinod
48d267c6dc fix(#4137): Cleanup comments before parsing 2023-03-30 22:08:50 +05:30
Jeremy Funk
15af3ea585 Update docs 2023-03-29 23:53:12 +02:00
Steph
35366f79ac add announcements page content 2023-03-29 14:48:09 -07:00
Steph
4c0980629c add blog page content 2023-03-29 14:46:19 -07:00
Steph
8bd2c0f272 create announcements and blog pages 2023-03-29 14:27:04 -07:00
Steph
2896865163 add latest news section 2023-03-29 14:23:44 -07:00
Sidharth Vinod
a49cdabd6c Add Slack invite link 2023-03-29 21:50:15 +05:30
Remco Haszing
2dd6329872 Define and export the Mermaid type
This represents the type of the default export. This is useful when it’s
being passed around or declared as a global.
2023-03-29 16:55:58 +02:00
Knut Sveidqvist
507a518a91 Bugfix for port selection when using diamonds in elk layout of flowcharts 2023-03-29 16:17:59 +02:00
Knut Sveidqvist
4caf7d7c7b Adding support for markdown string in flowchart-elk 2023-03-29 16:01:08 +02:00
Knut Sveidqvist
89193d7360 Simple markdown in lock file 2023-03-29 09:35:42 +02:00
Knut Sveidqvist
89eec225ce Merge branch 'develop' into 4220-string-synax-and-features 2023-03-29 09:34:49 +02:00
Knut Sveidqvist
cbc2df1ff6 Merge branch 'develop' into feature/1618_repeating_tasks 2023-03-29 09:23:18 +02:00
Knut Sveidqvist
e4a2c74b1b Merge pull request #4247 from kshitijsaksena/bug/4137_fix_comment_bug
Updated render to remove comments from text
2023-03-28 16:26:54 +02:00
Knut Sveidqvist
63160293c7 Updating support for the new type of strings for flowcharts-v2 2023-03-28 15:28:52 +02:00
Knut Sveidqvist
9c0cb3f320 Merge pull request #4249 from aloisklink/build/remove-use-inline-specifiers-lockfile-format-from-npmrc
Remove inline-specifiers pnpm option from `.npmrc` file to avoid merge conflicts
2023-03-27 16:27:30 +02:00
Knut Sveidqvist
fbeb016398 test commit 2023-03-27 14:43:59 +02:00
Alois Klink
093f1697e1 build: remove inline-specifiers pnpm option
Remove the `use-inline-specifiers-lockfile-format=true` pnpm option
from our `.npmrc` file.

This was added in
[PNPM version v7.7.0](https://github.com/pnpm/pnpm/releases/tag/v7.7.0)
and should make our `pnpm-lock.yaml` file much nicer,
but unfortunately, renovate doesn't seem to support it (unsure why?).

This means that whenever we do a `pnpm install` locally, the lock-file
gets changed, and whenever renovate makes a PR, it changes the
lock-file back. This causes a lot of unnecassary merge conflicts.
2023-03-25 21:16:45 +00:00
Alois Klink
f56e0bd530 Merge pull request #4246 from piradata/patch-1
Fix hexagon node flowchart code example in docs
2023-03-25 21:09:57 +00:00
PIRADATA
022e6670d0 docs: fix hexagon node flowchart code example
Use `mermaid-example` instead of `mmd` so that Mermaid formats
the code properly.
2023-03-25 20:13:04 +00:00
Kshitij
e3760d1709 Fixed regex bug 2023-03-25 20:13:30 +05:30
Kshitij
0475591fb6 Updated render to remove comments from text 2023-03-25 15:46:52 +05:30
Jeremy Funk
ba1c5dc6c7 Change to using display mode yaml 2023-03-25 01:56:50 +01:00
Jeremy Funk
2f8c571a5c Fix unit test 2023-03-24 00:37:25 +01:00
Jeremy Funk
a70b3a881d Add comment 2023-03-24 00:22:52 +01:00
Jeremy Funk
950f560d81 Refactor 2023-03-24 00:20:36 +01:00
Jeremy Funk
fd9680a050 Fix bug 2023-03-24 00:18:52 +01:00
Jeremy Funk
2d815e9626 Add documentation 2023-03-24 00:09:06 +01:00
Jeremy Funk
8c0550b2b7 Code refactoring, add e2e test 2023-03-23 23:45:59 +01:00
Jeremy Funk
f054609e02 Add test, fix typo 2023-03-23 22:58:46 +01:00
Jeremy Funk
45c0c5fee0 Bugfix 2023-03-23 22:54:58 +01:00
Jeremy Funk
a535fe1679 Bugfixes, refactor, add compact 2023-03-23 22:38:04 +01:00
Alois Klink
e4d2118d4b Merge pull request #4231 from mermaid-js/renovate/patch-all-minor-patch
chore(deps): update pnpm to v7.30.1
2023-03-23 20:04:30 +00:00
Alois Klink
1184fce148 Merge pull request #4237 from xuanxu/patch-1
Fix typos in timeline docs
2023-03-23 20:00:39 +00:00
Alois Klink
a79f118323 Merge pull request #4230 from vorburger/patch-1
docs: Remove repeated phrase
2023-03-23 19:58:11 +00:00
Juanjo Bazán
6cba2ea02d docs: fix typos in timeline.md 2023-03-23 19:46:17 +00:00
Michael Vorburger ⛑️
3add711c55 docs: Remove repeated phrase 2023-03-23 19:42:33 +00:00
renovate[bot]
1481a8ccb1 chore(deps): update pnpm to v7.30.1 2023-03-23 19:04:24 +00:00
Jeremy Funk
b3b7108d59 Implement basic repeating tasks 2023-03-22 23:15:54 +01:00
Knut Sveidqvist
fd9ad95346 #4220 Handling paragraphs and html labels with classes in mindmaps. 2023-03-22 18:41:31 +01:00
Knut Sveidqvist
a1c50b8079 #4220 Parsing the text as markdown and rendering accordingly 2023-03-20 14:15:26 +01:00
Remco Haszing
4515c58d42 Merge branch 'develop' into fix-node16-module-resolution 2023-03-20 12:24:29 +01:00
Remco Haszing
0dc6e0a0d9 Update cypress mermaid imports 2023-03-20 12:21:22 +01:00
renovate[bot]
8b37ceffe1 chore(deps): update pnpm to v7.30.0 2023-03-20 04:21:23 +00:00
Remco Haszing
b719fa9b18 Fix Cypress tests 2023-03-17 20:53:13 +01:00
Remco Haszing
f3bebf25ea Merge branch 'develop' into fix-node16-module-resolution 2023-03-17 20:52:50 +01:00
Alois Klink
7647ae317a Merge pull request #4228 from remcohaszing/update-types-lodash-es
Update @types/lodash-es
2023-03-17 18:52:30 +00:00
Remco Haszing
8c69ecd5ac Update @types/lodash-es
This adds support for the TypeScript `"moduleResolution": "node16"`.
2023-03-17 12:26:41 +01:00
Knut Sveidqvist
dc98fe6a3b Merge pull request #4226 from mermaid-js/updates-homepage
Updates to the Homepage
2023-03-16 16:28:27 +01:00
Steph
b56c8a2a7a fix favicon resolution 2023-03-16 08:13:10 -07:00
Steph
d18dff65e1 add hover effect to mc icon and update cspell 2023-03-16 08:12:53 -07:00
Steph
2dc71377dc add team member 2023-03-16 08:12:42 -07:00
Steph
89b9868870 update cards 2023-03-16 08:11:29 -07:00
Steph
b232f20169 add mermaid chart logo and link to navbar 2023-03-16 08:11:03 -07:00
sidharthv96
2dd906d809 Update docs 2023-03-15 07:50:54 +00:00
Sidharth Vinod
fb70091046 Merge pull request #4221 from Whoeza/patch-1
typo fix
2023-03-15 13:17:34 +05:30
Chuck
ddd245de71 typo fix 2023-03-14 20:35:39 +01:00
Knut Sveidqvist
853d9b7f98 #4220 Create text utility functions handling new lines and applying them on mindmap 2023-03-14 13:52:20 +01:00
renovate[bot]
f3a9f81bfb fix(deps): update all non-major dependencies 2023-03-13 09:45:30 +00:00
renovate[bot]
4b462d717c chore(deps): update node.js to v18.15.0 2023-03-13 04:42:20 +00:00
Remco Haszing
fc80ba66d2 Fix import extensions 2023-03-11 15:27:16 +01:00
Remco Haszing
fd013286f6 Fix vue import error 2023-03-11 15:07:12 +01:00
Remco Haszing
b7d31adda4 Support node16 module resolution
The `node16` module resolution requires imports to use the `.js` file
extension in type definitions.

`@rollup/plugin-typescript` is needed to make this work with the Vite
setup used by Mermaid.

The module option for Mermaid internally is set to `nodenext`. This is
needed to support `.json` imports. Note that setting `module` to
`node16` or `nodenext` implies a matching `moduleResolution` value.
2023-03-11 14:54:21 +01:00
sidharthv96
273a9e7ad6 Update docs 2023-03-10 19:53:13 +00:00
Sidharth Vinod
f75bd397f8 Merge pull request #4209 from RobertWeinmeister/doc/dokuwiki_plugin
Updated DokuWiki plugin for Mermaid integration
2023-03-11 01:20:06 +05:30
Sidharth Vinod
f70d52510a Merge pull request #4210 from andrew-clarkson/patch-1
v smol fixes while reading thru docs
2023-03-11 01:18:56 +05:30
Sidharth Vinod
f0c24d9ec5 Merge pull request #4211 from andrew-clarkson/patch-2
Remove duplication in "A hexagon node"
2023-03-11 01:18:04 +05:30
Andrew Clarkson
708633f639 Remove duplication in "A hexagon node" 2023-03-10 13:25:14 -05:00
Andrew Clarkson
2e174bb3b6 v smol fixes while reading thru docs 2023-03-10 13:12:21 -05:00
Robert Weinmeister
160fe0f971 Updated DokuWiki plugin for Mermaid integration
The plugin Mermaid for DokuWiki replaces the no longer supported plugin flowcharts.
2023-03-10 10:05:59 +01:00
Alois Klink
58d4ba0d8f test(e2e): fix gantt todayMarker tests
The gantt diagram that were supposed to test whether
`todayMarker off` works wasn't working properly, because
`todayMarker on` wasn't working (i.e. the test never failed).

I've fixed this issue, and added a test that checks whether
`todayMarker on` works.

Fixes: https://github.com/mermaid-js/mermaid/issues/4198
2023-03-09 19:18:22 +00:00
Sidharth Vinod
155e729722 Merge pull request #4197 from mre/update-ignored-links
Clean up list of ignored links
2023-03-09 02:34:04 +05:30
Matthias
a17463307b Clean up list of ignored links
The removed links work again.
2023-03-08 21:30:12 +01:00
Sidharth Vinod
4e4f2fcfc5 Merge branch 'master' into develop
* master:
  Updated import of cytoscape for consistent behavior
  v9.4.3
  fix: dayjs import extension
  9.4.2
  Fix mindmap demo
  9.4.2-rc.2
  chore: Rename diagram-definitions with specific names
  Use cytoscape esm
  Revert "chore: Defer elk loading"
  Revert "Split cytoscape"
  test(gantt): test daylight savings in ganttdb
  refactor(deps): replace `moment` with `dayjs`
  fix(E2E): Add cors package
  fix Server
  Fix lockfile
  Remove Readme
2023-03-08 00:13:54 +05:30
Sidharth Vinod
759ab0c0f9 Merge branch 'release/9.4.3'
* release/9.4.3:
  Updated import of cytoscape for consistent behavior
  v9.4.3
  fix: dayjs import extension
2023-03-08 00:13:27 +05:30
Knut Sveidqvist
1a7b8d3897 Updated import of cytoscape for consistent behavior 2023-03-07 23:30:44 +05:30
Sidharth Vinod
f5e7abb71f v9.4.3 2023-03-07 23:29:22 +05:30
Sidharth Vinod
1412bb4e94 fix: dayjs import extension 2023-03-07 22:40:50 +05:30
Sidharth Vinod
328f3968d1 Merge branch 'release/9.4.2'
* release/9.4.2:
  9.4.2
  Fix mindmap demo
  9.4.2-rc.2
  chore: Rename diagram-definitions with specific names
  Use cytoscape esm
  Revert "chore: Defer elk loading"
  Revert "Split cytoscape"
  test(gantt): test daylight savings in ganttdb
  refactor(deps): replace `moment` with `dayjs`
  fix(E2E): Add cors package
  fix Server
  Fix lockfile
  Remove Readme
2023-03-07 21:33:23 +05:30
Sidharth Vinod
c965e4c456 9.4.2 2023-03-07 21:20:32 +05:30
Sidharth Vinod
86aa7ab91e Fix mindmap demo 2023-03-07 18:09:33 +05:30
Sidharth Vinod
141d38b4e7 Merge pull request #4181 from ischanx/fix-getbbox-cache
fix(squence): getBBox() returns zero
2023-03-07 11:16:42 +05:30
Sidharth Vinod
98af37f09f Merge pull request #4183 from mermaid-js/sidv/fix/1066
fix(#1066): Return true if parse is success.
2023-03-07 11:16:25 +05:30
Sidharth Vinod
a57e392ed4 Merge pull request #4187 from Pr0dt0s/feature/4156_expose_detectType
Expose detectType function
2023-03-07 09:40:50 +05:30
Sidharth Vinod
993a19e15b Merge branch 'develop' into sidv/fix/1066
* develop:
  ci(e2e): skip caching in actions/setup-node
  chore: add default entry to exports
  Fix: add require entry in package.json
2023-03-07 09:39:10 +05:30
Sidharth Vinod
533830172c Add UMD back 2023-03-07 09:38:51 +05:30
Sidharth Vinod
7bea44e752 Merge pull request #4194 from mermaid-js/chore/skip-setup-node-caching-in-e2e-ci
CI(e2e): Skip caching in `actions/setup-node`, as `cypress-io/github-action` already caches for us
2023-03-07 08:34:06 +05:30
Alois Klink
f0a73696f5 ci(e2e): skip caching in actions/setup-node
Skip caching `pnpm` in `actions/setup-node`,
because the `cypress-io/github-action` natively supports caching `pnpm`,
as of [cypress-io/github-action@v4.2.0][1].

[1]: https://github.com/cypress-io/github-action/releases/tag/v4.2.0
2023-03-06 22:57:22 +00:00
Pedro Reyes
878c9f1d9d Add documentation for exposed detectType function 2023-03-06 19:32:34 -03:00
Pedro Reyes
8ebd550e0b Merge branch 'mermaid-js:develop' into feature/4156_expose_detectType 2023-03-06 19:29:59 -03:00
Sidharth Vinod
6b5221e465 Merge pull request #4164 from lceconi/patch-1
Fix: add require entry in package.json
2023-03-06 18:00:37 +05:30
Laura Ceconi
8f0cb695e7 chore: add default entry to exports 2023-03-06 12:15:22 +01:00
Sidharth Vinod
1913aad03f Merge branch 'develop' into sidv/fix/1066
* develop:
  fix(deps): update all non-major dependencies
  chore(deps): update all non-major dependencies
  Update Diagram.ts
  Update Diagram.ts
  feat: added internal label
  feat: improve documentation
  make clearer
  fix: invalid url and generate docs
  Update integrations.md to include Mermaid Flow
  feat: expose the diagram api
  fixup! fixup! Move pie outerStrokeWidth to theme variables, update docs
  fixup! Move pie outerStrokeWidth to theme variables, update docs
  Move pie outerStrokeWidth to theme variables, update docs
  fixup! fixup! feat(pie): adding outer border, text position options
  fixup! feat(pie): adding outer border, text position options
  Update packages/mermaid/src/diagrams/pie/pieRenderer.js
  feat(pie): adding outer border, text position options
2023-03-06 14:04:00 +05:30
Sidharth Vinod
b80da0daa1 Merge pull request #4174 from ted-marozzi/feature/4172_expose_diagram_api
feat: expose the diagram api
2023-03-06 14:00:02 +05:30
Sidharth Vinod
c2035c3709 Merge pull request #4186 from ted-marozzi/docs/make_docs_contributing_clearer
docs: make contributing to docs a bit clearer
2023-03-06 13:55:47 +05:30
Sidharth Vinod
d77be9546d Merge pull request #4190 from mermaid-js/renovate/patch-all-minor-patch
fix(deps): update all non-major dependencies (patch)
2023-03-06 13:54:57 +05:30
renovate[bot]
e9d49e6b98 fix(deps): update all non-major dependencies 2023-03-06 06:25:39 +00:00
renovate[bot]
6c2c28940b chore(deps): update all non-major dependencies 2023-03-06 06:22:18 +00:00
Ted Marozzi
72c94b6e6e Update Diagram.ts 2023-03-06 10:19:06 +11:00
Ted Marozzi
44d806e7f5 Update Diagram.ts 2023-03-06 10:17:43 +11:00
Alois Klink
727c56dbb1 Merge pull request #4184 from ted-marozzi/patch-1
Update integrations.md to include Mermaid Flow Visual Editor
2023-03-05 23:12:50 +00:00
Pedro Reyes
526e8fa1ad Expose detectType function 2023-03-05 15:55:54 -03:00
Ted Marozzi
969088187c feat: added internal label 2023-03-06 05:28:34 +11:00
Ted Marozzi
649e6820cc feat: improve documentation 2023-03-06 05:18:33 +11:00
Ted Marozzi
8027a0c55d make clearer 2023-03-06 04:55:59 +11:00
Ted Marozzi
d65d4fc39f fix: invalid url and generate docs 2023-03-06 04:44:47 +11:00
sidharthv96
f7f6cc73f5 Update docs 2023-03-05 05:52:51 +00:00
Sidharth Vinod
55ebfadb32 Update packages/mermaid/src/mermaidAPI.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-03-05 11:19:40 +05:30
Ted Marozzi
c5a5a22b72 Update integrations.md to include Mermaid Flow
the interative visual mermaid editor!
2023-03-05 14:33:46 +11:00
Sidharth Vinod
ad52d7d823 Merge pull request #4145 from Billiam/feature/move-pie-labels
Pie: Adding outer border, text position options
2023-03-05 00:33:15 +05:30
Sidharth Vinod
b9576b4bbe Merge branch 'develop' into sidv/fix/1066
* develop:
2023-03-05 00:29:52 +05:30
Sidharth Vinod
f57fed0eb4 Merge branch 'master' into develop
* master:
  v10.0.2
  fix: dayjs import extension
  Setting version to 10.0.1
  #4168 Adding the correct offset for the edges
  Updated import of cytoscape for consistent behavior
  Use cytoscape esm
  Revert "chore: Defer elk loading"
  Revert "Split cytoscape"
  fix: Class with members and styles
2023-03-05 00:29:35 +05:30
Sidharth Vinod
4e344df204 Merge branch 'develop' into sidv/fix/1066
* develop:
  Update bug_report.yml
2023-03-05 00:25:20 +05:30
Sidharth Vinod
43762c4d7f fix(#1066): Return true if parse is success. 2023-03-05 00:22:02 +05:30
ischanx
4d1d1c36de fix(squence): getBBox() returns zero 2023-03-04 00:06:03 +08:00
Sidharth Vinod
e603840395 Update bug_report.yml 2023-03-03 11:55:18 +05:30
Knut Sveidqvist
c7bcd74d56 Merge branch 'release/10.0.2' 2023-03-02 13:47:19 +01:00
Knut Sveidqvist
20298d243a v10.0.2 2023-03-02 13:45:56 +01:00
Ted Marozzi
51c6462f1d feat: expose the diagram api 2023-03-02 19:17:14 +11:00
Sidharth Vinod
6f3077c856 fix: dayjs import extension 2023-03-01 23:16:24 +05:30
Knut Sveidqvist
4a9d96aaba Setting version to 10.0.1 2023-03-01 14:04:03 +01:00
Knut Sveidqvist
4275aa613c Merge pull request #4169 from mermaid-js/4168_elk_diamon_subgraph
Elk layout for flowcharts: Incorrect placement of edges when using diamonds in subgraphs
2023-03-01 13:44:08 +01:00
Knut Sveidqvist
a65fb3b979 #4168 Adding the correct offset for the edges 2023-03-01 13:38:26 +01:00
Knut Sveidqvist
c0dba713c5 Updated import of cytoscape for consistent behavior 2023-03-01 09:29:59 +01:00
Billiam
8810b378b3 fixup! fixup! Move pie outerStrokeWidth to theme variables, update docs 2023-02-28 13:48:50 -06:00
Billiam
c3064f396c fixup! Move pie outerStrokeWidth to theme variables, update docs 2023-02-28 13:44:09 -06:00
Billiam
82f5b4ca39 Move pie outerStrokeWidth to theme variables, update docs 2023-02-28 13:27:09 -06:00
Laura Ceconi
73ce499863 Fix: add require entry in package.json 2023-02-28 18:53:03 +01:00
Sidharth Vinod
1ecf15669a 9.4.2-rc.2 2023-02-28 21:51:31 +05:30
Sidharth Vinod
d24ddca03f chore: Rename diagram-definitions with specific names 2023-02-28 21:49:49 +05:30
Sidharth Vinod
a7847038a5 Use cytoscape esm 2023-02-28 21:45:07 +05:30
Sidharth Vinod
b6db75fe3e Revert "chore: Defer elk loading"
This reverts commit 037504785c.
2023-02-28 21:44:55 +05:30
Sidharth Vinod
2a838e645c Revert "Split cytoscape"
This reverts commit f81f9f7c95.
2023-02-28 21:44:48 +05:30
Sidharth Vinod
807e1f303d Use cytoscape esm 2023-02-28 20:40:56 +05:30
Sidharth Vinod
65f5f9dc45 Revert "chore: Defer elk loading"
This reverts commit 037504785c.
2023-02-28 20:39:06 +05:30
Sidharth Vinod
b8b8c4740a Revert "Split cytoscape"
This reverts commit f81f9f7c95.
2023-02-28 20:31:03 +05:30
Alois Klink
61bf7c577c test(gantt): test daylight savings in ganttdb
Add a quick test that ensures `ganttDb` correctly adds `1d` (1 day),
even on days with 25 hours.

This test only runs if the test PC has the TZ='America/Los_Angeles'
set (California has daylight savings).

I've added a test to the GitHub Actions `test.yml` action too for this.
It should only add about 5 seconds to each test, so it isn't too bad.
2023-02-28 19:54:58 +05:30
Alois Klink
704506835f refactor(deps): replace moment with dayjs
Replace Mermaid's dependency on `moment` with `dayjs`.

[Moment is now in maintenance mode][1], and they don't recommend
using it.

[Dayjs][2] has almost exactly the same API as moment, and is still
curently being maintained. Unlike moment, dayjs objects are immutable,
which makes our life much easier, but we need to do
`a = a.add(1, "day")` instead of just `a.add(1, "day")`.

We can't use `dayjs.duration`, because unlike `moment.duration`,
[dayjs durations always degrade to ms][3].
This causes issues with daylight savings, since it assumes that each
day is 24 hours, when some days have 23/25 hours with daylight savings.
(it also assumes that each month is 30 days).

However, `dayjs.add(1, "d");` correctly adds 1 days, even when that
day is only 23 hours long, so we can use that instead.

[1]: https://momentjs.com/docs/#/-project-status/
[2]: https://day.js.org/
[3]: https://day.js.org/docs/en/durations/durations

Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-02-28 19:54:27 +05:30
Sidharth Vinod
f8f7d94d5a fix: Class with members and styles 2023-02-28 19:34:54 +05:30
Knut Sveidqvist
114ab87816 Merge pull request #4160 from mermaid-js/sidv/fix4157
fix #4157: Inject only fontFamily without replacing themeVariables
2023-02-28 13:38:52 +01:00
Sidharth Vinod
4a6056b558 typo 2023-02-28 18:01:46 +05:30
knsv
3a56af9633 Update docs 2023-02-28 12:24:04 +00:00
Knut Sveidqvist
fda0c8d0a9 Merge branch 'develop' into sidv/fix4157 2023-02-28 13:20:37 +01:00
Knut Sveidqvist
b932cd0930 Merge pull request #4128 from kshitijsaksena/bug/3949_erdiagram_attribute_comment
Added grammar to skip comment in attribute block
2023-02-28 13:14:50 +01:00
Knut Sveidqvist
2f06b41f5f Merge pull request #4142 from mermaid-js/sidv/fixRunAsync
Fix(#4140): Async bug in mermaid.run
2023-02-28 13:12:14 +01:00
Sidharth Vinod
1ab3ed1a1a chore: Add vitest imports 2023-02-28 16:58:41 +05:30
Sidharth Vinod
1981f12976 chore: Fix snapshots 2023-02-28 16:58:04 +05:30
Sidharth Vinod
733967f65a fix #4157: Inject only fontFamily without replacing themeVariables 2023-02-28 16:55:25 +05:30
Sidharth Vinod
56d27d555b Merge branch 'sidv/fixRunAsync' of https://github.com/mermaid-js/mermaid into sidv/fixRunAsync
* 'sidv/fixRunAsync' of https://github.com/mermaid-js/mermaid:
  Update packages/mermaid/src/mermaid.ts
2023-02-28 16:49:02 +05:30
Sidharth Vinod
7cee8cb6dc Merge branch 'develop' into sidv/fixRunAsync
* develop: (23 commits)
  Fix test
  refactor(deps): replace `moment` with `dayjs`
  test(gantt): test daylight savings in ganttdb
  Update .lycheeignore
  chore: dagre-d3-es@7.0.9
  chore: Add tsdoc for registerLazyLoadedDiagrams
  feat: Ensure proper detection for flowcharts
  fix: Class label not visible if class is already defined
  Update import
  fix TS errors
  fix TS errors
  feat: Match timeline section width to tasks
  chore: TimelineRenderer in TS
  Fix types
  fix: Detector order
  Lint
  Cleanup nodes.js
  docs: Update classdiagram docs
  classLabel tests
  Formatting
  ...
2023-02-28 16:48:54 +05:30
Knut Sveidqvist
c91fa192aa Update packages/mermaid/src/mermaid.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-02-28 12:14:35 +01:00
Knut Sveidqvist
3f93edaaf3 Merge pull request #4086 from sidharthv96/sidv/classDiagramLabels
feat: Add support for classDiagram labels
2023-02-28 12:03:22 +01:00
Knut Sveidqvist
0bed5d717b Merge pull request #4126 from mermaid-js/sidv/timelineSectionWidth
💄 section width now covers all tasks - Timeline
2023-02-28 11:59:14 +01:00
Knut Sveidqvist
1b56071eb3 Merge pull request #4124 from mermaid-js/sidv/fixDetectorOrder
fix: Detector order
2023-02-28 11:49:08 +01:00
Sidharth Vinod
e050a5aaa1 Fix test 2023-02-28 15:40:59 +05:30
Sidharth Vinod
9b2f503dc7 Merge branch 'develop' into sidv/classDiagramLabels
* develop:
  refactor(deps): replace `moment` with `dayjs`
  test(gantt): test daylight savings in ganttdb
  Update .lycheeignore
  chore: dagre-d3-es@7.0.9
  Update docs
  Doc (typo): remove duplicate "be"
  💄 section width now covers all tasks
2023-02-28 14:20:11 +05:30
Sidharth Vinod
c7bdc6ad92 Merge pull request #4153 from aloisklink/chore/switch-to-dayjs
Replace `moment-mini`/`moment` date library with `dayjs`
2023-02-28 10:33:21 +05:30
Alois Klink
a5db04b01c refactor(deps): replace moment with dayjs
Replace Mermaid's dependency on `moment` with `dayjs`.

[Moment is now in maintenance mode][1], and they don't recommend
using it.

[Dayjs][2] has almost exactly the same API as moment, and is still
curently being maintained. Unlike moment, dayjs objects are immutable,
which makes our life much easier, but we need to do
`a = a.add(1, "day")` instead of just `a.add(1, "day")`.

We can't use `dayjs.duration`, because unlike `moment.duration`,
[dayjs durations always degrade to ms][3].
This causes issues with daylight savings, since it assumes that each
day is 24 hours, when some days have 23/25 hours with daylight savings.
(it also assumes that each month is 30 days).

However, `dayjs.add(1, "d");` correctly adds 1 days, even when that
day is only 23 hours long, so we can use that instead.

[1]: https://momentjs.com/docs/#/-project-status/
[2]: https://day.js.org/
[3]: https://day.js.org/docs/en/durations/durations
2023-02-26 22:31:12 +00:00
Alois Klink
06640aba06 test(gantt): test daylight savings in ganttdb
Add a quick test that ensures `ganttDb` correctly adds `1d` (1 day),
even on days with 25 hours.

This test only runs if the test PC has the TZ='America/Los_Angeles'
set (California has daylight savings).

I've added a test to the GitHub Actions `test.yml` action too for this.
It should only add about 5 seconds to each test, so it isn't too bad.
2023-02-26 06:43:14 +00:00
Billiam
3bed70a0c5 fixup! fixup! feat(pie): adding outer border, text position options 2023-02-25 15:47:38 -06:00
Billiam
b079fb4710 fixup! feat(pie): adding outer border, text position options 2023-02-25 15:43:16 -06:00
Sidharth Vinod
8b5cb75ef7 Update .lycheeignore 2023-02-25 10:02:07 +05:30
Billiam
a2855931d2 Update packages/mermaid/src/diagrams/pie/pieRenderer.js
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-02-24 22:21:51 -06:00
Sidharth Vinod
50db9dcf8e Merge pull request #4147 from mermaid-js/sidv/dagre-d3-es
chore: dagre-d3-es@7.0.9
2023-02-25 09:37:09 +05:30
Sidharth Vinod
fa8a887ae1 chore: dagre-d3-es@7.0.9 2023-02-25 08:56:18 +05:30
Billiam
6e4e529af2 feat(pie): adding outer border, text position options 2023-02-24 18:56:29 -06:00
Sidharth Vinod
275a54a562 core: Fix render tsdoc
Co-authored-by:  Dmitry Stratiychuk  <dmstrati@microsoft.com>
2023-02-24 23:10:01 +05:30
Sidharth Vinod
1bace23cea Merge branch 'develop' into sidv/fixRunAsync
* develop:
  Update docs
  fix: fix exports
  Doc (typo): remove duplicate "be"
  💄 section width now covers all tasks
2023-02-24 20:54:55 +05:30
Sidharth Vinod
f62c4831ad Merge pull request #4074 from l2fprod/feature/user_journey_expand_section
💄 section width now covers all tasks
2023-02-24 20:00:17 +05:30
Sidharth Vinod
7b4ce7c6ea chore: Add tsdoc for registerLazyLoadedDiagrams
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-02-24 17:32:39 +05:30
Sidharth Vinod
dda0d00fb9 Merge branch 'develop' into sidv/fixDetectorOrder
* develop:
  Update docs
  fix Lint
  Update CHANGELOG.md
  Update CHANGELOG.md
  fix: fix exports
  Doc (typo): remove duplicate "be"
  Fix readme link
  Regenerate mermaid docs
  Add deepdwn to cspell
  Add Deepdwn to native integrations list
2023-02-24 17:27:47 +05:30
Sidharth Vinod
4bf5c9f3d8 feat: Ensure proper detection for flowcharts 2023-02-24 17:27:24 +05:30
sidharthv96
0409c5ac27 Update docs 2023-02-24 08:34:38 +00:00
Sidharth Vinod
19e5ccfdda Merge pull request #4133 from Julez404/patch-1
Doc (typo): remove duplicate "be"
2023-02-24 14:00:20 +05:30
Sidharth Vinod
b13707fa7b fix: Class label not visible if class is already defined 2023-02-24 13:46:56 +05:30
Sidharth Vinod
716a4d2cbc Update import 2023-02-24 13:29:34 +05:30
Sidharth Vinod
3b2d55efec Merge branch 'develop' into sidv/classDiagramLabels
* develop: (85 commits)
  fix Lint
  Update CHANGELOG.md
  Update CHANGELOG.md
  fix: fix exports
  Fix readme link
  Regenerate mermaid docs
  Add deepdwn to cspell
  Add Deepdwn to native integrations list
  docs: Fix changelog
  docs: v10 breaking changes
  Remove `null` from diagrams before render
  fix docs diagram
  Updated version
  Minor cleanup to trigger build.
  Fix spellings
  Wrap option working in test case
  Fix typos
  Minor cleanup
  Removed the deprecated use of mindmap in Demo
  Minor cleanup
  ...
2023-02-24 13:28:28 +05:30
Sidharth Vinod
870550bd7e Merge pull request #4135 from Mister-Hope/develop
fix: fix exports
2023-02-24 12:38:47 +05:30
Sidharth Vinod
89f1ea49ba Merge branch 'develop' into sidv/fixRunAsync
* develop:
  fix Lint
2023-02-24 12:31:48 +05:30
Sidharth Vinod
7372d7d6c5 fix Lint 2023-02-24 12:31:29 +05:30
Sidharth Vinod
0206ff540a fix(#4140): Deprecate mermaidAPI.render 2023-02-24 12:20:31 +05:30
Sidharth Vinod
1e5d9ae1f4 fix(#4140): Remove direct usage of mermaidAPI.render 2023-02-24 12:15:55 +05:30
Sidharth Vinod
378e6b59e6 Merge branch 'master' into develop
* master:
  Update CHANGELOG.md
  Update CHANGELOG.md
2023-02-23 13:19:11 +05:30
Sidharth Vinod
8910ecb463 Update CHANGELOG.md 2023-02-23 13:18:49 +05:30
Sidharth Vinod
ca97210d67 Update CHANGELOG.md 2023-02-23 13:13:36 +05:30
Mr.Hope
f8abc9c6d5 fix: fix exports
"types" import should always be first
2023-02-23 15:20:17 +08:00
Yoshi404
ef20e0b77a Doc (typo): remove duplicate "be" 2023-02-22 22:34:30 +01:00
Sidharth Vinod
f3b313ec1d Merge branch 'master' into develop
* master:
  Fix readme link
2023-02-22 12:34:11 +05:30
Sidharth Vinod
8f830a1698 Fix readme link 2023-02-22 12:33:50 +05:30
Sidharth Vinod
6a6b200a04 Merge pull request #4127 from Billiam/patch-1
Adding app (Deepdwn) to integrations list
2023-02-22 11:41:20 +05:30
Billiam
15231924cd Regenerate mermaid docs 2023-02-21 21:50:02 -06:00
Billiam
7d4692f7b2 Add deepdwn to cspell 2023-02-21 21:24:39 -06:00
Kshitij
285a7448ae Added grammar to skipcomment in attribute block 2023-02-22 08:36:44 +05:30
Billiam
fd6ce89933 Add Deepdwn to native integrations list 2023-02-21 20:56:26 -06:00
Sidharth Vinod
c8e351c2bb fix TS errors 2023-02-22 02:15:15 +05:30
Sidharth Vinod
a59904cf16 fix TS errors 2023-02-22 02:14:16 +05:30
Sidharth Vinod
df36968ec8 feat: Match timeline section width to tasks 2023-02-22 02:10:35 +05:30
Sidharth Vinod
2ab1e15b86 chore: TimelineRenderer in TS 2023-02-22 02:09:14 +05:30
Sidharth Vinod
eca4163363 Fix types 2023-02-21 23:24:11 +05:30
Sidharth Vinod
1ac219282b fix: Detector order 2023-02-21 23:00:03 +05:30
Sidharth Vinod
0df8c149f9 Merge branch 'master' into develop
* master:
  docs: Fix changelog
  docs: v10 breaking changes
  Remove `null` from diagrams before render
  fix docs diagram
2023-02-21 21:40:29 +05:30
Sidharth Vinod
bdf2667389 docs: Fix changelog 2023-02-21 21:40:06 +05:30
Sidharth Vinod
b868777184 docs: v10 breaking changes 2023-02-21 21:35:54 +05:30
Sidharth Vinod
fe2ef5e0c6 Remove null from diagrams before render 2023-02-21 16:33:42 +05:30
Sidharth Vinod
ac21fe2d5c fix docs diagram 2023-02-21 16:25:18 +05:30
Per Brolin
6b251de227 Merge branch 'master' into develop 2023-02-21 10:29:21 +01:00
Per Brolin
bb56492afe Merge remote-tracking branch 'origin/master' 2023-02-21 10:27:50 +01:00
Per Brolin
2a9e846a49 Merge branch 'release/10.0.0' 2023-02-21 10:27:12 +01:00
Per Brolin
3b25cd3238 Updated version 2023-02-21 10:25:02 +01:00
Sidharth Vinod
4bc997cb8f Minor cleanup to trigger build. 2023-02-21 13:29:43 +05:30
Sidharth Vinod
555d4f2cdc Fix spellings 2023-02-21 13:27:37 +05:30
Sidharth Vinod
75633ba125 Merge pull request #4118 from fkohrt/patch-1
Fix typos
2023-02-21 13:24:54 +05:30
Per Brolin
ec5fa31a11 Wrap option working in test case 2023-02-21 07:00:51 +01:00
Florian Kohrt
bfb8a75fca Fix typos 2023-02-20 22:06:38 +01:00
Sidharth Vinod
067b6adc20 fix(E2E): Add cors package 2023-02-20 21:23:06 +05:30
Sidharth Vinod
a8162634cd fix Server 2023-02-20 21:18:54 +05:30
Sidharth Vinod
14c15b221a Minor cleanup
Co-authored-by: Per Brolin <per@mermaidchart.com>
2023-02-20 19:28:31 +05:30
Per Brolin
8743e9e30e Removed the deprecated use of mindmap in Demo 2023-02-20 14:50:04 +01:00
pbrolin47
22b18a4320 Merge pull request #4113 from mermaid-js/3192_invisible_edges
Adding the ability to use invisible edges
2023-02-20 14:40:43 +01:00
pbrolin47
786023ffa6 Merge pull request #4110 from mermaid-js/sidv/splitDiagrams
splitDiagrams
2023-02-20 13:54:27 +01:00
Sidharth Vinod
6ded32880d Fix lockfile 2023-02-20 18:24:24 +05:30
Sidharth Vinod
68cdc759a7 Minor cleanup
Co-authored-by: Per Brolin <per@mermaidchart.com>
2023-02-20 17:53:07 +05:30
knsv
eb04d80df0 Update docs 2023-02-20 10:23:13 +00:00
Knut Sveidqvist
b6cac3a431 #3192 Adding docs and visual test 2023-02-20 11:19:23 +01:00
Knut Sveidqvist
3a71618a49 #3192 Adding the ability to create invisible links in flowcharts(v2) 2023-02-20 11:08:25 +01:00
Per Brolin
dde8330888 Merge remote-tracking branch 'origin/develop' into develop 2023-02-20 09:47:39 +01:00
Sidharth Vinod
38b2cbc3d1 chore: Update RunOptions docs
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-02-20 13:10:54 +05:30
Sidharth Vinod
2272af38b9 Merge branch 'release/10.0.0' into sidv/splitDiagrams
* release/10.0.0:
  Cleanup
2023-02-20 01:32:12 +05:30
Sidharth Vinod
40b5f868de Cleanup 2023-02-20 01:19:07 +05:30
Sidharth Vinod
3e480612c7 Merge branch 'release/10.0.0' into sidv/splitDiagrams
* release/10.0.0:
  Skip elk
2023-02-20 00:36:33 +05:30
Sidharth Vinod
4c7306d808 Skip elk 2023-02-20 00:36:13 +05:30
Sidharth Vinod
f66b524585 Merge branch 'release/10.0.0' into sidv/splitDiagrams
* release/10.0.0:
  Skip all elk tests as it's flaky
2023-02-20 00:31:13 +05:30
Sidharth Vinod
5de5598069 Skip all elk tests as it's flaky 2023-02-20 00:30:27 +05:30
Sidharth Vinod
c9c4320f89 fix unit tests 2023-02-20 00:14:39 +05:30
Sidharth Vinod
543e4de0c8 chore: Remove lazyLoadedDiagrams from config 2023-02-19 23:55:22 +05:30
Sidharth Vinod
8174c7ca16 Cleanup 2023-02-19 22:42:26 +05:30
Sidharth Vinod
014ab85420 Cleanup 2023-02-19 22:41:44 +05:30
sidharthv96
e51817b735 Update docs 2023-02-19 16:46:20 +00:00
Sidharth Vinod
c7d9103ede Merge pull request #4107 from rodja/develop
add links to NiceGUI integration
2023-02-19 22:12:43 +05:30
sidharthv96
92cd5ed133 Update docs 2023-02-19 15:06:09 +00:00
Sidharth Vinod
6fb17bb405 Merge pull request #4105 from Oliboy50/patch-1
docs(flowchart): duplicated hexagon node example
2023-02-19 20:32:43 +05:30
Sidharth Vinod
638362baea Merge branch 'release/10.0.0' into sidv/splitDiagrams
* release/10.0.0: (333 commits)
  10.0.0-rc.3
  Export more types
  no side effects
  10.0.0-rc.2
  skip failing elk test
  Cleanup
  Update docs
  fix(#3406, #3394): Remove init & initThrowsErrors
  chore: Rename lazy loaded diagram definitions
  Skip flowchart-elk failing test
  Fix docs
  fix Server
  Fix lint
  Remove Readme
  Fix E2E Tests
  Fix tests
  feat: Break render and parse types
  chore: Remove all non async render/parse/init
  Remove CJS builds from docs
  chore: Remove cjs from build
  ...
2023-02-19 20:18:26 +05:30
Sidharth Vinod
e22171c5bc 10.0.0-rc.3 2023-02-19 20:07:07 +05:30
Sidharth Vinod
77207e0452 Export more types 2023-02-19 20:04:46 +05:30
Sidharth Vinod
4a721a2d25 no side effects 2023-02-19 18:59:08 +05:30
Sidharth Vinod
db8a14cdaf 10.0.0-rc.2 2023-02-19 18:36:04 +05:30
Sidharth Vinod
1691d48b2e skip failing elk test 2023-02-19 18:26:13 +05:30
Sidharth Vinod
8469e72709 Cleanup 2023-02-19 17:33:46 +05:30
sidharthv96
83f3ceb7f5 Update docs 2023-02-19 10:43:49 +00:00
Sidharth Vinod
4ea7294eeb fix(#3406, #3394): Remove init & initThrowsErrors
New run function added as replacement.
2023-02-19 16:10:08 +05:30
Sidharth Vinod
57fd3e586a chore: Rename lazy loaded diagram definitions 2023-02-19 14:58:55 +05:30
Sidharth Vinod
8363552c3a Skip flowchart-elk failing test 2023-02-19 14:52:08 +05:30
Sidharth Vinod
8c64a90721 Fix docs 2023-02-19 14:21:15 +05:30
Sidharth Vinod
6e3d96e16d fix Server 2023-02-19 14:18:09 +05:30
Sidharth Vinod
1684faf632 Fix lint 2023-02-19 14:15:50 +05:30
Sidharth Vinod
e6b4e2c084 Remove Readme 2023-02-19 14:13:57 +05:30
Sidharth Vinod
03419c691c Remove Readme 2023-02-19 14:13:47 +05:30
Sidharth Vinod
6aa3ea43ae Remove Readme 2023-02-19 14:13:30 +05:30
Sidharth Vinod
735aceb37a Fix E2E Tests 2023-02-19 14:03:11 +05:30
Sidharth Vinod
d2927435ab Fix tests 2023-02-19 13:09:31 +05:30
Sidharth Vinod
eaa84d2d91 feat: Break render and parse types
Both render and parse are async now.
Return type of render contains svg and bindFunctions.
Parse will not throw error if parseOptions.silent is passed.
2023-02-19 13:08:13 +05:30
Rodja Trappe
941b959da3 add links to NiceGUI integration 2023-02-19 05:40:45 +01:00
Oliver THEBAULT
ae36586b58 docs(flowchart): duplicated hexagon node example 2023-02-18 22:29:35 +01:00
Sidharth Vinod
d22e8d92c6 chore: Remove all non async render/parse/init 2023-02-19 01:10:15 +05:30
Sidharth Vinod
45adc5fb6b Remove CJS builds from docs 2023-02-19 00:58:36 +05:30
Sidharth Vinod
c1aad5975c Merge branch 'release/9.4.2' into release/10.0.0
* release/9.4.2:
  RC version
  Revert #4034
  Revert #4034
  fix: Vite, D3, Vitest Types
  fix(api): tree shaking package.json import
2023-02-19 00:55:23 +05:30
Sidharth Vinod
0c18c0309b Enable blank issues 2023-02-19 00:37:41 +05:30
Sidharth Vinod
631ff8fb9e chore: Remove cjs from build 2023-02-19 00:37:11 +05:30
Sidharth Vinod
31629fe93f Merge pull request #4101 from AielloChan/develop
fix(api): tree shaking package.json import
2023-02-19 00:06:23 +05:30
Sidharth Vinod
735faa83e9 Merge branch 'release/9.4.2' into pr/AielloChan/4101
* release/9.4.2:
  RC version
  Revert #4034
  Revert #4034
  fix: Vite, D3, Vitest Types
2023-02-19 00:05:53 +05:30
Sidharth Vinod
2c062d648a Merge branch 'develop' into release/9.4.2
* develop:
  Add highlight tag info in contributing.md
  chore(deps): update dependency cypress to v12
  docs: fix links
  Fix types
  chore(deps): update dependency vite to v4
2023-02-19 00:04:44 +05:30
Sidharth Vinod
ea8128e881 RC version 2023-02-18 23:48:09 +05:30
Sidharth Vinod
bd98f1477f Revert #4034 2023-02-18 23:46:11 +05:30
Sidharth Vinod
0f36bbf3e1 Revert #4034 2023-02-18 23:45:45 +05:30
Sidharth Vinod
3c4a6a19bb fix: Vite, D3, Vitest Types 2023-02-18 22:35:14 +05:30
Aiello
e31924eadc fix(api): tree shaking package.json import
Manually tree shaking import statement of package.json
2023-02-18 23:21:20 +08:00
Sidharth Vinod
bb8bd111f8 Merge branch 'develop' into sidv/classDiagramLabels
* develop: (39 commits)
  Add highlight tag info in contributing.md
  chore(deps): update dependency cypress to v12
  docs: fix links
  Skip precommit hooks on CI
  Fix release-publish
  Fix timeline and mindmap
  Updating integration instructions for timeline and mindmap
  Remove node heap
  Revert "chore: Set node heap size"
  Revert "Remove text hint"
  Split cytoscape
  Linear build
  Remove text hint
  Fix elk import
  Dynamic elk import
  Remove heap option
  elk web-worker
  Test publish docs
  chore: Add file extension for dynamic import
  chore: Defer elk loading
  ...
2023-02-16 18:06:41 +05:30
Sidharth Vinod
fec193ebaf Merge pull request #4068 from mermaid-js/renovate/cypress-12.x
chore(deps): update dependency cypress to v12
2023-02-16 18:05:24 +05:30
Sidharth Vinod
4ed6ec1a4d Add highlight tag info in contributing.md 2023-02-16 18:00:41 +05:30
renovate[bot]
ccaa99937f chore(deps): update dependency cypress to v12 2023-02-16 12:27:04 +00:00
Sidharth Vinod
17238c0326 Merge branch 'master' into develop
* master: (24 commits)
  docs: fix links
  Skip precommit hooks on CI
  Fix release-publish
  Fix timeline and mindmap
  Updating integration instructions for timeline and mindmap
  Remove node heap
  Revert "chore: Set node heap size"
  Revert "Remove text hint"
  Split cytoscape
  Linear build
  Remove text hint
  Fix elk import
  Dynamic elk import
  Remove heap option
  elk web-worker
  Test publish docs
  chore: Add file extension for dynamic import
  chore: Defer elk loading
  Update vitepress
  Fix links to integrations.md
  ...
2023-02-16 17:52:07 +05:30
Sidharth Vinod
ac231949f0 Merge pull request #4071 from mermaid-js/renovate/vite-4.x
chore(deps): update dependency vite to v4
2023-02-16 17:50:08 +05:30
Sidharth Vinod
d543bc0411 docs: fix links 2023-02-16 17:27:51 +05:30
Knut Sveidqvist
23ed533fac Merge pull request #4095 from mermaid-js/release/9.4.1
Release 9.4.1
2023-02-16 12:47:51 +01:00
Sidharth Vinod
86cfb1bb60 Skip precommit hooks on CI 2023-02-16 17:09:02 +05:30
Sidharth Vinod
b10d243995 Fix release-publish 2023-02-16 17:07:03 +05:30
Sidharth Vinod
b22978dfb2 Fix timeline and mindmap 2023-02-16 16:52:15 +05:30
Knut Sveidqvist
276f042983 Merge branch 'release/9.4.1' of github.com:mermaid-js/mermaid into release/9.4.1 2023-02-16 12:05:51 +01:00
Knut Sveidqvist
71e4f1152b Updating integration instructions for timeline and mindmap 2023-02-16 12:05:38 +01:00
Sidharth Vinod
0a923dfe91 Remove node heap 2023-02-16 16:28:09 +05:30
Sidharth Vinod
743c636441 Revert "chore: Set node heap size"
This reverts commit 8df965bd60.
2023-02-16 16:10:20 +05:30
Sidharth Vinod
8c7043ffaf Revert "Remove text hint"
This reverts commit ec6ef35d21.
2023-02-16 15:27:43 +05:30
Sidharth Vinod
f81f9f7c95 Split cytoscape 2023-02-16 15:21:45 +05:30
Sidharth Vinod
ea7aaa5d56 Linear build 2023-02-16 15:09:22 +05:30
Sidharth Vinod
ec6ef35d21 Remove text hint 2023-02-16 15:07:55 +05:30
Sidharth Vinod
c815c84e1c Fix elk import 2023-02-16 15:00:35 +05:30
Sidharth Vinod
b8315cec6c Dynamic elk import 2023-02-16 14:42:47 +05:30
Sidharth Vinod
76fdc00b06 Remove heap option 2023-02-16 14:41:22 +05:30
Sidharth Vinod
83797eef38 elk web-worker 2023-02-16 14:21:33 +05:30
Sidharth Vinod
0db2657b7b Test publish docs 2023-02-16 13:05:53 +05:30
Sidharth Vinod
a1a252cc29 Merge branch 'master' into release/9.4.1
* master:
  Update vitepress
  Fix links to integrations.md
  chore: Set node heap size
2023-02-16 13:01:10 +05:30
Sidharth Vinod
533bd7da3c chore: Add file extension for dynamic import 2023-02-16 12:56:32 +05:30
Sidharth Vinod
037504785c chore: Defer elk loading 2023-02-16 12:47:28 +05:30
Sidharth Vinod
62f7fb082e Update vitepress 2023-02-16 12:47:00 +05:30
Sidharth Vinod
b89b90dbb9 Fix links to integrations.md 2023-02-16 12:35:43 +05:30
Sidharth Vinod
e9cc9f4005 chore: Set node heap size 2023-02-16 12:26:27 +05:30
Sidharth Vinod
8df965bd60 chore: Set node heap size 2023-02-16 12:21:24 +05:30
Sidharth Vinod
2b3019fb94 Set node heap size 2023-02-16 12:16:00 +05:30
Sidharth Vinod
31afd7499b chore: Linear build 2023-02-16 12:05:41 +05:30
Knut Sveidqvist
25da0c6c8e Merge branch 'master' into develop 2023-02-15 16:31:44 +01:00
Per Brolin
aad147c219 Merge branch 'master' into develop 2023-02-15 16:21:17 +01:00
Per Brolin
98bec36f81 Merge branch 'release/9.4.0' 2023-02-15 16:20:22 +01:00
Per Brolin
97614b8af5 Updated to 9.4.0 2023-02-15 15:54:02 +01:00
Knut Sveidqvist
343e48302e Fix for direction issue with elk rendering 2023-02-15 15:12:52 +01:00
Per Brolin
aef989fe03 Corrected sequenceRenderer 2023-02-15 15:11:23 +01:00
Per Brolin
0c38f20281 Clearing sequence diagram before rendering 2023-02-15 14:17:46 +01:00
Knut Sveidqvist
eed427b4ac Adding simple direction logic 2023-02-15 14:10:38 +01:00
Knut Sveidqvist
027296df68 Working version before applying direction logic 2023-02-15 13:54:33 +01:00
Sidharth Vinod
10e6c92766 Lint 2023-02-14 10:56:16 +05:30
Sidharth Vinod
e1710fddd9 Cleanup nodes.js 2023-02-14 10:22:17 +05:30
Sidharth Vinod
bcfefefbd4 docs: Update classdiagram docs 2023-02-14 00:56:40 +05:30
Sidharth Vinod
ef4fbd8bb3 classLabel tests 2023-02-14 00:54:42 +05:30
Sidharth Vinod
17e317385a Formatting 2023-02-14 00:37:17 +05:30
Sidharth Vinod
102900749e Add support for classDiagram labels 2023-02-14 00:36:43 +05:30
Sidharth Vinod
46f2aebabc Cleanup Renderer 2023-02-13 22:48:11 +05:30
Sidharth Vinod
b9c2f62b47 Cleanup classDB 2023-02-13 21:31:43 +05:30
Sidharth Vinod
9d75665460 Fix links to integrations.md 2023-02-13 10:55:24 +05:30
Sidharth Vinod
6fcba87ee8 Merge pull request #4076 from mermaid-js/sidv/readmeLogo
Add logo to readme
2023-02-13 10:49:56 +05:30
Per Brolin
a956be7bbf Release candidate 2023-02-10 11:03:25 +01:00
Per Brolin
e0286be8d2 Corrected typo 2023-02-10 08:58:58 +01:00
Sidharth Vinod
3e9978a58c docs: Add CDN to top links, remove changelog
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-02-10 12:31:14 +05:30
Sidharth Vinod
fd8fb96ec2 chore: Copy readme before publishing 2023-02-10 12:14:58 +05:30
Sidharth Vinod
ad6a43cf81 Add logo to readme 2023-02-09 12:46:05 +05:30
Sidharth Vinod
f6d9868e35 chore: Lint fix 2023-02-09 11:34:20 +05:30
Sidharth Vinod
94d4ee3a2c Merge pull request #4015 from JeffTrain/develop
docs: minor fix on markdown
2023-02-09 11:33:28 +05:30
Sidharth Vinod
004432fae9 Fix types 2023-02-09 11:28:27 +05:30
renovate[bot]
08ac41113f chore(deps): update dependency vite to v4 2023-02-09 05:54:04 +00:00
Sidharth Vinod
e9d2d084fd Merge pull request #4066 from mermaid-js/renovate/actions-dependency-review-action-3.x
chore(deps): update actions/dependency-review-action action to v3
2023-02-09 11:14:27 +05:30
renovate[bot]
34c98717d5 chore(deps): update actions/dependency-review-action action to v3 2023-02-09 05:44:09 +00:00
Sidharth Vinod
f22ce38ada Merge pull request #4065 from mermaid-js/renovate/actions-configure-pages-3.x
chore(deps): update actions/configure-pages action to v3
2023-02-09 11:13:54 +05:30
Sidharth Vinod
8ba33a994c Merge pull request #4072 from mermaid-js/renovate/timonvs-pr-labeler-action-4.x
chore(deps): update timonvs/pr-labeler-action action to v4
2023-02-09 11:13:15 +05:30
Sidharth Vinod
07764348eb Merge pull request #4069 from mermaid-js/renovate/jsdom-21.x
chore(deps): update dependency jsdom to v21
2023-02-09 11:13:03 +05:30
Sidharth Vinod
803c8ca45b Merge pull request #4070 from mermaid-js/renovate/rimraf-4.x
chore(deps): update dependency rimraf to v4
2023-02-09 11:12:51 +05:30
Frederic Lavigne
f791cd2b24 💄 section width now covers all tasks 2023-02-08 22:02:19 -06:00
Sidharth Vinod
b69b3919bb Merge pull request #4073 from aloisklink/chore/cache-eslint-in-lint-fix
build(lint:fix): cache eslint in pnpm run lint:fix
2023-02-09 08:27:16 +05:30
renovate[bot]
886d1c15c4 chore(deps): update timonvs/pr-labeler-action action to v4 2023-02-09 00:51:38 +00:00
renovate[bot]
72e8b7fb38 chore(deps): update dependency rimraf to v4 2023-02-09 00:49:20 +00:00
renovate[bot]
3a89cc7993 chore(deps): update dependency jsdom to v21 2023-02-09 00:47:08 +00:00
renovate[bot]
bb3a48c91a chore(deps): update actions/configure-pages action to v3 2023-02-09 00:42:44 +00:00
renovate[bot]
d45eda1c60 chore(deps): update dependency @types/uuid to v9 2023-02-09 00:41:24 +00:00
Alois Klink
4d12fb0464 build(lint:fix): cache eslint in pnpm run lint:fix
Cache eslint in `pnpm run lint:fix`.

This was added to the `pnpm run lint` script in
b7f9495 (build: add eslint --cache file, 2022-08-27), but we
didn't add it to `pnpm run lint:fix` due to worries about cache
invalidation.

However, we switched to using `--cache-strategy content` in
b3e509b7 (build(lint): cache eslint with strategy content, 2023-02-05),
which should avoid any caching issues.

Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-02-09 00:21:19 +00:00
Sidharth Vinod
08e7bbcc13 Merge pull request #4044 from mermaid-js/renovate/all-minor-patch
chore(deps): update all non-major dependencies (minor)
2023-02-09 01:36:46 +05:30
Sidharth Vinod
f83f09d8b0 Fix vitest type 2023-02-09 01:29:41 +05:30
renovate[bot]
c4eb1608b0 chore(deps): update all non-major dependencies 2023-02-08 19:30:57 +00:00
Knut Sveidqvist
74df4a7a68 Mind map coming in from the cold. A lazy loaded diagram in the same way as timeline. 2023-02-08 17:42:58 +01:00
Knut Sveidqvist
38a84a7fe0 Merge branch 'develop' into release/9.4.0 2023-02-08 14:00:02 +01:00
Knut Sveidqvist
5e864c3b9b Merge branch 'timeline' into release/9.4.0 2023-02-08 13:58:56 +01:00
Knut Sveidqvist
b5a4cc0e17 Merge pull request #4014 from mermaid-js/timeline
Timeline Diagram
2023-02-08 13:57:36 +01:00
Knut Sveidqvist
82f7e1b754 Version updates 2023-02-08 13:50:58 +01:00
Knut Sveidqvist
580903051f Fixing broken test 2023-02-08 13:40:41 +01:00
Knut Sveidqvist
ce037a84ca Fixing build after last batch of changes 2023-02-08 13:16:33 +01:00
Sidharth Vinod
7f254e37e9 Cleanup 2023-02-08 16:01:29 +05:30
Sidharth Vinod
d562a81019 Merge branch 'develop' into timeline
* develop: (45 commits)
  Showcase section to the docs - keepings docs up to date (#4055)
  bugfix: add missing d3 curves to flowchart and docs
  fix(deps): update dependency dagre-d3-es to v7.0.8
  build(pre-commit): cache eslint in pre-commit
  build(lint): cache eslint with strategy content
  Update cypress/integration/rendering/sequencediagram.spec.js
  feat(er): allow leading underscore for attributes name
  ci(lint): show nice error on lint failure
  chore: add moment to dependencies
  Update docs
  Update mindmap.md
  chore: remove moment-mini
  docs(readme-ch): fix twitter link
  build(lint): cache prettier on `pnpm run lint`
  fix: moment-mini default exporter
  docs(readme): update broken twitter badge
  test(er): improve tests on multiple key constraints
  Fixes Typo, remove console.log
  doc(er): add documentation on multiple key constraints
  feat(er): allow multiple constraints on attributes
  ...
2023-02-08 15:57:09 +05:30
Knut Sveidqvist
6a045db83c Fix for e2e issue with mindmap tests, not related to timeline 2023-02-08 11:24:09 +01:00
Sidharth Vinod
563896400b Merge pull request #4057 from aloisklink/chore/cache-eslint-in-pre-commit
Cache `eslint` in pre-commit script (makes `git commit` 5x faster)
2023-02-08 00:14:37 +05:30
Omer Rosenbaum
73ee9e9a92 Showcase section to the docs - keepings docs up to date (#4055)
* Add a Showcase section to the docs with Swimm

* Build docs

* Move FAQ to Config

* Create showcases page

* Build docs

* Prettier

* feat: Redirect old docs URLs

---------

Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-02-07 23:15:48 +05:30
Sidharth Vinod
923ddc8309 Merge pull request #4038 from natasha-jarus/bug/missing-flowchart-curves
bugfix: add missing d3 curves to flowchart and docs
2023-02-07 14:00:53 +05:30
Sidharth Vinod
64096b22dc Merge pull request #3965 from oleveau/feature/AddBoxForSeqDiagrams
Add Box support in Sequence Diagrams
2023-02-07 13:58:32 +05:30
Natasha Jarus
84d563584f bugfix: add missing d3 curves to flowchart and docs 2023-02-06 13:28:40 -08:00
renovate[bot]
ac67794fb2 fix(deps): update dependency dagre-d3-es to v7.0.8 2023-02-06 01:07:08 +00:00
Alois Klink
98b2148352 build(pre-commit): cache eslint in pre-commit
Run eslint with `--cache` to speed up pre-commit scripts.

This was added to the `pnpm run lint` script in
b7f9495a (build: add eslint --cache file, 2022-08-27)
and doesn't seem to be causing any issues.

I haven't enabled `--cache` for `prettier` since as of prettier 2.8.0,
their cache invalidation doesn't yet work with prettier plugins.
2023-02-05 19:33:30 +00:00
Alois Klink
b3e509b7d4 build(lint): cache eslint with strategy content
Cache eslint using `--cache-strategy content` instead of the default
`--cache-strategy metadata`.

By default, `eslint` uses the file metadata (e.g. modification time)
to detect when the cache should be invalidated.

However, this is not efficient with `git`, since git constantly changes
the modification time,
e.g. running `git switch main && git switch original-branch` would not
change the file contents, but would change the file mtimes and force
eslint to re-lint everything.

Using the file contents is slower (~3% for me), but more resilient.

See
https://eslint.org/docs/latest/use/command-line-interface#--cache-strategy
2023-02-05 19:33:30 +00:00
Sidharth Vinod
8d6d90021a Update cypress/integration/rendering/sequencediagram.spec.js 2023-02-05 11:54:56 +05:30
Sidharth Vinod
71e5a53172 Merge pull request #4034 from emersonbottero/develop
fix: moment-mini default exporter
2023-02-05 11:48:56 +05:30
Sidharth Vinod
a75cacd4a4 Merge pull request #4033 from tomperr/feature/4031_er_leading_underscore_attribute_name
feat(er): allow leading underscore for attributes name
2023-01-30 18:56:15 +05:30
Tom PERRILLAT-COLLOMB
c2ec63d4fd feat(er): allow leading underscore for attributes name 2023-01-30 12:34:06 +01:00
Sidharth Vinod
7ecaaaf46f Merge pull request #4035 from aloisklink/chore/cache-prettier
build(lint): cache prettier on `pnpm run lint`
2023-01-30 10:55:50 +05:30
Alois Klink
4900647bf0 ci(lint): show nice error on lint failure
Prints a nice error on GitHub Actions if `pnpm run lint` fails.
2023-01-29 20:27:31 +00:00
Emerson Bottero
df10d64989 chore: add moment to dependencies 2023-01-29 11:24:48 -03:00
sidharthv96
b9bed14cda Update docs 2023-01-28 19:46:10 +00:00
Sidharth Vinod
cd007cabb5 Merge pull request #4042 from GavinPen/patch-1
Update mindmap.md
2023-01-29 01:12:30 +05:30
GavinPen
cb1a20264d Update mindmap.md
Minor Improvement to wording
2023-01-28 17:42:30 +00:00
Emerson Bottero
7179f1bcba chore: remove moment-mini 2023-01-26 20:55:57 -03:00
Alois Klink
b35e4a8c52 Merge pull request #4032 from LeoDog896/patch-1
docs(readme): update broken twitter badge
2023-01-26 17:28:02 +00:00
Tristan F
a89cb9f0d6 docs(readme-ch): fix twitter link 2023-01-26 12:07:44 -05:00
Alois Klink
8b4426aebf build(lint): cache prettier on pnpm run lint
[Prettier 2.7.0](https://prettier.io/blog/2022/06/14/2.7.0.html) added
a `--cache` CLI option to greatly speed up subsequent prettier runs.

By default, the cache is stored in
`./node_modules/.cache/prettier/.prettier-cache` and uses an `md5`
checksum of the contents as the cache-key.

On my PC, running `pnpm run lint` used to take 13.9 seconds, but now
it only takes 6 seconds.

Potential issues
----------------

Although updating Node.JS/Prettier will invalidate the cache,
updating or changing prettier plugins won't invalidate the cache.

Since we do use `prettier-plugin-jsdoc` in Mermaid, this might cause
a minor issue, but CI should catch it.
2023-01-26 16:31:40 +00:00
ashishjain0512
003997372e Update docs 2023-01-26 11:48:25 +00:00
ashishj
61f33567ae Making timeline diagram lazy-loaded internal, removing separate package 2023-01-26 10:29:35 +01:00
Olivier Leveau
9fb6f1998f Merge branch 'develop' into feature/AddBoxForSeqDiagrams 2023-01-26 09:14:18 +01:00
Emerson Bottero
19e3624e89 fix: moment-mini default exporter 2023-01-26 01:23:41 -03:00
Tristan F
be332cfdef docs(readme): update broken twitter badge
(From https://github.com/badges/shields/issues/8837):

The Twitter API has changed in recent days by closing support for 3rd party apps, breaking the Twitter follow count badge.
2023-01-25 15:34:24 -05:00
Sidharth Vinod
c51f6df82c Merge pull request #4030 from tomperr/feature/4009_er_multiple_constraints
feat(er): add multiple key constraints
2023-01-26 00:16:58 +05:30
Tom PERRILLAT-COLLOMB
dc0a46f742 test(er): improve tests on multiple key constraints 2023-01-25 19:40:40 +01:00
Sidharth Vinod
c76728b423 Merge pull request #3902 from weedySeaDragon/bug/3858_state_named_state_container
Bug/3858 [state] trailing whitespace in ids for named state container
2023-01-25 22:51:34 +05:30
Sidharth Vinod
0aa7da261f Merge pull request #3962 from aloisklink/build/add-autogenerated-header-after-yaml-codeblocks
Add support for YAML frontmatter in Markdown docs (used for Vitepress config)
2023-01-25 22:50:20 +05:30
ashishjain0512
5e6aac4377 Update docs 2023-01-25 17:06:30 +00:00
ashishj
52bd5181f9 More Lint Fixes 2023-01-25 18:03:04 +01:00
ashishj
49ce5222c9 Lint Fixes 2023-01-25 17:49:35 +01:00
ashishj
df1e9c4117 Added rendering test cases 2023-01-25 17:46:23 +01:00
ashishj
5c14df0aeb Added jest test cases 2023-01-25 17:45:47 +01:00
ashishj
8af5c4c341 Fix parser grammer conflicts 2023-01-25 17:44:34 +01:00
Olivier Leveau
f7756ccc00 Fixes Typo, remove console.log 2023-01-25 17:02:10 +01:00
Tom PERRILLAT-COLLOMB
3066a4b43a doc(er): add documentation on multiple key constraints 2023-01-25 15:13:58 +01:00
Tom PERRILLAT-COLLOMB
26e9b1790b feat(er): allow multiple constraints on attributes
little changes in grammar to get a list of constraints (PK, FK or UK), so little changes in renderer to handle this list
2023-01-24 21:20:11 +01:00
Sidharth Vinod
c256a6b887 Merge pull request #4024 from mermaid-js/renovate/patch-all-minor-patch
chore(deps): update pnpm to v7.25.1
2023-01-24 17:06:06 +05:30
Knut Sveidqvist
bd1449a0d3 Merge pull request #4004 from mermaid-js/sidv/fixUnhandledPromise
fix(#4003): Remove unhandled promises
2023-01-24 11:58:25 +01:00
renovate[bot]
c9833dcd79 chore(deps): update pnpm to v7.25.1 2023-01-24 10:43:54 +00:00
Sidharth Vinod
6792bb94b7 chore: Use logger 2023-01-24 16:11:04 +05:30
Sidharth Vinod
b36e5d0d3b fix: Remove unnecessary void's.
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-01-24 16:08:43 +05:30
Sidharth Vinod
ead4037963 chore: Enable 57-elk test 2023-01-24 16:00:59 +05:30
Sidharth Vinod
a28f6bf80c Merge branch 'develop' into sidv/fixUnhandledPromise
* develop:
  chore: Skip 57-elk test
  Update docs
  Update integrations.md
2023-01-24 16:00:35 +05:30
Sidharth Vinod
fb6ba231d0 chore: Skip 57-elk test 2023-01-24 15:59:37 +05:30
sidharthv96
e4491136c3 Update docs 2023-01-24 07:02:14 +00:00
Sidharth Vinod
e7451e7a4e Merge pull request #4011 from Barry1/patch-1
Update integrations.md
2023-01-24 12:29:04 +05:30
Alois Klink
816f2f512e build(docs): hide YAML when building for GitHub
YAML front-matter is currently only used for Vitepress.

Because of that, to avoid confusion, we can remove this YAML
front-matter when converting the Markdown in packages/mermaid/src/docs
to go into the `docs/` folder for GitHub browsing.
2023-01-22 19:23:57 +00:00
Alois Klink
76c3716b2d docs: add vitepress metadata to flowchart docs
Changes the title in Vitepress, as well as using `outline: "deep"`
for a better outline/table-of-contents for the page.

See https://vitepress.vuejs.org/config/theme-configs#outline
for docs on what `outline: "deep"` does.
2023-01-22 19:21:53 +00:00
Alois Klink
2f1a521db6 build(docs): add auto-generated header after YAML
Add the auto-generated header after any YAML front-matter blocks.

YAML front-matter is normally only valid in Markdown when it's at the
beginning of the Markdown file. GitHub/Vitepress may otherwise render
it incorrectly.
2023-01-22 19:21:53 +00:00
Alois Klink
8f4caa4537 refactor(docs): use remark-compatible plugin
Change the `transformBlocks` function, which transforms a markdown str,
and instead making it into a
`transformMarkdownAst` function, which transforms a Markdown AST.

This means we can use the remark/unifiedjs plugin infrastructure, see
https://unifiedjs.com/learn/guide/create-a-plugin/
2023-01-22 19:21:51 +00:00
Alois Klink
b26cdb3e46 build(docs): support YAML frontmatter in markdown
Vitepress uses YAML frontmatter to configure Vitepress specific
settings, see https://vitepress.vuejs.org/config/frontmatter-configs

We just need to use `remark-frontmatter` to add support for it.

GitHub also renders the YAML front-matter nicely in a table
automatically, but maybe we should instead strip it, if it's only
used by Vitepress?
2023-01-22 19:21:18 +00:00
Knut Sveidqvist
de8928b2d9 #4016 Fix for max_sections in mindmap renderer 2023-01-20 12:48:06 +01:00
pbrolin47
e5b33087f3 Merge pull request #4013 from mermaid-js/4012-handling-rows-wiht-only-spaces
Mindmaps: Handling rows with only spaces in them (#4012)
2023-01-20 10:23:06 +01:00
Knut Sveidqvist
bc56a7d4f1 #4012 Neater grammar for the rows before mindmap 2023-01-20 10:21:13 +01:00
Knut Sveidqvist
80903e427c #4012 Allowing multiple lines before the mindmap statement 2023-01-20 10:18:26 +01:00
pbrolin47
7b67f5783e Merge pull request #4018 from mermaid-js/4016-differentiate-colors
Mindmaps: differentiate the colors between the root node and the first section #4017
2023-01-20 09:16:02 +01:00
Per Brolin
e8db9b2bd5 Merge branch 'master' of github.com:mermaid-js/mermaid 2023-01-20 09:01:48 +01:00
Knut Sveidqvist
023f2354cd 2023-01-20 08:31:01 +01:00
cnjeftia
5925d8b731 docs: minor fix on markdown in root folder 2023-01-20 11:45:11 +08:00
cnjeftia
96d5bc7695 docs: minor fix on markdown 2023-01-20 11:29:16 +08:00
ashishj
7ef71cc04d Remove old test cases 2023-01-19 21:05:38 +01:00
Knut Sveidqvist
3cd15cdcf2 #4012 Handling rows with only spaces in them 2023-01-19 20:50:36 +01:00
ashishj
e865368649 Updating version and clean up package.json 2023-01-19 20:42:33 +01:00
ashishj
be818ad57f Pushing fix for broken themeVariable functionality 2023-01-19 20:30:11 +01:00
ashishj
ca22e85e55 Merge branch 'release/9.4.0' into timeline 2023-01-19 19:20:29 +01:00
ashishj
652a42fe1a Add directive parsing functionality to timeline diagram 2023-01-19 19:03:05 +01:00
Bastian Ebeling
3aeef7b846 Update integrations.md
Corrected `Vs Code` to `VS Code` and inserted `Markdown Preview Enhanced`
2023-01-19 07:15:32 +01:00
Olivier Leveau
250f1f9687 Merge branch 'develop' into feature/AddBoxForSeqDiagrams 2023-01-18 11:35:39 +01:00
Sidharth Vinod
5b9839cbd0 fix package.json
add `@types/cytoscape`
2023-01-18 00:53:00 +05:30
Sidharth Vinod
afe3f593e1 fix(#4003): Remove unhandled promises
Add eslint rules to check for unhandled promises
Fix all existing unhandled promise issues
2023-01-18 00:47:49 +05:30
Knut Sveidqvist
e573be4afd Merge branch 'develop' into release/9.4.0 2023-01-17 18:08:04 +01:00
Sidharth Vinod
549483d19b Update funding :) 2023-01-17 22:09:22 +05:30
Sidharth Vinod
8a485c3c88 Merge pull request #3993 from jonabc/bug/sequence-firefox-font-size
Parse style string and number font size values from configuration inputs
2023-01-17 22:07:11 +05:30
Sidharth Vinod
96dedc7b5e flowchart-elk repro 2023-01-17 21:37:32 +05:30
Jon Ruskin
9629c8d8d6 use undefined not null 2023-01-17 08:31:36 -07:00
Knut Sveidqvist
7e8c1b0393 Merge pull request #3984 from mermaid-js/sidv/internalFCV3
feat: Flowchart-elk integration
2023-01-17 14:18:29 +01:00
Knut Sveidqvist
e4bdfee85a Merge pull request #3995 from mermaid-js/sidv/properlyWaitTests
feat: Wait for rendering to finish before taking image snapshots
2023-01-17 14:15:28 +01:00
Sidharth Vinod
c0f9b3c00b Merge branch 'develop' into sidv/internalFCV3
* develop:
  Update docs
  docs(sequenceDiagram): subvert prettification of arrow types
2023-01-17 14:07:12 +05:30
sidharthv96
01a535b8e0 Update docs 2023-01-16 09:52:48 +00:00
Sidharth Vinod
3c12e66f73 Merge pull request #3988 from cakemanny/docs/correct-arrow-type-display
docs(sequenceDiagram): subvert prettification of arrow types
2023-01-16 15:18:59 +05:30
Sidharth Vinod
fba3f8481e Merge branch 'develop' into sidv/internalFCV3
* develop:
  chore(deps): update all non-major dependencies
  fix(deps): update dependency dagre-d3-es to v7.0.6
2023-01-16 13:27:09 +05:30
Sidharth Vinod
f0e3bcc37b Merge pull request #3997 from mermaid-js/renovate/all-minor-patch
chore(deps): update all non-major dependencies (minor)
2023-01-16 13:18:56 +05:30
Sidharth Vinod
ae7c9475ef Merge branch 'sidv/properlyWaitTests' into sidv/internalFCV3
* sidv/properlyWaitTests:
  fix tests
2023-01-16 13:18:31 +05:30
Sidharth Vinod
d320e788c7 fix tests 2023-01-16 13:18:16 +05:30
renovate[bot]
376d1a583c chore(deps): update all non-major dependencies 2023-01-16 05:22:19 +00:00
renovate[bot]
ea3d7bc594 fix(deps): update dependency dagre-d3-es to v7.0.6 2023-01-16 05:18:31 +00:00
Sidharth Vinod
ded83b2ce7 Fix title 2023-01-16 02:17:25 +05:30
Sidharth Vinod
1c8c69f8db Merge branch 'sidv/properlyWaitTests' into sidv/internalFCV3
* sidv/properlyWaitTests:
  feat: Wait for rendering to finish before taking image snapshots
  Update docs
  chore(deps): update all non-major dependencies
  Fix: Too many `primaryBorderColor`
2023-01-16 02:11:59 +05:30
Sidharth Vinod
4d3f151cf0 feat: Wait for rendering to finish before taking image snapshots 2023-01-16 02:07:37 +05:30
Sidharth Vinod
8f8ae64ced upload error snapshots 2023-01-16 01:23:42 +05:30
Jon Ruskin
b93ce24c3d handle string and number font size configurations 2023-01-14 14:05:05 -07:00
Daniel Golding
0a4a3bda16 docs(sequenceDiagram): subvert prettification of arrow types
The rendering of the arrows becomes prettified using some sort of font library on mermaid.js.org .
Quote in backticks to indicate these are code.
2023-01-13 17:05:53 +01:00
sidharthv96
874f4c0641 Update docs 2023-01-13 14:17:17 +00:00
Sidharth Vinod
60175cd84f Merge pull request #3986 from LiHowe/patch-1
Docs: Too many `primaryBorderColor` field
2023-01-13 19:43:45 +05:30
renovate[bot]
ac6d325a00 chore(deps): update all non-major dependencies 2023-01-13 10:02:07 +00:00
Howard He
e44e1210e2 Fix: Too many primaryBorderColor
Only keep one `primaryBorderColor` field in Theme Variables part.
before:
![before](https://s2.loli.net/2023/01/13/I657QWjsAlVokfE.png)
after:
![after](https://s2.loli.net/2023/01/13/ZQ7PSfcdIKBtGsm.png)
2023-01-13 17:13:56 +08:00
Sidharth Vinod
05d1fc44e8 Merge branch 'develop' into sidv/internalFCV3
* develop:
  test(sequenceDiagram): mock more d3 curve* types
  test(docs): fix test failure due to bad merge
  chore(dev-deps): update vitest to `^0.27.1`
2023-01-13 10:23:59 +05:30
Sidharth Vinod
075f55418b Merge pull request #3985 from aloisklink/test/fix-docs-semantic-merge-conflict
Fix failing tests due to semantic merge conflict
2023-01-13 10:20:33 +05:30
Alois Klink
164b9bc2cb test(sequenceDiagram): mock more d3 curve* types
vitest is throwing an error, since these types are used in
packages/mermaid/src/utils.ts, but are not being mocked.

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

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

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

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

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

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

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

Co-authored-by: Alois Klink <alois@aloisklink.com>
Co-authored-by: Chidozie Nnachor <Chidozie.Nnachor@keylane.com>
2023-01-07 23:39:36 +00:00
atmikeguo
1968d1bb28 Fix nonstandard syntax 2023-01-07 20:05:57 +08:00
Olivier Leveau
117f0ab6da Fix test / Add Tests 2023-01-06 13:38:03 +01:00
Olivier Leveau
64a935515c Better color detection + fix win32 path handling 2023-01-06 12:47:09 +01:00
Olivier Leveau
e6befbaa3f Merge branch 'develop' into feature/AddBoxForSeqDiagrams 2023-01-06 11:06:00 +01:00
Alois Klink
ae7833bdfa Merge pull request #3964 from guilhermgonzaga/docs/remove-duplicate-erdiagram
docs: Remove duplicate example in ER-diagram documentation
2023-01-05 23:56:58 +00:00
Guilherme Gonzaga
412eec06d4 Update docs 2023-01-05 21:50:37 +00:00
Olivier Leveau
e659601e03 Add Box support in Sequence Diagrams 2023-01-05 15:40:40 +01:00
Guilherme Gonzaga
10cb3e26d5 docs: Remove duplicate in ER-diagram documentation 2023-01-03 14:49:20 -04:00
Alois Klink
75b19eaa0c chore(docs): run pnpm run docs:build with GFM
Rebuild docs with `remark-gfm` GitHub-Flavored-Markdown parser.
2023-01-01 21:28:03 +00:00
Alois Klink
ef51111b86 build(docs): support GFM in markdown docs
Support using GFM in markdown documentation.

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

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

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

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

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

The input strings are unique for each diagram, so this should be
okay.
2022-12-15 18:00:48 +00:00
Sidharth Vinod
ff7ed7f49f Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid: (40 commits)
  lint
  fix typescript error
  fix(docs): build the docs
  fix(docs): remove duplicate section
  chore(deps): update all non-major dependencies
  Update docs/misc/integrations.md
  Add links to github atom add-ons
  remove links from atom.io; add note Atom has been archived
  set svg role to 'graphics-document document'
  common function for a11y; add to renderAsync; + renderAsync spec
  fix cspell
  fix cspell
  fix lint
  refactor theming doc
  remove typeof
  use camelCase
  make test title clearer
  update /docs
  add test for multi-line accDescr
  use MockedD3, spies in util insertTitle spec (remove MockD3)
  ...
2022-12-15 21:50:06 +05:30
Sidharth Vinod
333b974f10 Add workflow_dispatch to lint.yml 2022-12-15 21:50:00 +05:30
Sidharth Vinod
01039c574c Merge pull request #3914 from tommoor/patch-1
fix: Typescript error in usage
2022-12-15 21:45:06 +05:30
Sidharth Vinod
4e70f327c4 Merge pull request #3897 from weedySeaDragon/feat/3896_a11y-svg-role-graphics-doc-doc
feat: Set svg role to 'graphics-document document'
2022-12-15 21:42:08 +05:30
ashishj
fefcc43dd4 Merged Develop in timeline branch 2022-12-15 17:10:56 +01:00
ashishj
2141057ab4 add more runnning examples 2022-12-15 17:00:53 +01:00
Sidharth Vinod
54bb2ef00e Merge pull request #3908 from Joxtacy/patch-1
fix(docs): remove duplicate section
2022-12-15 20:39:52 +05:30
BD103
992d1623a7 chore: update docs folder 2022-12-15 09:46:00 -05:00
Tom Moor
78dd03dcdb lint 2022-12-15 09:29:30 -05:00
Tom Moor
9f2d29b68b fix typescript error 2022-12-15 06:09:22 -08:00
Sidharth Vinod
d841ad8f3e Update vitepress 2022-12-15 17:09:24 +05:30
Sidharth Vinod
3fb0b2792e fix: Add icon css 2022-12-15 15:33:51 +05:30
Sidharth Vinod
bbc4e90c89 fix Top level await 2022-12-15 14:57:08 +05:30
Jesper Hasselquist
dfa1d26952 fix(docs): build the docs 2022-12-12 22:32:50 +09:00
Jesper Hasselquist
32fcea3bdd fix(docs): remove duplicate section
Remove duplicate `Return Type` section
2022-12-12 21:39:19 +09:00
renovate[bot]
a975c8c9cd chore(deps): update all non-major dependencies 2022-12-12 04:57:37 +00:00
steph
e4622ba06e fix text overflow 2022-12-11 20:53:14 -08:00
Maho Pacheco
6fb9b3b353 Adding UTs for attributes with variable length in er diagram 2022-12-11 19:45:05 -08:00
Maho Pacheco
07d8684fc7 Adding size to postal code 2022-12-11 19:34:25 -08:00
steph
1b0ea981f9 update navbar 2022-12-11 18:59:01 -08:00
steph
72a3cff13e fix dev server watch mode 2022-12-11 14:04:41 -08:00
Knut Sveidqvist
14f7756fdb #815 Adding labels to edges 2022-12-11 09:24:05 +01:00
Alois Klink
e97bef2ff7 Merge pull request #3899 from weedySeaDragon/docs/remove-atom-links
doc: remove links from atom.io; add note Atom has been archived
2022-12-11 00:12:59 +00:00
Ashley Engelund
e4c9aa198e Update docs/misc/integrations.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:47:01 -08:00
Ashley Engelund
76e9e07370 Add links to github atom add-ons
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:46:24 -08:00
Ashley Engelund (weedySeaDragon @ github)
ae7fd777a7 + parsing specs that actually check results 2022-12-09 16:22:56 -08:00
Ashley Engelund (weedySeaDragon @ github)
d666981599 parser: remove extra popState; whitespace formatting; remove 'zxzx' weird string 2022-12-09 16:21:28 -08:00
Ashley Engelund (weedySeaDragon @ github)
f0b8657423 state demo: AS descriptions for states in composites 2022-12-09 16:01:13 -08:00
Ashley Engelund (weedySeaDragon @ github)
ae25a08fe3 (minor) add JSDOC comments 2022-12-09 13:35:44 -08:00
Ashley Engelund (weedySeaDragon @ github)
2b7aa3f99d start of parser spec; test for this bug 2022-12-09 13:35:23 -08:00
Ashley Engelund (weedySeaDragon @ github)
e7b4f7f6ca trim state ids as they are processed by docTranslator 2022-12-09 13:33:51 -08:00
Ashley Engelund (weedySeaDragon @ github)
de795a915e remove links from atom.io; add note Atom has been archived 2022-12-09 04:56:55 -08:00
Ashley Engelund (weedySeaDragon @ github)
e59b830d74 set svg role to 'graphics-document document' 2022-12-08 11:25:04 -08:00
Knut Sveidqvist
0b01c3376d #815 Adding labels to subgraphs 2022-12-08 19:41:17 +01:00
Knut Sveidqvist
ebf76e3d1f #815 Using elk for flowchart layouts 2022-12-07 09:37:27 +01:00
Sidharth Vinod
af212331ef Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  fix: Fail docs:verify on non push events
2022-12-07 11:58:33 +05:30
Sidharth Vinod
f2a85eafac Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  chore: Update cspell
  Update docs
  fix: docs build command
  chore: Rebuild docs if linting fails
  chore: Format Mermaid.vue
  Made mermaidConfig a local variable so that it cannot be shared cross rendering.
  Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
  Fixed the issue that theme-switch does not work on docs.
  Get base sha from PR
  Run doc lint only if files changed
  Run doc lint only if files changed
  Run doc lint only if files changed
  split lint docs action
  split lint docs action
  fix: File location
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  chore: Update docs path
  chore: Auto build docs if only src/docs is changed
2022-12-07 11:50:45 +05:30
Maho Pacheco
4dadf8a72d Adding support for parentheses 2022-12-06 10:38:21 -08:00
BD103
49ca2e3588 feat: add links to theme listing 2022-12-05 17:41:30 -05:00
Knut Sveidqvist
4863d0d29d Adding new flowchart renderer using elk 2022-12-03 09:47:01 +01:00
Knut Sveidqvist
4f1b26fd76 Adding new flowchart renderer using cytoscape 2022-12-02 08:06:16 +01:00
Alois Klink
accba3f408 chore: improve errors for bad YAML frontmatter
Adds a custom error message for any mermaid diagram that starts with
a `---`. Normally, these are expected to be part of a YAML front-matter
block, but indentation issues or a missing closing `---` may cause
these to be not parsed correctly.
2022-12-01 22:43:03 +00:00
Alois Klink
f884b745dc Merge branch 'develop' into fix/3706_support-indented-yaml-only-in-html
Conflicts:
 - pnpm-lock.yaml
2022-11-30 21:11:48 +00:00
Sidharth Vinod
15cfa5d40d Merge branch 'develop' into sidv/splitDiagrams
* develop: (79 commits)
  Minor change
  feat: Add @include support to docs
  feat: Add @include example to docs
  feat: Add @include support to docs
  cleanup
  fix lines
  fix Async rendering
  Revert "sync"
  chore(deps): update pnpm to v7.17.1
  chore(deps): remove dependency on `graphlib`
  test(e2e): make gitgraph snapshots consistent
  chore: Fix lint
  test: Update vitest
  Add official vim plugin to list in integrations
  chore: Cleanup package.json
  chore: Cleanup package.json
  chore: Cleanup package.json
  fix lock
  Docs
  Fix: array concat
  ...
2022-11-30 19:15:21 +05:30
Alois Klink
4cc3b17d36 docs(demos): fix indentation of YAML front-matter
Mermaid diagrams that have YAML front-matter can now be indented in
HTML code, see commit:
5cfa9196 (fix: support parsing indented mmd YAML from HTML, 2022-11-27)

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

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

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

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

This commit uses [`ts-dedent`](https://www.npmjs.com/package/ts-dedent)
to automatically remove the indentation from Mermaid diagrams when
parsed from HTML. Mermaid diagrams from mermaidAPI.render() are **NOT**
dedented, as that API is called from JavaScript code, and therefore
users can easily `dedent` their own diagrams.
2022-11-27 18:19:13 +00:00
ashishj
14ff8a8570 add runnning example 2022-11-23 19:32:27 +01:00
ashishj
0d5246fbc7 initial commit 2022-11-23 19:28:26 +01:00
Sidharth Vinod
bf53a03c9d fix: Use lodash instead of lodash-es
lodash with specific imports use lesser space than lodash-es
2022-11-20 18:30:01 +05:30
Sidharth Vinod
3b32f44a60 Merge branch 'sidv/viz' into sidv/splitDiagrams
* sidv/viz:
  feat: Add package visualization
  Ignore stats.html
  feat: Add bundle visualization
2022-11-20 14:25:40 +05:30
Sidharth Vinod
a8cd5e675d Ignore stats.html 2022-11-20 12:10:05 +05:30
Sidharth Vinod
bc269a966d Merge branch 'sidv/sizeCheck' into sidv/splitDiagrams
* sidv/sizeCheck:
  feat: Add size inspection plugin
2022-11-20 12:09:42 +05:30
Sidharth Vinod
d39606cb47 fix: Mindmap link 2022-11-20 12:04:28 +05:30
Sidharth Vinod
b04517b146 chore: Cleanup 2022-11-20 12:00:34 +05:30
Sidharth Vinod
024ee4213f Merge branch 'develop' into sidv/splitDiagrams
* develop: (233 commits)
  style(docs): use `github-dark` hightlight theme
  refactor(docs): use default vitepress highlighter
  fix: Move redirection to router
  ci(renovate): disable pinning dependencies
  Revert "chore(deps): pin dependencies"
  change shiki getHighlighter import
  create separate spec for stateRenderer-v2
  diagramStates should not be global; pass it into functions; minor comment fixes
  diagramClasses no longer needs to be cached; mermaidAPI no longer calls it repeatedly
  (minor) import expectTypeOf in spec
  (minor) fix JSdoc tag
  + spec stateRenderer-v2.js getClasses() to verify it returns a {}
  (minor) fix JSdoc types in comments
  (minor) add comments, remove duplicated line
  chore: Add master to link checker
  chore: Add docs to redirect.ts
  stateDB classes must be a {} not []
  feat: Redirect old documentation links.
  add stateDiagram-v2 to list of graphs with classDefs
  fix(docs): ClassDiagram table
  ...
2022-11-20 11:58:55 +05:30
Sidharth Vinod
e861fbb517 feat: unbundle styles 2022-11-20 11:09:08 +05:30
Sidharth Vinod
2e028ce36d chore: Unify registerLazyLoadedDiagrams 2022-11-20 00:38:35 +05:30
Sidharth Vinod
7306b5ac45 feat: Add size inspection plugin 2022-11-18 17:52:55 +05:30
Sidharth Vinod
0854bab124 fix: Remove diagram dependency from mermaidAPI 2022-11-18 16:51:50 +05:30
Sidharth Vinod
fa51121f29 chore(split): Error 2022-11-18 16:30:54 +05:30
Sidharth Vinod
0b4c6f6477 chore(split): Journey 2022-11-18 16:22:38 +05:30
Sidharth Vinod
e5768454f1 chore(split): State Diagram 2022-11-18 16:19:38 +05:30
Sidharth Vinod
89b5eb56f2 chore(split): Orchestration 2022-11-18 16:11:19 +05:30
Sidharth Vinod
616c969a03 chore(split): Flow type 2022-11-18 16:11:03 +05:30
Sidharth Vinod
4fd826ac8c chore(split): Sequence 2022-11-18 16:10:51 +05:30
Sidharth Vinod
6d5a6ad0c8 chore(split): Requirement 2022-11-18 16:10:42 +05:30
Sidharth Vinod
e0cd76e6fd chore(split): Pie 2022-11-18 16:10:25 +05:30
Sidharth Vinod
f03364f328 chore(split): Info 2022-11-18 16:10:15 +05:30
Sidharth Vinod
25bc381361 chore(split): gitGraph 2022-11-18 16:10:06 +05:30
Sidharth Vinod
38e5c3a81e chore(split): Gantt 2022-11-18 16:09:56 +05:30
Sidharth Vinod
43aa831dd2 chore(split): ER 2022-11-18 16:09:45 +05:30
Sidharth Vinod
4492c5ed4e chore(split): classDiagram 2022-11-18 16:09:36 +05:30
Sidharth Vinod
5dec9eb2f5 fix: C4 type 2022-11-18 16:09:10 +05:30
Sidharth Vinod
02903be558 feat: Split C4 & Flow 2022-11-18 14:28:28 +05:30
Per Brolin
f36cf5b321 Merge branch 'master' of github.com:mermaid-js/mermaid 2022-11-14 13:02:03 +01:00
Per Brolin
82ac667535 Service functions added 2022-11-14 10:03:24 +01:00
441 changed files with 20861 additions and 10005 deletions

View File

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

150
.eslintrc.cjs Normal file
View File

@@ -0,0 +1,150 @@
module.exports = {
env: {
browser: true,
es6: true,
'jest/globals': true,
node: true,
},
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
jsx: true,
},
tsconfigRootDir: __dirname,
sourceType: 'module',
ecmaVersion: 2020,
allowAutomaticSingleRunInference: true,
project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'],
parser: '@typescript-eslint/parser',
},
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:json/recommended',
'plugin:markdown/recommended',
'plugin:@cspell/recommended',
'prettier',
],
plugins: [
'@typescript-eslint',
'no-only-tests',
'html',
'jest',
'jsdoc',
'json',
'@cspell',
'lodash',
'unicorn',
],
rules: {
curly: 'error',
'no-console': 'error',
'no-prototype-builtins': 'off',
'no-unused-vars': 'off',
'cypress/no-async-tests': 'off',
'@typescript-eslint/no-floating-promises': 'error',
'@typescript-eslint/no-misused-promises': 'error',
'@typescript-eslint/ban-ts-comment': [
'error',
{
'ts-expect-error': 'allow-with-description',
'ts-ignore': 'allow-with-description',
'ts-nocheck': 'allow-with-description',
'ts-check': 'allow-with-description',
minimumDescriptionLength: 10,
},
],
'json/*': ['error', 'allowComments'],
'@cspell/spellchecker': [
'error',
{
checkIdentifiers: false,
checkStrings: false,
checkStringTemplates: false,
},
],
'no-empty': [
'error',
{
allowEmptyCatch: true,
},
],
'no-only-tests/no-only-tests': 'error',
'lodash/import-scope': ['error', 'method'],
'unicorn/better-regex': 'error',
'unicorn/no-abusive-eslint-disable': 'error',
'unicorn/no-array-push-push': 'error',
'unicorn/no-for-loop': 'error',
'unicorn/no-instanceof-array': 'error',
'unicorn/no-typeof-undefined': 'error',
'unicorn/no-unnecessary-await': 'error',
'unicorn/no-unsafe-regex': 'warn',
'unicorn/no-useless-promise-resolve-reject': 'error',
'unicorn/prefer-array-find': 'error',
'unicorn/prefer-array-flat-map': 'error',
'unicorn/prefer-array-index-of': 'error',
'unicorn/prefer-array-some': 'error',
'unicorn/prefer-default-parameters': 'error',
'unicorn/prefer-includes': 'error',
'unicorn/prefer-negative-index': 'error',
'unicorn/prefer-object-from-entries': 'error',
'unicorn/prefer-string-starts-ends-with': 'error',
'unicorn/prefer-string-trim-start-end': 'error',
'unicorn/string-content': 'error',
'unicorn/prefer-spread': 'error',
'unicorn/no-lonely-if': 'error',
},
overrides: [
{
files: ['cypress/**', 'demos/**'],
rules: {
'no-console': 'off',
},
},
{
files: ['*.{js,jsx,mjs,cjs}'],
extends: ['plugin:jsdoc/recommended'],
rules: {
'jsdoc/check-indentation': 'off',
'jsdoc/check-alignment': 'off',
'jsdoc/check-line-alignment': 'off',
'jsdoc/multiline-blocks': 'off',
'jsdoc/newline-after-description': 'off',
'jsdoc/tag-lines': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-param-type': 'off',
'jsdoc/require-returns': 'off',
'jsdoc/require-returns-description': 'off',
},
},
{
files: ['*.{ts,tsx}'],
plugins: ['tsdoc'],
rules: {
'tsdoc/syntax': 'error',
},
},
{
files: ['*.spec.{ts,js}', 'cypress/**', 'demos/**', '**/docs/**'],
rules: {
'jsdoc/require-jsdoc': 'off',
'@typescript-eslint/no-unused-vars': 'off',
},
},
{
files: ['*.html', '*.md', '**/*.md/*'],
rules: {
'no-var': 'error',
'no-undef': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': 'off',
},
parserOptions: {
project: null,
},
},
],
};

View File

@@ -1,137 +0,0 @@
{
"env": {
"browser": true,
"es6": true,
"jest/globals": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module"
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:json/recommended",
"plugin:markdown/recommended",
"plugin:@cspell/recommended",
"prettier"
],
"plugins": [
"@typescript-eslint",
"no-only-tests",
"html",
"jest",
"jsdoc",
"json",
"@cspell",
"lodash",
"unicorn"
],
"rules": {
"curly": "error",
"no-console": "error",
"no-prototype-builtins": "off",
"no-unused-vars": "off",
"cypress/no-async-tests": "off",
"@typescript-eslint/ban-ts-comment": [
"error",
{
"ts-expect-error": "allow-with-description",
"ts-ignore": "allow-with-description",
"ts-nocheck": "allow-with-description",
"ts-check": "allow-with-description",
"minimumDescriptionLength": 10
}
],
"json/*": ["error", "allowComments"],
"@cspell/spellchecker": [
"error",
{
"checkIdentifiers": false,
"checkStrings": false,
"checkStringTemplates": false
}
],
"no-empty": [
"error",
{
"allowEmptyCatch": true
}
],
"no-only-tests/no-only-tests": "error",
"lodash/import-scope": ["error", "method"],
"unicorn/better-regex": "error",
"unicorn/no-abusive-eslint-disable": "error",
"unicorn/no-array-push-push": "error",
"unicorn/no-for-loop": "error",
"unicorn/no-instanceof-array": "error",
"unicorn/no-typeof-undefined": "error",
"unicorn/no-unnecessary-await": "error",
"unicorn/no-unsafe-regex": "warn",
"unicorn/no-useless-promise-resolve-reject": "error",
"unicorn/prefer-array-find": "error",
"unicorn/prefer-array-flat-map": "error",
"unicorn/prefer-array-index-of": "error",
"unicorn/prefer-array-some": "error",
"unicorn/prefer-default-parameters": "error",
"unicorn/prefer-includes": "error",
"unicorn/prefer-negative-index": "error",
"unicorn/prefer-object-from-entries": "error",
"unicorn/prefer-string-starts-ends-with": "error",
"unicorn/prefer-string-trim-start-end": "error",
"unicorn/string-content": "error",
"unicorn/prefer-spread": "error",
"unicorn/no-lonely-if": "error"
},
"overrides": [
{
"files": ["cypress/**", "demos/**"],
"rules": {
"no-console": "off"
}
},
{
"files": ["*.{js,jsx,mjs,cjs}"],
"extends": ["plugin:jsdoc/recommended"],
"rules": {
"jsdoc/check-indentation": "off",
"jsdoc/check-alignment": "off",
"jsdoc/check-line-alignment": "off",
"jsdoc/multiline-blocks": "off",
"jsdoc/newline-after-description": "off",
"jsdoc/tag-lines": "off",
"jsdoc/require-param-description": "off",
"jsdoc/require-param-type": "off",
"jsdoc/require-returns": "off",
"jsdoc/require-returns-description": "off"
}
},
{
"files": ["*.{ts,tsx}"],
"plugins": ["tsdoc"],
"rules": {
"tsdoc/syntax": "error"
}
},
{
"files": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"],
"rules": {
"jsdoc/require-jsdoc": "off",
"@typescript-eslint/no-unused-vars": "off"
}
},
{
"files": ["*.html", "*.md", "**/*.md/*"],
"rules": {
"no-var": "error",
"no-undef": "off",
"@typescript-eslint/no-unused-vars": "off"
}
}
]
}

4
.github/FUNDING.yml vendored
View File

@@ -1,6 +1,8 @@
# These are supported funding model platforms
github: [knsv]
github:
- knsv
- sidharthv96
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username

View File

@@ -50,19 +50,11 @@ body:
attributes:
label: Setup
description: |-
Please fill out the below info.
Note that you only need to fill out one and not both sections.
Please fill out the info below.
Note that you only need to fill out the relevant section
value: |-
**Desktop**
- OS and Version: [Windows, Linux, Mac, ...]
- Mermaid version:
- Browser and Version: [Chrome, Edge, Firefox]
**Smartphone**
- Device: [Samsung, iPhone, ...]
- OS and Version: [Android, iOS, ...]
- Browser and Version: [Chrome, Safari, ...]
- type: textarea
attributes:
label: Additional Context

View File

@@ -1,4 +1,4 @@
blank_issues_enabled: false
blank_issues_enabled: true
contact_links:
- name: GitHub Discussions
url: https://github.com/mermaid-js/mermaid/discussions

View File

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

29
.github/workflows/build-docs.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: Build Vitepress docs
on:
pull_request:
permissions:
contents: read
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: 18
- name: Install Packages
run: pnpm install --frozen-lockfile
- name: Run Build
run: pnpm --filter mermaid run docs:build:vitepress

View File

@@ -17,4 +17,4 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@v3
- name: 'Dependency Review'
uses: actions/dependency-review-action@v2
uses: actions/dependency-review-action@v3

View File

@@ -38,15 +38,8 @@ jobs:
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
- name: Install Packages
run: |
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- if: ${{ env.USE_APPLI }}
name: Notify applitools of new batch
# Copied from docs https://applitools.com/docs/topics/integrations/github-integration-ci-setup.html
@@ -54,19 +47,22 @@ jobs:
env:
# e.g. mermaid-js/mermaid/my-branch
APPLITOOLS_BRANCH: ${{ github.repository }}/${{ github.ref_name }}
APPLITOOLS_PARENT_BRANCH: ${{ github.inputs.parent_branch }}
APPLITOOLS_PARENT_BRANCH: ${{ github.event.inputs.parent_branch }}
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com'
- name: Run E2E Tests
run: pnpm run e2e
- name: Cypress run
uses: cypress-io/github-action@v4
id: cypress
with:
start: pnpm run dev
wait-on: 'http://localhost:9000'
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
# Mermaid applitools.config.js uses this to pick batch name.
APPLI_BRANCH: ${{ github.ref_name }}
APPLITOOLS_BATCH_ID: ${{ github.sha }}
# e.g. mermaid-js/mermaid/my-branch
APPLITOOLS_BRANCH: ${{ github.repository }}/${{ github.ref_name }}
APPLITOOLS_PARENT_BRANCH: ${{ github.inputs.parent_branch }}
APPLITOOLS_PARENT_BRANCH: ${{ github.event.inputs.parent_branch }}
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com'

View File

@@ -21,17 +21,14 @@ jobs:
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
# Need to skip setup if Cypress run is skipped, otherwise an error
# is thrown since the pnpm cache step fails
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
uses: cypress-io/github-action@v4
id: cypress
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
@@ -44,3 +41,10 @@ jobs:
parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: ${{ failure() && steps.cypress.conclusion == 'failure' }}
with:
name: error-snapshots
path: cypress/snapshots/**/__diff_output__/*

View File

@@ -13,11 +13,11 @@ on:
- master
pull_request:
branches:
- develop
- master
workflow_dispatch:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 8 * * 5'
- cron: '30 8 * * *'
jobs:
linkChecker:
@@ -36,9 +36,16 @@ jobs:
restore-keys: cache-lychee-
- name: Link Checker
uses: lycheeverse/lychee-action@v1.5.4
uses: lycheeverse/lychee-action@v1.7.0
with:
args: --verbose --no-progress --cache --max-cache-age 1d packages/mermaid/src/docs/**/*.md README.md README.zh-CN.md
args: >-
--verbose
--no-progress
--cache
--max-cache-age 1d
packages/mermaid/src/docs/**/*.md
README.md
README.zh-CN.md
fail: true
jobSummary: true
env:

View File

@@ -7,6 +7,7 @@ on:
- opened
- synchronize
- ready_for_review
workflow_dispatch:
permissions:
contents: write
@@ -36,7 +37,20 @@ jobs:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Run Linting
run: pnpm run lint
shell: bash
run: |
if ! pnpm run lint; then
# print a nice error message on lint failure
ERROR_MESSAGE='Running `pnpm run lint` failed.'
ERROR_MESSAGE+=' Running `pnpm run lint:fix` may fix this issue. '
ERROR_MESSAGE+=" If this error doesn't occur on your local machine,"
ERROR_MESSAGE+=' make sure your packages are up-to-date by running `pnpm install`.'
ERROR_MESSAGE+=' You may also need to delete your prettier cache by running'
ERROR_MESSAGE+=' `rm ./node_modules/.cache/prettier/.prettier-cache`.'
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

View File

@@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Label PR
uses: TimonVS/pr-labeler-action@v3
uses: TimonVS/pr-labeler-action@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -6,9 +6,6 @@ on:
branches:
- master
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
@@ -40,7 +37,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Setup Pages
uses: actions/configure-pages@v2
uses: actions/configure-pages@v3
- name: Run Build
run: pnpm --filter mermaid run docs:build:vitepress
@@ -59,4 +56,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
uses: actions/deploy-pages@v2

View File

@@ -9,20 +9,23 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: fregante/setup-git-user@v1
- uses: fregante/setup-git-user@v2
- name: Setup Node.js
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js v18
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: 18.x
- name: Install Yarn
run: npm i yarn --global
- name: Install Json
run: npm i json --global
- name: Install Packages
run: yarn install --frozen-lockfile
run: |
pnpm install --frozen-lockfile
npm i json --global
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Prepare release
run: |
@@ -31,7 +34,7 @@ jobs:
git checkout -t origin/release/$VERSION
npm version --no-git-tag-version --allow-same-version $VERSION
git add package.json
git commit -m "Bump version $VERSION"
git commit -nm "Bump version $VERSION"
git checkout -t origin/master
git merge -m "Release $VERSION" --no-ff release/$VERSION
git push --no-verify

View File

@@ -33,6 +33,14 @@ jobs:
run: |
pnpm run ci --coverage
- name: Run ganttDb tests using California timezone
env:
# Makes sure that gantt db works even in a timezone that has daylight savings
# 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
- 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)

View File

@@ -1,5 +1,11 @@
export default {
'!(docs/**/*)*.{ts,js,json,html,md,mts}': ['eslint --fix', 'prettier --write'],
'!(docs/**/*)*.{ts,js,json,html,md,mts}': [
'eslint --cache --cache-strategy content --fix',
// don't cache prettier yet, since we use `prettier-plugin-jsdoc`,
// and prettier doesn't invalidate cache on plugin updates"
// https://prettier.io/docs/en/cli.html#--cache
'prettier --write',
],
'cSpell.json': ['ts-node-esm scripts/fixCSpell.ts'],
'**/*.jison': ['pnpm -w run lint:jison'],
};

View File

@@ -4,10 +4,8 @@
# Network error: Forbidden
https://codepen.io
# Network error: The certificate was not trusted
https://mkdocs.org/
https://osawards.com/javascript/#nominees
https://osawards.com/javascript/2019
# Timeout error, maybe Twitter has anti-bot 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/*

1
.npmrc
View File

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

View File

@@ -1,6 +0,0 @@
version: 2
snapshot:
widths:
- 1280
discovery:
disable-cache: true

View File

@@ -1,15 +0,0 @@
{
"ecmaVersion": 6,
"libs": ["browser"],
"loadEagerly": [],
"dontLoad": ["node_modules/**"],
"plugins": {
"modules": {},
"es_modules": {},
"node": {},
"doc_comment": {
"fullDocs": true,
"strong": true
}
}
}

View File

@@ -3,6 +3,7 @@ import { resolve } from 'path';
import { fileURLToPath } from 'url';
import jisonPlugin from './jisonPlugin.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';
@@ -10,6 +11,7 @@ const visualize = process.argv.includes('--visualize');
const watch = process.argv.includes('--watch');
const mermaidOnly = process.argv.includes('--mermaid');
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const sourcemap = false;
type OutputOptions = Exclude<
Exclude<InlineConfig['build'], undefined>['rollupOptions'],
@@ -20,13 +22,14 @@ const visualizerOptions = (packageName: string, core = false): PluginOption[] =>
if (packageName !== 'mermaid' || !visualize) {
return [];
}
return ['network', 'treemap', 'sunburst'].map((chartType) =>
visualizer({
filename: `./stats/${chartType}${core ? '.core' : ''}.html`,
template: chartType as TemplateType,
gzipSize: true,
brotliSize: true,
})
return ['network', 'treemap', 'sunburst'].map(
(chartType) =>
visualizer({
filename: `./stats/${chartType}${core ? '.core' : ''}.html`,
template: chartType as TemplateType,
gzipSize: true,
brotliSize: true,
}) as PluginOption
);
};
@@ -36,16 +39,11 @@ const packageOptions = {
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-mindmap': {
name: 'mermaid-mindmap',
packageName: 'mermaid-mindmap',
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
// 'mermaid-example-diagram-detector': {
// name: 'mermaid-example-diagram-detector',
// packageName: 'mermaid-example-diagram',
// file: 'detector.ts',
// },
};
interface BuildOptions {
@@ -63,13 +61,13 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
{
name,
format: 'esm',
sourcemap: true,
sourcemap,
entryFileNames: `${name}.esm${minify ? '.min' : ''}.mjs`,
},
{
name,
format: 'umd',
sourcemap: true,
sourcemap,
entryFileNames: `${name}${minify ? '.min' : ''}.js`,
},
];
@@ -88,7 +86,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
{
name,
format: 'esm',
sourcemap: true,
sourcemap,
entryFileNames: `${name}.core.mjs`,
},
];
@@ -112,18 +110,19 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
},
},
resolve: {
extensions: ['.jison', '.js', '.ts', '.json'],
extensions: [],
},
plugins: [jisonPlugin(), ...visualizerOptions(packageName, core)],
plugins: [
jisonPlugin(),
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
typescript({ compilerOptions: { declaration: false } }),
...visualizerOptions(packageName, core),
],
};
if (watch && config.build) {
config.build.watch = {
include: [
'packages/mermaid-mindmap/src/**',
'packages/mermaid/src/**',
// 'packages/mermaid-example-diagram/src/**',
],
include: ['packages/mermaid-example-diagram/src/**', 'packages/mermaid/src/**'],
};
}
@@ -131,11 +130,9 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
};
const buildPackage = async (entryName: keyof typeof packageOptions) => {
return Promise.allSettled([
build(getBuildConfig({ minify: false, entryName })),
build(getBuildConfig({ minify: 'esbuild', entryName })),
build(getBuildConfig({ minify: false, core: true, entryName })),
]);
await build(getBuildConfig({ minify: false, entryName }));
await build(getBuildConfig({ minify: 'esbuild', entryName }));
await build(getBuildConfig({ minify: false, core: true, entryName }));
};
const main = async () => {
@@ -146,10 +143,9 @@ const main = async () => {
};
if (watch) {
build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' }));
build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
if (!mermaidOnly) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
// build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
}
} else if (visualize) {
await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' }));

View File

@@ -1,14 +1,6 @@
import express, { NextFunction, Request, Response } from 'express';
import express from 'express';
import cors from 'cors';
import { createServer as createViteServer } from 'vite';
// import { getBuildConfig } from './build';
const cors = (req: Request, res: Response, next: NextFunction) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
};
async function createServer() {
const app = express();
@@ -16,14 +8,14 @@ async function createServer() {
// Create Vite server in middleware mode
const vite = await createViteServer({
configFile: './vite.config.ts',
mode: 'production',
server: { middlewareMode: true },
appType: 'custom', // don't include Vite's default HTML handling middlewares
appType: 'custom', // don't include Vite's default HTML handling middleware
});
app.use(cors);
app.use(cors());
app.use(express.static('./packages/mermaid/dist'));
app.use(express.static('./packages/mermaid-example-diagram/dist'));
app.use(express.static('./packages/mermaid-mindmap/dist'));
app.use(vite.middlewares);
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));
@@ -33,5 +25,4 @@ async function createServer() {
});
}
// build(getBuildConfig({ minify: false, watch: true }));
createServer();

View File

@@ -1,6 +1,105 @@
# Change Log
# Changelog
// TODO: Populate changelog
## [10.0.0](https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0)
### Mermaid is ESM only!
We've dropped CJS support. So, you will have to update your import scripts as follows.
```html
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: true });
</script>
```
You can keep using v9 by adding the `@9` in the CDN URL.
```diff
- <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.js"></script>
```
### mermaid.render is async and doesn't accept callbacks
```js
// < v10
mermaid.render('id', 'graph TD;\nA-->B', (svg, bindFunctions) => {
element.innerHTML = svg;
if (bindFunctions) {
bindFunctions(element);
}
});
// Shorter syntax
if (bindFunctions) {
bindFunctions(element);
}
// can be replaced with the `?.` shorthand
bindFunctions?.(element);
// >= v10 with async/await
const { svg, bindFunctions } = await mermaid.render('id', 'graph TD;\nA-->B');
element.innerHTML = svg;
bindFunctions?.(element);
// >= v10 with promise.then
mermaid.render('id', 'graph TD;A-->B').then(({ svg, bindFunctions }) => {
element.innerHTML = svg;
bindFunctions?.(element);
});
```
### mermaid.parse is async and ParseError is removed
```js
// < v10
mermaid.parse(text, parseError);
//>= v10
await mermaid.parse(text).catch(parseError);
// or
try {
await mermaid.parse(text);
} catch (err) {
parseError(err);
}
```
### Init deprecated and InitThrowsErrors removed
The config passed to `init` was not being used eariler.
It will now be used.
The `init` function is deprecated and will be removed in the next major release.
init currently works as a wrapper to `initialize` and `run`.
```js
// < v10
mermaid.init(config, selector, cb);
//>= v10
mermaid.initialize(config);
mermaid.run({
querySelector: selector,
postRenderCallback: cb,
suppressErrors: true,
});
```
```js
// < v10
mermaid.initThrowsErrors(config, selector, cb);
//>= v10
mermaid.initialize(config);
mermaid.run({
querySelector: selector,
postRenderCallback: cb,
suppressErrors: false,
});
```
// TODO: Populate changelog pre v10
- Config has a lot of changes
- globalReset resets to `defaultConfig` instead of current config. Use `reset` instead.

View File

@@ -55,6 +55,8 @@ The documentation is written in **Markdown**. For more information about Markdow
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
@@ -63,6 +65,28 @@ flowchart LR
```
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.
````
```note
Note content
```
```tip
Tip content
```
```warning
Warning content
```
```danger
Danger content
```
````
**_DO NOT CHANGE FILES IN `/docs`_**
### The official documentation site

View File

@@ -1,8 +1,37 @@
# mermaid
<p align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/develop/docs/public/favicon.svg" height="150">
</p>
<h1 align="center">
Mermaid
</h1>
<p align="center">
Generate diagrams from markdown-like text.
<p>
<p align="center">
<a href="https://www.npmjs.com/package/mermaid"><img src="https://img.shields.io/npm/v/mermaid?color=ff3670&label="></a>
<p>
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
<p align="center">
<a href="https://mermaid.live/"><b>Live Editor!</b></a>
</p>
<p align="center">
<a href="https://mermaid.js.org">📖 Documentation</a> | <a href="https://mermaid.js.org/intro/">🚀 Getting Started</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE" title="Slack invite">🙌 Join Us</a>
</p>
<p align="center">
<a href="./README.zh-CN.md">简体中文</a>
</p>
English | [简体中文](./README.zh-CN.md)
<br>
<br>
[![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)
[![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)
[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_)
<img src="./img/header.png" alt="" />
@@ -10,7 +39,7 @@ English | [简体中文](./README.zh-CN.md)
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## About
@@ -27,14 +56,12 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia
Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).<br/>
[Tutorials](./docs/config/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations.md).
You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
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).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md)
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.
<a href="https://applitools.com/">
@@ -199,6 +226,44 @@ pie
### Git graph [experimental - <a href="https://mermaid.live/edit#pako:eNqNkMFugzAMhl8F-VyVAR1tOW_aA-zKxSSGRCMJCk6lCvHuNZPKZdM0n-zf3_8r8QIqaIIGMqnB8kfEybQ--y4VnLP8-9RF9Mpkmm40hmlnDKmvkPiH_kfS7nFo_VN0FAf6XwocQGgxa_nGsm1bYEOOWmik1dRjGrmF1q-Cpkkj07u2HCI0PY4zHQATh8-7V9BwTPSE3iwOEd1OjQE1iWkBvk_bzQY7s0Sq4Hs7bHqKo8iGeZqbPN_WR7mpSd1RHpvPVhuMbG7XOq_L-oJlRfW5wteq0qorrpe-PBW9Pr8UJcK6rg-BLYPQ">live editor</a>]
### Bar chart (using gantt chart) [<a href="https://mermaid-js.github.io/mermaid/#/gantt">docs</a> - <a href="https://mermaid.live/edit#pako:eNptkU1vhCAQhv8KIenNugiI4rkf6bmXpvEyFVxJFDYyNt1u9r8X63Z7WQ9m5pknLzieaBeMpQ3dg0dsPUkPOhwteXZIXmJcbCT3xMAxkuh8Z8kIEclyMIB209fqKcwTICFvG4IvFy_oLrZ-g9F26ILfQgvNFN94VaRXQ1iWqpumZBcu1J8p1E1TXDx59eQNr5LyEqjJn6hv5QnGNlxevZJmdLLpy5xJSzut45biYCfb0iaVxvawjNjS1p-TCguG16PvaIPzYjO67e3BwX6GiTY9jPFKH43DMF_hGMDY1J4oHg-_f8hFTJFd8L3br3yZx4QHxENsdrt1nO8dDstH3oVpF50ZYMbhU6ud4qoGLqyqBJRCmO6j0HXPZdGbihUc6Pmc0QP49xD-b5X69ZQv2gjO81IwzWqhC1lKrjJ6pA3nVS7SMiVjrKirWlYp5fs3osgrWeo00lorLWvOzz8JVbXm">live editor</a>]
```
gantt
title Git Issues - days since last update
dateFormat X
axisFormat %s
section Issue19062
71 : 0, 71
section Issue19401
36 : 0, 36
section Issue193
34 : 0, 34
section Issue7441
9 : 0, 9
section Issue1300
5 : 0, 5
```
```mermaid
gantt
title Git Issues - days since last update
dateFormat X
axisFormat %s
section Issue19062
71 : 0, 71
section Issue19401
36 : 0, 36
section Issue193
34 : 0, 34
section Issue7441
9 : 0, 9
section Issue1300
5 : 0, 5
```
### User Journey diagram [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">docs</a> - <a href="https://mermaid.live/edit#pako:eNplkMFuwjAQRH9l5TMiTVIC-FqqnjhxzWWJN4khsSN7XRSh_HsdKBVt97R6Mzsj-yoqq0hIAXCywRkaSwNxWHNHsB_hYt1ZmwYUfiueKtbWwIcFtjf5zgH2eCZgQgkrCXt64GgMg2fUzkvIn5Xd_V5COtMFvCH_62ht_5yk7MU8sn61HDTfxD8VYiF6cj1qFd94nWkpuKWYKWRcFdUYOi5FaaZoDYNCpnel2Toha-w8LQQGtofRVEKyC_Qw7TQ2DvsfV2dRUTy6Ch6H-UMb7TlGVtbUupl5cF3ELfPgZZLM8rLR3IbjsrJ94rVq0XH7uS2SIis2mOVUrHNc5bmqjul2U2evaa3WL2mGYpqmL2BGiho">live editor</a>]
```

View File

@@ -1,8 +1,37 @@
# mermaid
<p align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/develop/docs/public/favicon.svg" height="150">
</p>
<h1 align="center">
Mermaid
</h1>
<p align="center">
通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。
<p>
<p align="center">
<a href="https://www.npmjs.com/package/mermaid"><img src="https://img.shields.io/npm/v/mermaid?color=ff3670&label="></a>
<p>
[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_)
<p align="center">
<a href="https://mermaid.live/"><b>Live Editor!</b></a>
</p>
<p align="center">
<a href="https://mermaid.js.org">📖 文档</a> | <a href="https://mermaid.js.org/intro/">🚀 入门</a> | <a href="https://www.jsdelivr.com/package/npm/mermaid">🌐 CDN</a> | <a href="https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE" title="Slack invite">🙌 加入我们</a>
</p>
<p align="center">
<a href="./README.md">English</a>
</p>
[English](./README.md) | 简体中文
<br>
<br>
[![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)
[![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)
[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_)
<img src="./img/header.png" alt="" />
@@ -10,7 +39,7 @@
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-pre-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## 关于 Mermaid
@@ -24,12 +53,10 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd
Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。<br/>
<br/>
Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。<br/>
你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
你可以访问 [教程](./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).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md)
<!-- </Main description> -->
## 示例
@@ -325,7 +352,7 @@ _很不幸的是鱼与熊掌不可兼得在这个场景下它意味着在
来自 Knut Sveidqvist:
> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! _ >_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ >_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_
> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库_ > _同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ > _感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_
>
> _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors)没有你们就没有这个项目的今天_

View File

@@ -1,5 +0,0 @@
# A collection of updates that change the behaviour
## Lazy loading and asynchronisity
- Invalid dates are rendered as syntax error instead of returning best guess or the current date

View File

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

View File

@@ -6,6 +6,7 @@
"adamiecki",
"alois",
"antiscript",
"appli",
"applitools",
"asciidoctor",
"ashish",
@@ -13,10 +14,12 @@
"bbox",
"bilkent",
"bisheng",
"blrs",
"braintree",
"brkt",
"brolin",
"brotli",
"città",
"classdef",
"codedoc",
"colour",
@@ -25,12 +28,14 @@
"cuzon",
"cytoscape",
"dagre",
"deepdwn",
"descr",
"docsify",
"docsy",
"doku",
"dompurify",
"edgechromium",
"elkjs",
"faber",
"flatmap",
"ftplugin",
@@ -39,8 +44,10 @@
"gitgraph",
"globby",
"graphlib",
"graphviz",
"grav",
"greywolf",
"huynh",
"inkdrop",
"jaoude",
"jison",
@@ -52,10 +59,13 @@
"knut",
"laganeckas",
"lintstagedrc",
"logmsg",
"lucida",
"matthieu",
"mdast",
"mdbook",
"mermerd",
"micromark",
"mindaugas",
"mindmap",
"mindmaps",
@@ -69,26 +79,32 @@
"pnpm",
"podlite",
"quence",
"radious",
"ranksep",
"rect",
"rects",
"redmine",
"rehype",
"roledescription",
"sandboxed",
"setupgraphviewbox",
"shiki",
"sidharth",
"sidharthv",
"sphinxcontrib",
"statediagram",
"steph",
"stylis",
"substate",
"sveidqvist",
"swimm",
"techn",
"teststr",
"textlength",
"treemap",
"ts-nocheck",
"tuleap",
"ugge",
"unist",
"verdana",
"viewports",

View File

@@ -2,7 +2,7 @@ const utf8ToB64 = (str) => {
return window.btoa(unescape(encodeURIComponent(str)));
};
const batchId = 'mermid-batch' + new Date().getTime();
const batchId = 'mermaid-batch' + new Date().getTime();
export const mermaidUrl = (graphStr, options, api) => {
const obj = {
@@ -22,7 +22,7 @@ export const mermaidUrl = (graphStr, options, api) => {
return url;
};
export const imgSnapshotTest = (graphStr, _options, api = false, validation) => {
export const imgSnapshotTest = (graphStr, _options = {}, api = false, validation = undefined) => {
cy.log(_options);
const options = Object.assign(_options);
if (!options.fontFamily) {
@@ -46,8 +46,22 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) =>
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');
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
@@ -60,82 +74,20 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) =>
});
}
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
if (validation) {
cy.get('svg').should(validation);
}
cy.get('svg');
// Default name to test title
if (useAppli) {
cy.log('Check eyes' + Cypress.spec.name);
cy.eyesCheckWindow('Click!');
cy.log('Closing eyes: ' + Cypress.spec.name);
cy.log('Closing eyes' + Cypress.spec.name);
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
};
export const urlSnapshotTest = (url, _options, api = false, validation) => {
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 useAppli = Cypress.env('useAppli');
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
cy.log('Opening eyes 2' + Cypress.spec.name);
cy.eyesOpen({
appName: 'Mermaid',
testName: name,
batchName: Cypress.spec.name,
batchId: batchId + Cypress.spec.name,
});
}
cy.visit(url);
if (validation) {
cy.get('svg').should(validation);
}
cy.get('body');
// Default name to test title
if (useAppli) {
cy.log('Check eyes 2' + Cypress.spec.name);
cy.eyesCheckWindow('Click!');
cy.log('Closing eyes 2' + Cypress.spec.name);
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
};
export const renderGraph = (graphStr, options, api) => {
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
};

View File

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

View File

@@ -1,9 +1,9 @@
import { urlSnapshotTest } from '../../helpers/util';
import { urlSnapshotTest } from '../../helpers/util.js';
describe('mermaid', () => {
describe('registerDiagram', () => {
it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => {
const url = 'http://localhost:9000/external-diagrams-mindmap.html';
it('should work on @mermaid-js/mermaid-example-diagram', () => {
const url = 'http://localhost:9000/external-diagrams-example-diagram.html';
urlSnapshotTest(url, {}, false, false);
});
});

View File

@@ -1,4 +1,4 @@
import { urlSnapshotTest } from '../../helpers/util';
import { urlSnapshotTest } from '../../helpers/util.js';
describe('CSS injections', () => {
it('should not allow CSS injections outside of the diagram', () => {

View File

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

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Class diagram V2', () => {
it('0: should render a simple class diagram', () => {
imgSnapshotTest(
@@ -13,7 +13,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('1: should render a simple class diagram', () => {
@@ -47,7 +46,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('2: should render a simple class diagrams with cardinality', () => {
@@ -76,7 +74,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('should render a simple class diagram with different visibilities', () => {
@@ -94,7 +91,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('should render multiple class diagrams', () => {
@@ -147,7 +143,6 @@ describe('Class diagram V2', () => {
],
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('4: should render a simple class diagram with comments', () => {
@@ -177,7 +172,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('5: should render a simple class diagram with abstract method', () => {
@@ -189,7 +183,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('6: should render a simple class diagram with static method', () => {
@@ -201,7 +194,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('7: should render a simple class diagram with Generic class', () => {
@@ -221,7 +213,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('8: should render a simple class diagram with Generic class and relations', () => {
@@ -242,7 +233,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('9: should render a simple class diagram with clickable link', () => {
@@ -264,7 +254,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('10: should render a simple class diagram with clickable callback', () => {
@@ -286,7 +275,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('11: should render a simple class diagram with return type on method', () => {
@@ -301,7 +289,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('12: should render a simple class diagram with generic types', () => {
@@ -317,7 +304,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('13: should render a simple class diagram with css classes applied', () => {
@@ -335,7 +321,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('14: should render a simple class diagram with css classes applied directly', () => {
@@ -351,7 +336,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('15: should render a simple class diagram with css classes applied two multiple classes', () => {
@@ -365,7 +349,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('16a: should render a simple class diagram with static field', () => {
@@ -378,7 +361,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('16b: should handle the direction statement with TB', () => {
@@ -403,7 +385,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('18: should handle the direction statement with LR', () => {
@@ -428,7 +409,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('17a: should handle the direction statement with BT', () => {
imgSnapshotTest(
@@ -452,7 +432,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('17b: should handle the direction statement with RL', () => {
imgSnapshotTest(
@@ -476,7 +455,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('18: should render a simple class diagram with notes', () => {
@@ -493,7 +471,6 @@ describe('Class diagram V2', () => {
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('1433: should render a simple class with a title', () => {
@@ -503,8 +480,72 @@ title: simple class diagram
---
classDiagram-v2
class Class10
`,
{}
`
);
});
it('should render a class with text label', () => {
imgSnapshotTest(
`classDiagram
class C1["Class 1 with text label"]
C1 --> C2`
);
});
it('should render two classes with text labels', () => {
imgSnapshotTest(
`classDiagram
class C1["Class 1 with text label"]
class C2["Class 2 with chars @?"]
C1 --> C2`
);
});
it('should render a class with a text label, members and annotation', () => {
imgSnapshotTest(
`classDiagram
class C1["Class 1 with text label"] {
&lt;&lt;interface&gt;&gt;
+member1
}
C1 --> C2`
);
});
it('should render multiple classes with same text labels', () => {
imgSnapshotTest(
`classDiagram
class C1["Class with text label"]
class C2["Class with text label"]
class C3["Class with text label"]
C1 --> C2
C3 ..> C2
`
);
});
it('should render classes with different text labels', () => {
imgSnapshotTest(
`classDiagram
class C1["OneWord"]
class C2["With, Comma"]
class C3["With (Brackets)"]
class C4["With [Brackets]"]
class C5["With {Brackets}"]
class C7["With 1 number"]
class C8["With . period..."]
class C9["With - dash"]
class C10["With _ underscore"]
class C11["With ' single quote"]
class C12["With ~!@#$%^&*()_+=-/?"]
class C13["With Città foreign language"]
`
);
});
it('should render classLabel if class has already been defined earlier', () => {
imgSnapshotTest(
`classDiagram
Animal <|-- Duck
class Duck["Duck with text label"]
`
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Class diagram', () => {
it('1: should render a simple class diagram', () => {
@@ -286,7 +286,7 @@ describe('Class diagram', () => {
cy.get('svg');
});
it('15: should render a simple class diagram with css classes applied two multiple classes', () => {
it('15: should render a simple class diagram with css classes applied to multiple classes', () => {
imgSnapshotTest(
`
classDiagram

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Entity Relationship Diagram', () => {
it('should render a simple ER diagram', () => {
@@ -10,7 +10,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagram with a recursive relationship', () => {
@@ -23,7 +22,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagram with multiple relationships between the same two entities', () => {
@@ -35,7 +33,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render a cyclical ER diagram', () => {
@@ -48,7 +45,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render a not-so-simple ER diagram', () => {
@@ -66,7 +62,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render multiple ER diagrams', () => {
@@ -85,7 +80,6 @@ describe('Entity Relationship Diagram', () => {
],
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagram with blank or empty labels', () => {
@@ -98,7 +92,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagrams when useMaxWidth is true (default)', () => {
@@ -151,7 +144,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ er: { useMaxWidth: false } }
);
cy.get('svg');
});
it('should render entities with and without attributes', () => {
@@ -164,7 +156,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with generic and array attributes', () => {
@@ -179,7 +170,19 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with length in attributes type', () => {
renderGraph(
`
erDiagram
CLUSTER {
varchar(99) name
string(255) description
}
`,
{ logLevel: 1 }
);
});
it('should render entities and attributes with big and small entity names', () => {
@@ -195,7 +198,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with keys', () => {
@@ -214,7 +216,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with comments', () => {
@@ -233,7 +234,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with keys and comments', () => {
@@ -253,7 +253,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with aliases', () => {
@@ -271,7 +270,6 @@ describe('Entity Relationship Diagram', () => {
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('1433: should render a simple ER diagram with a title', () => {

View File

@@ -0,0 +1,45 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('Error Diagrams', () => {
beforeEach(() => {
cy.on('uncaught:exception', (err) => {
expect(err.message).to.include('Parse error');
// return false to prevent the error from
// failing this test
return false;
});
});
it('should render a simple ER diagram', () => {
imgSnapshotTest(
`
error
`,
{ logLevel: 1 }
);
});
it('should render error diagram for actual errors', () => {
imgSnapshotTest(
`
flowchart TD
A[Christmas] --|Get money| B(Go shopping)
`,
{ logLevel: 1 }
);
});
it('should render error for wrong ER diagram', () => {
imgSnapshotTest(
`
erDiagram
ATLAS-ORGANIZATION ||--|{ ATLAS-PROJECTS : "has many"
ATLAS-PROJECTS ||--|{ MONGODB-CLUSTERS : "has many"
ATLAS-PROJECTS ||--|{ ATLAS-TEAMS : "has many"
MONGODB-CLUSTERS ||..|{
ATLAS-TEAMS ||..|{
`,
{ logLevel: 1 }
);
});
});

View File

@@ -0,0 +1,832 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe.skip('Flowchart ELK', () => {
it('1-elk: should render a simple flowchart', () => {
imgSnapshotTest(
`flowchart-elk TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{}
);
imgSnapshotTest(
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { defaultRenderer: 'elk' } }
);
});
it('2-elk: should render a simple flowchart with diagramPadding set to 0', () => {
imgSnapshotTest(
`flowchart-elk TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
%% this is a comment
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { diagramPadding: 0 } }
);
});
it('3-elk: a link with correct arrowhead to a subgraph', () => {
imgSnapshotTest(
`flowchart-elk TD
P1
P1 -->P1.5
subgraph P1.5
P2
P2.5(( A ))
P3
end
P2 --> P4
P3 --> P6
P1.5 --> P5
`,
{}
);
});
it('4-elk: Length of edges', () => {
imgSnapshotTest(
`flowchart-elk TD
L1 --- L2
L2 --- C
M1 ---> C
R1 .-> R2
R2 <.-> C
C -->|Label 1| E1
C <-- Label 2 ---> E2
C ----> E3
C <-...-> E4
C ======> E5
`,
{}
);
});
it('5-elk: should render escaped without html labels', () => {
imgSnapshotTest(
`flowchart-elk TD
a["<strong>Haiya</strong>"]---->b
`,
{ htmlLabels: false, flowchart: { htmlLabels: false } }
);
});
it('6-elk: should render non-escaped with html labels', () => {
imgSnapshotTest(
`flowchart-elk TD
a["<strong>Haiya</strong>"]===>b
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('7-elk: should render a flowchart when useMaxWidth is true (default)', () => {
renderGraph(
`flowchart-elk TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
// expect(svg).to.have.attr('height');
// use within because the absolute value can be slightly different depending on the environment ±5%
// const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(230 * 0.95, 230 * 1.05);
});
});
it('8-elk: should render a flowchart when useMaxWidth is false', () => {
renderGraph(
`flowchart-elk TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
// const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
expect(width).to.be.within(230 * 0.95, 230 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
it('V2 elk - 16: Render Stadium shape', () => {
imgSnapshotTest(
` flowchart-elk TD
A([stadium shape test])
A -->|Get money| B([Go shopping])
B --> C([Let me think...<br />Do I want something for work,<br />something to spend every free second with,<br />or something to get around?])
C -->|One| D([Laptop])
C -->|Two| E([iPhone])
C -->|Three| F([Car<br/>wroom wroom])
click A "index.html#link-clicked" "link test"
click B testClick "click test"
classDef someclass fill:#f96;
class A someclass;
class C someclass;
`,
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
it('50-elk: handle nested subgraphs in reverse order', () => {
imgSnapshotTest(
`flowchart-elk LR
a -->b
subgraph A
B
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('51-elk: handle nested subgraphs in reverse order', () => {
imgSnapshotTest(
`flowchart-elk LR
a -->b
subgraph A
B
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('52-elk: handle nested subgraphs in several levels', () => {
imgSnapshotTest(
`flowchart-elk TB
b-->B
a-->c
subgraph O
A
end
subgraph B
c
end
subgraph A
a
b
B
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('53-elk: handle nested subgraphs with edges in and out', () => {
imgSnapshotTest(
`flowchart-elk TB
internet
nat
routeur
lb1
lb2
compute1
compute2
subgraph project
routeur
nat
subgraph subnet1
compute1
lb1
end
subgraph subnet2
compute2
lb2
end
end
internet --> routeur
routeur --> subnet1 & subnet2
subnet1 & subnet2 --> nat --> internet
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('54-elk: handle nested subgraphs with outgoing links', () => {
imgSnapshotTest(
`flowchart-elk TD
subgraph main
subgraph subcontainer
subcontainer-child
end
subcontainer-child--> subcontainer-sibling
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('55-elk: handle nested subgraphs with outgoing links 2', () => {
imgSnapshotTest(
`flowchart-elk TD
subgraph one[One]
subgraph sub_one[Sub One]
_sub_one
end
subgraph sub_two[Sub Two]
_sub_two
end
_one
end
%% here, either the first or the second one
sub_one --> sub_two
_one --> b
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('56-elk: handle nested subgraphs with outgoing links 3', () => {
imgSnapshotTest(
`flowchart-elk TB
subgraph container_Beta
process_C-->Process_D
end
subgraph container_Alpha
process_A-->process_B
process_A-->|messages|process_C
end
process_B-->|via_AWSBatch|container_Beta
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57-elk: handle nested subgraphs with outgoing links 4', () => {
imgSnapshotTest(
`flowchart-elk LR
subgraph A
a -->b
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57-elk: handle nested subgraphs with outgoing links 2', () => {
imgSnapshotTest(
`flowchart-elk TB
c1-->a2
subgraph one
a1-->a2
end
subgraph two
b1-->b2
end
subgraph three
c1-->c2
end
one --> two
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57.x: handle nested subgraphs with outgoing links 5', () => {
imgSnapshotTest(
`%% this does not produce the desired result
flowchart-elk TB
subgraph container_Beta
process_C-->Process_D
end
subgraph container_Alpha
process_A-->process_B
process_B-->|via_AWSBatch|container_Beta
process_A-->|messages|process_C
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('58-elk: handle styling with style expressions', () => {
imgSnapshotTest(
`
flowchart-elk LR
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('59-elk: handle styling of subgraphs and links', () => {
imgSnapshotTest(
`
flowchart-elk TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
subgraph T ["Test"]
A
B
C
end
classDef Test fill:#F84E68,stroke:#333,color:white;
class A,T Test
classDef TestSub fill:green;
class T TestSub
linkStyle 0,1 color:orange, stroke: orange;
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('60-elk: handle styling for all node shapes - v2', () => {
imgSnapshotTest(
`
flowchart-elk LR
A[red text] -->|default style| B(blue text)
C([red text]) -->|default style| D[[blue text]]
E[(red text)] -->|default style| F((blue text))
G>red text] -->|default style| H{blue text}
I{{red text}} -->|default style| J[/blue text/]
K[\\ red text\\] -->|default style| L[/blue text\\]
M[\\ red text/] -->|default style| N[blue text];
O(((red text))) -->|default style| P(((blue text)));
linkStyle default color:Sienna;
style A stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style B stroke:#0000ff,fill:#ccccff,color:#0000ff;
style C stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style D stroke:#0000ff,fill:#ccccff,color:#0000ff;
style E stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style F stroke:#0000ff,fill:#ccccff,color:#0000ff;
style G stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style H stroke:#0000ff,fill:#ccccff,color:#0000ff;
style I stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style J stroke:#0000ff,fill:#ccccff,color:#0000ff;
style K stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style L stroke:#0000ff,fill:#ccccff,color:#0000ff;
style M stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style N stroke:#0000ff,fill:#ccccff,color:#0000ff;
style O stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style P stroke:#0000ff,fill:#ccccff,color:#0000ff;
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose', logLevel: 2 }
);
});
it('61-elk: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
flowchart-elk TD
C -->|fa:fa-car Car| F[fa:fa-car Car]
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('62-elk: should render styled subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk TB
A
B
subgraph foo[Foo SubGraph]
C
D
end
subgraph bar[Bar SubGraph]
E
F
end
G
A-->B
B-->C
C-->D
B-->D
D-->E
E-->A
E-->F
F-->D
F-->G
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('63-elk: title on subgraphs should be themable', () => {
imgSnapshotTest(
`
%%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%
flowchart-elk LR
subgraph A
a --> b
end
subgraph B
i -->f
end
A --> B
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65-elk: text-color from classes', () => {
imgSnapshotTest(
`
flowchart-elk LR
classDef dark fill:#000,stroke:#000,stroke-width:4px,color:#fff
Lorem --> Ipsum --> Dolor
class Lorem,Dolor dark
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('66-elk: More nested subgraph cases (TB)', () => {
imgSnapshotTest(
`
flowchart-elk TB
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('67-elk: More nested subgraph cases (RL)', () => {
imgSnapshotTest(
`
flowchart-elk RL
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('68-elk: More nested subgraph cases (BT)', () => {
imgSnapshotTest(
`
flowchart-elk BT
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('69-elk: More nested subgraph cases (LR)', () => {
imgSnapshotTest(
`
flowchart-elk LR
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('70-elk: Handle nested subgraph cases (TB) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk TB
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('71-elk: Handle nested subgraph cases (RL) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk RL
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('72-elk: Handle nested subgraph cases (BT) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk BT
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('74-elk: Handle nested subgraph cases (RL) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk RL
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('74-elk: Handle labels for multiple edges from and to the same couple of nodes', () => {
imgSnapshotTest(
`
flowchart-elk RL
subgraph one
a1 -- l1 --> a2
a1 -- l2 --> a2
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('76-elk: handle unicode encoded character with HTML labels true', () => {
imgSnapshotTest(
`flowchart-elk TB
a{{"Lorem 'ipsum' dolor 'sit' amet, 'consectetur' adipiscing 'elit'."}}
--> b{{"Lorem #quot;ipsum#quot; dolor #quot;sit#quot; amet,#quot;consectetur#quot; adipiscing #quot;elit#quot;."}}
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('2050-elk: handling of different rendering direction in subgraphs', () => {
imgSnapshotTest(
`
flowchart-elk LR
subgraph TOP
direction TB
subgraph B1
direction RL
i1 -->f1
end
subgraph B2
direction BT
i2 -->f2
end
end
A --> TOP --> B
B1 --> B2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('2388-elk: handling default in the node name', () => {
imgSnapshotTest(
`
flowchart-elk LR
default-index.js --> dot.template.js
index.js --> module-utl.js
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('2824-elk: Clipping of edges', () => {
imgSnapshotTest(
`
flowchart-elk TD
A --> B
A --> C
B --> C
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('1433-elk: should render a titled flowchart with titleTopMargin set to 0', () => {
imgSnapshotTest(
`---
title: Simple flowchart
---
flowchart-elk TD
A --> B
`,
{ titleTopMargin: 0 }
);
});
describe('Markdown strings flowchart-elk (#4220)', () => {
describe('html labels', () => {
it('With styling and classes', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart-elk LR
A:::someclass --> B["\`The **cat** in the hat\`"]:::someclass
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
);
});
it('With formatting in a node', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart-elk LR
a{"\`The **cat** in the hat\`"} -- 1o --> b
a -- 2o --> c
a -- 3o --> d
g --2i--> a
d --1i--> a
h --3i -->a
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
);
});
it('New line in node and formatted edge label', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart-elk LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
);
});
it('Wrapping long text with a new line', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart-elk LR
b(\`The dog in **the** hog.(1).. a a a a *very long text* about it
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 }
);
});
it('Sub graphs and markdown strings', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart-elk LR
subgraph "One"
a("\`The **cat**
in the hat\`") -- "1o" --> b{{"\`The **dog** in the hog\`"}}
end
subgraph "\`**Two**\`"
c("\`The **cat**
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
end
`,
{ titleTopMargin: 0 }
);
});
});
describe('svg text labels', () => {
it('With styling and classes', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart-elk LR
A:::someclass --> B["\`The **cat** in the hat\`"]:::someclass
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
);
});
it('With formatting in a node', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart-elk LR
a{"\`The **cat** in the hat\`"} -- 1o --> b
a -- 2o --> c
a -- 3o --> d
g --2i--> a
d --1i--> a
h --3i -->a
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
);
});
it('New line in node and formatted edge label', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart-elk LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
);
});
it('Wrapping long text with a new line', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart-elk LR
b("\`The dog in **the** hog.(1).. a a a a *very long text* about it
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 }
);
});
it('Sub graphs and markdown strings', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart-elk LR
subgraph "One"
a("\`The **cat**
in the hat\`") -- "1o" --> b{{"\`The **dog** in the hog\`"}}
end
subgraph "\`**Two**\`"
c("\`The **cat**
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
end
`,
{ titleTopMargin: 0 }
);
});
});
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Flowchart v2', () => {
it('1: should render a simple flowchart', () => {
@@ -674,4 +674,170 @@ A --> B
{ titleTopMargin: 0 }
);
});
it('3192: It should be possieble to render flowcharts with invisible edges', () => {
imgSnapshotTest(
`---
title: Simple flowchart with invisible edges
---
flowchart TD
A ~~~ B
`,
{ titleTopMargin: 0 }
);
});
it('4023: Should render html labels with images and-or text correctly', () => {
imgSnapshotTest(
`flowchart TD
B[<img src='https://mermaid.js.org/mermaid-logo.svg'>]
B-->C[<img src="https://mermaid.js.org/mermaid-logo.svg"> more text <img src='https://mermaid.js.org/mermaid-logo.svg'>]
B-->D(<img src='https://mermaid.js.org/mermaid-logo.svg'> some text)
B-->E(plain)`,
{}
);
});
describe('Markdown strings flowchart (#4220)', () => {
describe('html labels', () => {
it('With styling and classes', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart LR
A:::someclass --> B["\`The **cat** in the hat\`"]:::someclass
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
);
});
it('With formatting in a node', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart LR
a{"\`The **cat** in the hat\`"} -- 1o --> b
a -- 2o --> c
a -- 3o --> d
g --2i--> a
d --1i--> a
h --3i -->a
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
);
});
it('New line in node and formatted edge label', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
);
});
it('Wrapping long text with a new line', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart LR
b("\`The dog in **the** hog.(1).. a a a a *very long text* about it
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 }
);
});
it('Sub graphs and markdown strings', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart LR
subgraph "One"
a("\`The **cat**
in the hat\`") -- "1o" --> b{{"\`The **dog** in the hog\`"}}
end
subgraph "\`**Two**\`"
c("\`The **cat**
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
end
`,
{ titleTopMargin: 0 }
);
});
});
describe('svg text labels', () => {
it('With styling and classes', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
A:::someclass --> B["\`The **cat** in the hat\`"]:::someclass
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef someclass fill:#f96
`,
{ titleTopMargin: 0 }
);
});
it('With formatting in a node', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
a{"\`The **cat** in the hat\`"} -- 1o --> b
a -- 2o --> c
a -- 3o --> d
g --2i--> a
d --1i--> a
h --3i -->a
b --> d(The dog in the hog)
c --> d
`,
{ titleTopMargin: 0 }
);
});
it('New line in node and formatted edge label', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
b("\`The dog in **the** hog.(1)
NL\`") --"\`1o **bold**\`"--> c
`,
{ titleTopMargin: 0 }
);
});
it('Wrapping long text with a new line', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
b("\`The dog in **the** hog.(1).. a a a a *very long text* about it
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 }
);
});
it('Sub graphs and markdown strings', () => {
imgSnapshotTest(
`%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
subgraph "One"
a("\`The **cat**
in the hat\`") -- "1o" --> b{{"\`The **dog** in the hog\`"}}
end
subgraph "\`**Two**\`"
c("\`The **cat**
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
end
`,
{ titleTopMargin: 0 }
);
});
});
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Graph', () => {
it('1: should render a simple flowchart no htmlLabels', () => {

View File

@@ -133,6 +133,24 @@ describe('Gantt diagram', () => {
);
});
it('should default to showing today marker', () => {
// This test only works if the environment thinks today is 1010-10-10
imgSnapshotTest(
`
gantt
title Show today marker (vertical line should be visible)
dateFormat YYYY-MM-DD
axisFormat %d
%% Should default to being on
%% todayMarker on
section Section1
Yesterday: 1010-10-09, 1d
Today: 1010-10-10, 1d
`,
{}
);
});
it('should hide today marker', () => {
imgSnapshotTest(
`
@@ -142,7 +160,8 @@ describe('Gantt diagram', () => {
axisFormat %d
todayMarker off
section Section1
Today: 1, -1h
Yesterday: 1010-10-09, 1d
Today: 1010-10-10, 1d
`,
{}
);
@@ -157,7 +176,8 @@ describe('Gantt diagram', () => {
axisFormat %d
todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
section Section1
Today: 1, -1h
Yesterday: 1010-10-09, 1d
Today: 1010-10-10, 1d
`,
{}
);
@@ -435,4 +455,39 @@ describe('Gantt diagram', () => {
{ gantt: { topAxis: true } }
);
});
it('should render when compact is true', () => {
imgSnapshotTest(
`
---
displayMode: compact
---
gantt
title GANTT compact
dateFormat HH:mm:ss
axisFormat %Hh%M
section DB Clean
Clean: 12:00:00, 10m
Clean: 12:30:00, 12m
Clean: 13:00:00, 8m
Clean: 13:30:00, 9m
Clean: 14:00:00, 13m
Clean: 14:30:00, 10m
Clean: 15:00:00, 11m
section Sessions
A: 12:00:00, 63m
B: 12:30:00, 12m
C: 13:05:00, 12m
D: 13:06:00, 33m
E: 13:15:00, 55m
F: 13:20:00, 12m
G: 13:32:00, 18m
H: 13:50:00, 20m
I: 14:10:00, 10m
`,
{}
);
});
});

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
import { imgSnapshotTest } from '../../helpers/util.js';
/**
* Check whether the SVG Element has a Mindmap root
@@ -158,7 +158,6 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('rounded rect shape', () => {
imgSnapshotTest(
@@ -172,7 +171,6 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('circle shape', () => {
imgSnapshotTest(
@@ -186,7 +184,6 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('default shape', () => {
imgSnapshotTest(
@@ -198,7 +195,6 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('adding children', () => {
imgSnapshotTest(
@@ -212,7 +208,6 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
it('adding grand children', () => {
imgSnapshotTest(
@@ -227,7 +222,19 @@ mindmap
undefined,
shouldHaveRoot
);
cy.get('svg');
});
describe('Markdown strings mindmaps (#4220)', () => {
it('Formatted label with linebreak and a wrapping label and emojis', () => {
imgSnapshotTest(
`mindmap
id1[\`**Start** with
a second line 😎\`]
id2[\`The dog in **the** hog... a *very long text* about it
Word!\`]
`,
{ titleTopMargin: 0 }
);
});
});
/* The end */
});

View File

@@ -75,4 +75,15 @@ describe('Pie Chart', () => {
expect(svg).to.not.have.attr('style');
});
});
it('should render a pie diagram when textPosition is set', () => {
imgSnapshotTest(
`
pie
"Dogs": 50
"Cats": 25
`,
{ logLevel: 1, pie: { textPosition: 0.9 } }
);
cy.get('svg');
});
});

View File

@@ -1,8 +1,44 @@
/// <reference types="Cypress" />
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
context('Sequence diagram', () => {
it('should render a sequence diagram with boxes', () => {
renderGraph(
`
sequenceDiagram
box LightGrey Alice and Bob
participant Alice
participant Bob
end
participant John as John<br/>Second Line
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
Bob-->Alice: Checking with John...
alt either this
Alice->>John: Yes
else or this
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
`,
{ sequence: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const width = parseFloat(svg.attr('width'));
expect(width).to.be.within(830 * 0.95, 830 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
it('should render a simple sequence diagram', () => {
imgSnapshotTest(
`
@@ -80,7 +116,11 @@ context('Sequence diagram', () => {
loop Loopy
Bob->>Alice: Pasten
end `,
{ wrap: true }
{
sequence: {
wrap: true,
},
}
);
});
context('font settings', () => {

View File

@@ -1,4 +1,4 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('State diagram', () => {
it('v2 should render a simple info', () => {
@@ -530,7 +530,7 @@ stateDiagram-v2
[*] --> A
A --> B: test({ foo#colon; 'far' })
B --> [*]
classDef badBadEvent fill:#f00,color:white,font-weight:bold
classDef badBadEvent fill:#f00,color:white,font-weight:bold
class B badBadEvent
`,
{ logLevel: 0, fontFamily: 'courier' }
@@ -543,14 +543,14 @@ stateDiagram-v2
classDef notMoving fill:white
classDef movement font-style:italic;
classDef badBadEvent fill:#f00,color:white,font-weight:bold
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
class Still notMoving
class Moving, Crash movement
class Crash badBadEvent

View File

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

View File

@@ -0,0 +1,164 @@
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Timeline diagram', () => {
it('1: should render a simple timeline with no specific sections', () => {
imgSnapshotTest(
`timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
`,
{}
);
});
it('2: should render a timeline diagram with sections', () => {
imgSnapshotTest(
`timeline
title Timeline of Industrial Revolution
section 17th-20th century
Industry 1.0 : Machinery, Water power, Steam <br>power
Industry 2.0 : Electricity, Internal combustion engine, Mass production
Industry 3.0 : Electronics, Computers, Automation
section 21st century
Industry 4.0 : Internet, Robotics, Internet of Things
Industry 5.0 : Artificial intelligence, Big data,3D printing
`,
{}
);
});
it('3: should render a complex timeline with sections, and long events text with <br>', () => {
imgSnapshotTest(
`timeline
title England's History Timeline
section Stone Age
7600 BC : Britain's oldest known house was built in Orkney, Scotland
6000 BC : Sea levels rise and Britain becomes an island.<br> The people who live here are hunter-gatherers.
section Broze Age
2300 BC : People arrive from Europe and settle in Britain. <br>They bring farming and metalworking.
: New styles of pottery and ways of burying the dead appear.
2200 BC : The last major building works are completed at Stonehenge.<br> People now bury their dead in stone circles.
: The first metal objects are made in Britain.Some other nice things happen. it is a good time to be alive.
`,
{}
);
});
it('4: should render a simple timeline with directives and disableMultiColor:true ', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'base', 'timeline': {'disableMulticolor': true}}}%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
`,
{}
);
});
it('5: should render a simple timeline with directive overriden colors', () => {
imgSnapshotTest(
` %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
'cScale0': '#ff0000',
'cScale1': '#00ff00',
'cScale2': '#0000ff'
} } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
it('6: should render a simple timeline in base theme', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
it('7: should render a simple timeline in default theme', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
it('8: should render a simple timeline in dark theme', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
it('9: should render a simple timeline in neutral theme', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
it('10: should render a simple timeline in forest theme', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
`,
{}
);
});
});

View File

@@ -0,0 +1,231 @@
<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://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<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; */
background-color: #eee;
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
}
.malware {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<pre id="diagram" class="mermaid2">
timeline
title My day
section section with no tasks
section Go to work at the dog office
1930 : first step : second step is a long step
: third step
1940 : fourth step : fifth step
section Go home
1950 : India got independent and already won war against Pakistan
1960 : India fights poverty, looses war to China and gets nuclear weapons from USA and USSR
1970 : Green Revolution comes to india
section Another section with no tasks
I am a big big big tasks
I am not so big tasks
</pre>
<pre id="diagram" class="mermaid">
timeline
title MermaidChart 2023 Timeline
section 2023 Q1 <br> Release Personal Tier
Buttet 1 : sub-point 1a : sub-point 1b
: sub-point 1c
Bullet 2 : sub-point 2a : sub-point 2b
section 2023 Q2 <br> Release XYZ Tier
Buttet 3 : sub-point <br> 3a : sub-point 3b
: sub-point 3c
Bullet 4 : sub-point 4a : sub-point 4b
</pre>
<pre id="diagram" class="mermaid">
timeline
title England's History Timeline
section Stone Age
7600 BC : Britain's oldest known house was built in Orkney, Scotland
6000 BC : Sea levels rise and Britain becomes an island. The people who live here are hunter-gatherers.
section Broze Age
2300 BC : People arrive from Europe and settle in Britain. They bring farming and metalworking.
: New styles of pottery and ways of burying the dead appear.
2200 BC : The last major building works are completed at Stonehenge. People now bury their dead in stone circles.
: The first metal objects are made in Britain.Some other nice things happen. it is a good time to be alive.
</pre>
<pre id="diagram" class="mermaid2">
%%{'init': { 'logLevel': 'debug', 'theme': 'default', 'timeline': {'disableMulticolor':false} } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google : Pixar
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008s : Instagram
2010 : Pinterest
</pre>
<pre id="diagram" class="mermaid2">
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'themeVariables': {
'cScale0': '#ff0000',
'cScale1': '#00ff00',
'cScale2': '#ff0000'
} } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google : Pixar
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008s : Instagram
2010 : Pinterest
</pre>
<pre id="diagram" class="mermaid2">
%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
'cScale0': '#ff0000',
'cScale1': '#00ff00',
'cScale2': '#0000ff'
} } }%%
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
2010 : Pinterest
</pre>
<pre id="diagram" class="mermaid2">
timeline
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2006 : Twitter
2007 : Tumblr
2008s : Instagram
2010 : Pinterest
</pre>
<pre id="diagram" class="mermaid2">
mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
</pre>
<pre id="diagram" class="mermaid2">
flowchart-elk TB
a --> b
a --> c
b --> d
c --> d
</pre>
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<script type="module">
//import mindmap from '../../packages/mermaid-mindmap/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
// import timeline from '../../packages/mermaid-timeline/src/detector';
import mermaid from './mermaid.esm.mjs';
// await mermaid.registerExternalDiagrams([]);
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'base',
startOnLoad: true,
logLevel: 0,
flowchart: {
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
timeline: {
disableMulticolor: false,
htmlLabels: false,
},
useMaxWidth: true,
lazyLoadedDiagrams: [
// './mermaid-mindmap-detector.esm.mjs',
// './mermaid-example-diagram-detector.esm.mjs',
//'./mermaid-timeline-detector.esm.mjs',
],
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
</script>
</body>
</html>

View File

@@ -1,4 +1,5 @@
import mermaid from '../../packages/mermaid/src/mermaid';
// TODO: this file should be testing the ./mermaid.core.mjs file, as that's the file listed in the package.json file that users will use
import mermaid from './mermaid.esm.mjs';
let code = `flowchart LR
Power_Supply --> Transmitter_A
@@ -49,13 +50,9 @@ mermaid.initialize({
],
},
});
mermaid.render(
'the-id-of-the-svg',
code,
(svg) => {
console.log(svg);
const elem = document.querySelector('#graph-to-be');
elem.innerHTML = svg;
}
// ,document.querySelector('#tmp')
);
void (async () => {
const { svg } = await mermaid.render('the-id-of-the-svg', code);
console.log(svg);
const elem = document.querySelector('#graph-to-be');
elem.innerHTML = svg;
})();

View File

@@ -12,7 +12,6 @@
<style>
body {
background: rgb(221, 208, 208);
/*background:#333;*/
font-family: 'Arial';
}
h1 {
@@ -46,13 +45,9 @@
<pre class="mermaid" style="width: 100%; height: 20%">
%%{init: {'theme': 'base', 'fontFamily': 'courier', 'themeVariables': { 'primaryColor': '#fff000'}}}%%
classDiagram-v2
class BankAccount{
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
}
cssClass "BankAccount" customCss
classA <|-- classB : implements
classC *-- classD : composition
classE o-- classF : aggregation
</pre>
<pre class="mermaid2" style="width: 100%; height: 20%">
%%{init: {'theme': 'base', 'fontFamily': 'courier', 'themeVariables': { 'primaryColor': '#fff000'}}}%%
@@ -117,24 +112,16 @@
callback Shape "callbackFunction" "This is a tooltip for a callback"
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'default',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'linear', htmlLabels: true },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"arial", sans-serif',
// themeVariables: {
// fontFamily: '"arial", sans-serif',
// },
curve: 'linear',
securityLevel: 'loose',
});

View File

@@ -125,7 +125,6 @@
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
function clickByFlow(elemName) {
const div = document.createElement('div');
@@ -162,6 +161,9 @@
document.getElementsByTagName('body')[0].appendChild(div);
}
</script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({ startOnLoad: true, securityLevel: 'loose', logLevel: 1 });
</script>
</body>

View File

@@ -59,8 +59,8 @@
Add another diagram to demo page : 48h
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function clickByFlow(elemName) {
const div = document.createElement('div');
div.className = 'created-by-click';

View File

@@ -125,8 +125,8 @@
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function clickByFlow(elemName) {
const div = document.createElement('div');
div.className = 'created-by-click';

View File

@@ -61,8 +61,8 @@
Add another diagram to demo page : 48h
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function clickByFlow(elemName) {
const div = document.createElement('div');
div.className = 'created-by-click';

View File

@@ -28,8 +28,8 @@
end
A --> B
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function showFullFirstSquad(elemName) {
console.log('show ' + elemName);
}

View File

@@ -107,8 +107,8 @@ Note over Alice,Bob: Looks
Note over Bob,Alice: Looks back
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -1,32 +1,12 @@
<html>
<head>
<meta charset="utf-8" />
<!-- <meta charset="iso-8859-15"/> -->
<script src="./viewer.js" type="module"></script>
<!-- <link href="https://fonts.googleapis.com/css?family=Mansalva&display=swap" rel="stylesheet" /> -->
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<style>
body {
/* font-family: 'Mansalva', cursive;*/
/* font-family: 'Mansalva', cursive; */
/* font-family: 'arial'; */
/* font-family: "trebuchet ms", verdana, arial; */
}
/* div {
font-family: 'arial';
} */
/* .mermaid-main-font {
font-family: "trebuchet ms", verdana, arial;
font-family: var(--mermaid-font-family);
} */
/* :root {
--mermaid-font-family: '"trebuchet ms", verdana, arial';
--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive;
--mermaid-font-family: '"Lucida Console", Monaco, monospace';
} */
svg {
border: 2px solid darkred;
}
@@ -36,21 +16,5 @@
}
</style>
</head>
<body>
<!-- <script src="./mermaid.js"></script> -->
<script>
// Notice startOnLoad=false
// This prevents default handling in mermaid from render before the e2e logic is applied
// mermaid.initialize({
// startOnLoad: false,
// useMaxWidth: true,
// // "themeCSS": ":root { --mermaid-font-family: \"trebuchet ms\", verdana, arial;}",
// // fontFamily: '\"trebuchet ms\", verdana, arial;'
// // fontFamily: '"Comic Sans MS", "Comic Sans", cursive'
// // fontFamily: '"Mansalva", cursive',
// // fontFamily: '"Noto Sans SC", sans-serif'
// fontFamily: '"Noto Sans SC", sans-serif'
// });
</script>
</body>
<body></body>
</html>

View File

@@ -2,34 +2,8 @@
<body>
<h1>Should correctly load a third-party diagram using registerDiagram</h1>
<pre id="diagram" class="mermaid">
mindmap
root
A
B
C
D
E
A2
B2
C2
D2
E2
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
example-diagram
</pre>
<!-- <pre id="diagram" class="mermaid2">
example-diagram
</pre> -->
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
@@ -37,13 +11,16 @@ mindmap
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<!-- <script type="module" src="./external-diagrams-mindmap.mjs" /> -->
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
import exampleDiagram from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
import mermaid from './mermaid.esm.mjs';
await mermaid.registerExternalDiagrams([mindmap]);
await mermaid.registerExternalDiagrams([exampleDiagram]);
await mermaid.initialize({ logLevel: 0 });
await mermaid.initThrowsErrorsAsync();
await mermaid.run();
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -29,8 +29,8 @@
click a_a "http://www.aftonbladet.se" "apa"
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',

View File

@@ -0,0 +1,46 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
body {
font-family: 'trebuchet ms', verdana, arial;
}
</style>
</head>
<body>
<pre class="mermaid">
graph TB
subgraph One
a1-->a2-->a3
end
</pre>
<pre class="mermaid">
graph TB
a_a --> b_b:::apa --> c_c:::apa
classDef apa fill:#f9f,stroke:#333,stroke-width:4px;
class a_a apa;
</pre>
<pre class="mermaid">
graph TB
a_a(Aftonbladet) --> b_b[gorilla]:::apa --> c_c{chimp}:::apa -->a_a
a_a --> c --> d_d --> c_c
classDef apa fill:#f9f,stroke:#333,stroke-width:4px;
class a_a apa;
click a_a "http://www.aftonbladet.se" "apa"
</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

@@ -8,19 +8,22 @@
</div>
<svg id="diagram"></svg>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({ startOnLoad: false, logLevel: 0 });
const graph = `
%%{ init: { "themeVariables" : { "textColor": "green;} #target { background-color: crimson }", "mainBkg": "#fff000" } } }%%
graph TD
A[Goose]
`;
%%{ init: { "themeVariables" : { "textColor": "green;} #target { background-color: crimson }", "mainBkg": "#fff000" } } }%%
graph TD
A[Goose]
`;
const diagram = document.getElementById('diagram');
const svg = mermaid.render('diagram-svg', graph);
const { svg } = await mermaid.render('diagram-svg', graph);
diagram.innerHTML = svg;
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -8,8 +8,8 @@
</div>
<svg id="diagram"></svg>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({ startOnLoad: false, logLevel: 0 });
const graph = `
@@ -19,8 +19,11 @@
`;
const diagram = document.getElementById('diagram');
const svg = mermaid.render('diagram-svg', graph);
const { svg } = await mermaid.render('diagram-svg', graph);
diagram.innerHTML = svg;
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -91,10 +91,11 @@
diagram += 'le> * { background : red}</style>test</p>"]';
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
document.querySelector('#res').innerHTML = svg;
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -43,8 +43,8 @@
cssClass "BankAccount" customCss
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -130,8 +130,8 @@
commit
merge main
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -98,8 +98,8 @@
commit
merge main
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

File diff suppressed because one or more lines are too long

View File

@@ -7,8 +7,8 @@
<pre class="mermaid">
info
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',

View File

@@ -87,8 +87,8 @@
Add another diagram to demo page : 48h
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function clickByFlow(elemName) {
const div = document.createElement('div');
div.className = 'created-by-click';

View File

@@ -29,9 +29,9 @@
}
.mermaid svg {
/* font-size: 18px !important; */
background-color: #eee;
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-color: #efefef;
background-image: radial-gradient(#fff 51%, transparent 91%),
radial-gradient(#fff 51%, transparent 91%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
@@ -51,42 +51,338 @@
font-family: monospace;
font-size: 72px;
}
/* tspan {
font-size: 6px !important;
} */
</style>
</head>
<body>
<div>Security check</div>
<pre id="diagram" class="mermaid">
flowchart LR
%% Actors
A
subgraph Sub
B --> C
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*] </pre
>
<pre id="diagram" class="mermaid2">
flowchart RL
subgraph "`one`"
a1 -- l1 --> a2
a1 -- l2 --> a2
end
%% Accusations
A --L --> Sub
%% Offense
B --> A
</pre>
<pre id="diagram" class="mermaid">
stateDiagram-v2
[*] --> S1
S1 --> S2: long line using<br/>should work
S1 --> S3: long line using <br>should work
S1 --> S4: long line using \\nshould work
flowchart RL
subgraph "`one`"
a1 -- l1 --> a2
a1 -- l2 --> a2
end
</pre>
<pre id="diagram" class="mermaid2">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)
dateFormat YYYY-MM-DD
axisFormat %d
todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
section Section1
Today: 1, -1h
flowchart
id["`A root with a long text that wraps to keep the node size in check. A root with a long text that wraps to keep the node size in check`"]</pre
>
<pre id="diagram" class="mermaid2">
flowchart LR
A[A text that needs to be wrapped wraps to another line]
B[A text that needs to be<br/>wrapped wraps to another line]
C["`A text that needs to be wrapped to another line`"]</pre>
<pre id="diagram" class="mermaid2">
flowchart LR
C["`A text
that needs
to be wrapped
in another
way`"]
</pre
>
<pre id="diagram" class="mermaid">
classDiagram-v2
note "I love this diagram!\nDo you love it?"
</pre>
<pre id="diagram" class="mermaid">
stateDiagram-v2
State1: The state with a note with minus - and plus + in it
note left of State1
Important information! You can write
notes with . and in them.
end note </pre
>
<pre id="diagram" class="mermaid2">
mindmap
root
Child3(A node with an icon and with a long text that wraps to keep the node size in check)
</pre
>
<pre id="diagram" class="mermaid2">
%%{init: {"theme": "forest"} }%%
mindmap
id1[**Start2**<br/>end]
id2[**Start2**<br />end]
%% Another comment
id3[**Start2**<br>end] %% Comment
id4[**Start2**<br >end<br >the very end]
</pre>
<pre id="diagram" class="mermaid2">
mindmap
id1["`**Start2**
second line 😎 with long text that is wrapping to the next line`"]
id2["`Child **with bold** text`"]
id3["`Children of which some
is using *italic type of* text`"]
id4[Child]
id5["`Child
Row
and another
`"]
</pre>
<pre id="diagram" class="mermaid2">
mindmap
id1("`**Root**`"]
id2["`A formatted text... with **bold** and *italics*`"]
id3[Regular labels works as usual]
id4["`Emojis and unicode works too: 🤓
शान्तिः سلام 和平 `"]
</pre>
<pre id="diagram" class="mermaid">
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
subgraph amd["`**AMD** Latte GPU`"]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
sata[SATA IF]
exi[EXI]
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<pre id="diagram" class="mermaid2">
%%{init: {"flowchart": {"defaultRenderer": "elk", "htmlLabels": false}} }%%
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
subgraph amd["`**AMD** Latte GPU`"]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
sata[SATA IF]
exi[EXI]
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<br />
<pre id="diagram" class="mermaid2">
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
subgraph amd[AMD Latte GPU]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
sata[SATA IF]
exi[EXI]
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<br />
&nbsp;
<pre id="diagram" class="mermaid2">
flowchart LR
B1 --be be--x B2
B1 --bo bo--o B3
subgraph Ugge
B2
B3
subgraph inner
B4
B5
end
subgraph inner2
subgraph deeper
C4
C5
end
C6
end
B4 --> C4
B3 -- X --> B4
B2 --> inner
C4 --> C5
end
subgraph outer
B6
end
B6 --> B5
</pre
>
<pre id="diagram" class="mermaid2">
sequenceDiagram
Customer->>+Stripe: Makes a payment request
Stripe->>+Bank: Forwards the payment request to the bank
Bank->>+Customer: Asks for authorization
Customer->>+Bank: Provides authorization
Bank->>+Stripe: Sends a response with payment details
Stripe->>+Merchant: Sends a notification of payment receipt
Merchant->>+Stripe: Confirms the payment
Stripe->>+Customer: Sends a confirmation of payment
Customer->>+Merchant: Receives goods or services
</pre
>
<pre id="diagram" class="mermaid2">
mindmap
root((mindmap))
Origins
Long history
::icon(fa fa-book)
Popularisation
British popular psychology author Tony Buzan
Research
On effectiveness<br/>and features
On Automatic creation
Uses
Creative techniques
Strategic planning
Argument mapping
Tools
Pen and paper
Mermaid
</pre>
<br />
<pre id="diagram" class="mermaid2">
example-diagram
</pre>
<!-- <div id="cy"></div> -->
@@ -96,21 +392,24 @@ flowchart LR
<!-- <script src="./mermaid.js"></script> -->
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
await mermaid.registerExternalDiagrams([mindmap]);
// import mindmap from '../../packages/mermaid-mindmap/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/mermaid-example-diagram.core.mjs';
import mermaid from './mermaid.esm.mjs';
// await mermaid.registerExternalDiagrams([example]);
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'default',
// theme: 'forest',
startOnLoad: true,
logLevel: 0,
flowchart: {
// defaultRenderer: 'elk',
useMaxWidth: false,
// htmlLabels: false,
htmlLabels: true,
},
// htmlLabels: false,
gantt: {
useMaxWidth: false,
},

View File

@@ -1,81 +1,93 @@
<html>
<!DOCTYPE html>
<html lang="en">
<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://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mindmap Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
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; */
background-color: #eee;
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
}
.malware {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<div>Security check</div>
<pre id="diagram" class="mermaid">
graph TD
A["test"] --"<p><style> * { display : none}</style>test</p>"--> B
<h1>Mindmap diagram demo</h1>
<pre class="mermaid">
mindmap
root
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
</pre>
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<!-- <script src="./mermaid.js"></script> -->
<h2>Mindmap with root wrapping text and a shape</h2>
<pre class="mermaid">
mindmap
root[A root with a long text that wraps to keep the node size in check]
</pre>
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
await mermaid.registerExternalDiagrams([mindmap]);
// import mermaid from './mermaid.esm.mjs';
import mermaid from '../../packages/mermaid/dist/mermaid.esm.mjs';
// import mermaidMindmap from './mermaid-mindmap.esm.mjs';
// import mermaidMindmap from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.3.0/+esm';
// await mermaid.registerExternalDiagrams([mermaidMindmap]);
const ALLOWED_TAGS = [
'a',
'b',
'blockquote',
'br',
'dd',
'div',
'dl',
'dt',
'em',
'foreignObject',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'h7',
'h8',
'hr',
'i',
'li',
'ul',
'ol',
'p',
'pre',
'span',
'strike',
'strong',
'table',
'tbody',
'td',
'tfoot',
'th',
'thead',
'tr',
];
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'default',
theme: 'base',
startOnLoad: true,
logLevel: 0,
flowchart: {
@@ -94,10 +106,6 @@
console.error('In parse error:');
console.error(err);
};
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
</script>
</body>
</html>

View File

@@ -59,7 +59,7 @@ A-->B
>
<script src="./packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script>
<script src="./packages/mermaid-mindmap/dist/mermaid-example-diagram-detector.js"></script>
<script src="./packages/mermaid/dist/mermaid.js"></script>
<script src="./packages/mermaid/dist/mermaid.esm.mjs"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);

View File

@@ -1,14 +1,4 @@
<html>
<head>
<script src="http://localhost:9000/mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'base',
themeVariables: {},
startOnLoad: true,
});
</script>
</head>
<body>
<h1>Example</h1>
<pre class="mermaid">
@@ -26,4 +16,12 @@ sequenceDiagram
Note left of Ernie: Cookies are good
</pre>
</body>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
theme: 'base',
themeVariables: {},
startOnLoad: true,
});
</script>
</html>

View File

@@ -9,19 +9,19 @@
<body>
<div id="graph"></div>
<script src="./mermaid.js"></script>
<script>
mermaid.init({ startOnLoad: false });
<script type="module">
import mermaid from './mermaid.esm.mjs';
await mermaid.initialize({ startOnLoad: false });
await mermaid.run();
mermaid.mermaidAPI.initialize({ securityLevel: 'strict' });
await mermaid.mermaidAPI.initialize({ securityLevel: 'strict' });
try {
console.log('rendering');
mermaid.mermaidAPI.render('graphDiv', `>`);
await mermaid.mermaidAPI.render('graphDiv', `>`);
} catch (e) {}
mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => {
document.getElementById('graph').innerHTML = html;
});
const { svg } = await mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`);
document.getElementById('graph').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -9,20 +9,20 @@
<body>
<div id="graph"></div>
<script src="./mermaid.js"></script>
<script>
mermaid.init({ startOnLoad: false });
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({ startOnLoad: false });
mermaid.mermaidAPI.initialize();
rerender('XMas');
function rerender(text) {
async function rerender(text) {
const graphText = `graph TD
A[${text}] -->|Get money| B(Go shopping)`;
const graph = mermaid.mermaidAPI.render('id', graphText);
console.log('\x1b[35m%s\x1b[0m', '>> graph', graph);
document.getElementById('graph').innerHTML = graph;
const { svg } = await mermaid.mermaidAPI.render('id', graphText);
console.log('\x1b[35m%s\x1b[0m', '>> graph', svg);
document.getElementById('graph').innerHTML = svg;
}
window.rerender = rerender;
await rerender('XMas');
</script>
<button id="rerender" onclick="rerender('Saturday')">Rerender</button>
</body>

View File

@@ -313,8 +313,8 @@ requirementDiagram
merge release
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -308,8 +308,8 @@ gitGraph
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -308,8 +308,8 @@ gitGraph
merge release
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -301,8 +301,8 @@ requirementDiagram
merge release
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -305,8 +305,8 @@ requirementDiagram
merge release
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -305,8 +305,8 @@ requirementDiagram
merge release
</pre>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -1,14 +1,50 @@
<html>
<body>
<pre class="mermaid">
none
hello world
<pre id="diagram" class="mermaid">
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<script src="./mermaid.js"></script>
<script>
<div id="d2"></div>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
logLevel: 1,
// theme: 'forest',
startOnLoad: true,
logLevel: 0,
flowchart: {
// defaultRenderer: 'elk',
useMaxWidth: false,
htmlLabels: true,
},
gantt: {
useMaxWidth: false,
},
useMaxWidth: false,
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
const value = `graph TD\nHello --> World`;
const el = document.getElementById('d2');
const { svg } = await mermaid.render('d22', value);
console.log(svg);
el.innerHTML = svg;
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
</script>
</body>
</html>

View File

@@ -34,8 +34,8 @@
9e122290-->82072290_1ec3_e711_8c5a_005056ad0002
style 9e122290 fill:#F99,stroke-width:2px,stroke:#F0F
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function showFullFirstSquad(elemName) {
console.log('show ' + elemName);
}

View File

@@ -120,8 +120,8 @@
</div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};

View File

@@ -25,8 +25,8 @@
Get into car:4: Dad, Mum, Child 1, Child 2
Drive home:3: Dad
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
logLevel: 3,

View File

@@ -26,8 +26,8 @@
A --> B --> C
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
function showFullFirstSquad(elemName) {
console.log('show ' + elemName);
}

View File

@@ -1,10 +1,17 @@
import mermaid2 from '../../packages/mermaid/src/mermaid';
import mindmap from '../../packages/mermaid-mindmap/src/detector';
import mermaid2 from './mermaid.esm.mjs';
import externalExample from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
function b64ToUtf8(str) {
return decodeURIComponent(escape(window.atob(str)));
}
// Adds a rendered flag to window when rendering is done, so cypress can wait for it.
function markRendered() {
if (window.Cypress) {
window.rendered = true;
}
}
/**
* ##contentLoaded Callback function that is called when page is loaded. This functions fetches
* configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
@@ -37,9 +44,9 @@ const contentLoaded = async function () {
document.getElementsByTagName('body')[0].appendChild(div);
}
await mermaid2.registerExternalDiagrams([mindmap]);
await mermaid2.registerExternalDiagrams([externalExample]);
mermaid2.initialize(graphObj.mermaid);
mermaid2.init();
await mermaid2.run();
}
};
@@ -67,7 +74,7 @@ function merge(current, update) {
return current;
}
const contentLoadedApi = function () {
const contentLoadedApi = async function () {
let pos = document.location.href.indexOf('?graph=');
if (pos > 0) {
pos = pos + 7;
@@ -94,38 +101,25 @@ const contentLoadedApi = function () {
mermaid2.initialize(cnf);
for (let i = 0; i < numCodes; i++) {
mermaid2.render(
const { svg, bindFunctions } = await mermaid2.render(
'newid' + i,
graphObj.code[i],
(svgCode, bindFunctions) => {
div.innerHTML = svgCode;
bindFunctions(div);
},
divs[i]
);
div.innerHTML = svg;
bindFunctions(div);
}
} else {
const div = document.createElement('div');
div.id = 'block';
div.className = 'mermaid';
// div.innerHTML = graphObj.code
console.warn('graphObj.mermaid', graphObj.mermaid);
document.getElementsByTagName('body')[0].appendChild(div);
mermaid2.initialize(graphObj.mermaid);
mermaid2.render(
'newid',
graphObj.code,
(svgCode, bindFunctions) => {
div.innerHTML = svgCode;
if (bindFunctions) {
bindFunctions(div);
}
},
div
);
const { svg, bindFunctions } = await mermaid2.render('newid', graphObj.code, div);
div.innerHTML = svg;
bindFunctions(div);
}
}
};
@@ -139,10 +133,10 @@ if (typeof document !== 'undefined') {
function () {
if (this.location.href.match('xss.html')) {
this.console.log('Using api');
contentLoadedApi();
void contentLoadedApi().finally(markRendered);
} else {
this.console.log('Not using api');
contentLoaded();
void contentLoaded().finally(markRendered);
}
},
false

View File

@@ -33,8 +33,8 @@
</script>
</head>
<body>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
startOnLoad: false,
useMaxWidth: true,

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -104,10 +104,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -102,10 +102,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -102,10 +102,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -102,10 +102,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -104,10 +104,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -103,10 +103,9 @@
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

View File

@@ -49,8 +49,8 @@
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
</div>
<script src="./mermaid.js"></script>
<script>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
@@ -102,10 +102,9 @@
// diagram += '//via.placeholder.com/64\' width=64 />"]';
// console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
const { svg } = await mermaid.render('diagram', diagram);
console.log(res);
document.querySelector('#res').innerHTML = svg;
</script>
</body>
</html>

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