Compare commits

..

141 Commits

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

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

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

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

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

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

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

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

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

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

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

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

Co-authored-by: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com>
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2022-12-15 20:22:39 +00:00
Sidharth Vinod
33f78a5429 Merge branch 'master' into develop
* master:
  Fix book link
  Add book landing page back
2022-12-16 01:28:42 +05:30
Sidharth Vinod
60d0185698 Fix book link 2022-12-16 01:27:15 +05:30
Sidharth Vinod
2743b72a87 Add book landing page back 2022-12-16 01:12:50 +05:30
Sidharth Vinod
7b13b489c2 Merge branch 'master' into develop
* master: (23 commits)
  Update vitepress
  fix: Add icon css
  fix Top level await
  v9.3.0
  bump dagre-es 7.0.6
  Bump mermaid version
  Update dagre-es
  Bump mermaid version
  fix: Incorrect removal of existing elements
  fix: add .js to external imports.
  fix: add .js to external imports.
  Bump mermaid version
  fix: add .js to external imports.
  Bump mermaid version
  fix: Throw correct errors when parsing diagrams with errors
  Update url snapshot test for external diagrams
  Update url snapshot test for external diagrams
  Updated package number
  Updated package number
  Updated package number to 9.3.0-rc1
  ...
2022-12-16 00:51:16 +05:30
Sidharth Vinod
d6ddf9568e Fix theming doc 2022-12-16 00:49:35 +05:30
Sidharth Vinod
ec026eaf82 Fix book link 2022-12-16 00:37:37 +05:30
Tom PERRILLAT-COLLOMB
c7f085a138 doc(er): add documentation on UK constraint 2022-12-15 19:03:00 +00:00
Tom PERRILLAT-COLLOMB
32a8061cc2 feat(er): add UK attribute constraint
Any attribute can now be PK, FK or UK
2022-12-15 18:55:08 +00:00
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
d841ad8f3e Update vitepress 2022-12-15 17:09:24 +05:30
Sidharth Vinod
3fb0b2792e fix: Add icon css 2022-12-15 15:33:51 +05:30
Sidharth Vinod
bbc4e90c89 fix Top level await 2022-12-15 14:57:08 +05:30
Knut Sveidqvist
5735efacbe Merge pull request #3911 from mermaid-js/release/9.3.0
Release/9.3.0
2022-12-15 10:16:12 +01:00
Sidharth Vinod
774512df57 v9.3.0 2022-12-15 14:18:54 +05:30
Sidharth Vinod
152994047e bump dagre-es 7.0.6 2022-12-15 09:12:08 +05:30
Sidharth Vinod
d194e78677 Bump mermaid version 2022-12-14 09:45:34 +05:30
Sidharth Vinod
16b51800d0 Update dagre-es 2022-12-14 09:45:18 +05:30
Sidharth Vinod
2176bef537 Bump mermaid version 2022-12-13 13:44:03 +05:30
Sidharth Vinod
9f9c95b0b3 fix: Incorrect removal of existing elements 2022-12-13 13:42:07 +05:30
Sidharth Vinod
3f0b13a131 fix: add .js to external imports. 2022-12-13 00:38:54 +05:30
Sidharth Vinod
3c44379af9 fix: add .js to external imports. 2022-12-13 00:34:31 +05:30
Sidharth Vinod
1d529d80d1 Bump mermaid version 2022-12-13 00:23:41 +05:30
Sidharth Vinod
89451ca640 fix: add .js to external imports. 2022-12-13 00:22:57 +05:30
Sidharth Vinod
fac3a4d29b Bump mermaid version 2022-12-12 23:52:48 +05:30
Sidharth Vinod
d7610dda8f fix: Throw correct errors when parsing diagrams with errors 2022-12-12 23:51:46 +05:30
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
Knut Sveidqvist
0b01c3376d #815 Adding labels to subgraphs 2022-12-08 19:41:17 +01:00
Knut Sveidqvist
6c2647e8cf Update url snapshot test for external diagrams 2022-12-08 16:39:21 +01:00
Knut Sveidqvist
e1a501c66b Update url snapshot test for external diagrams 2022-12-08 16:38:47 +01:00
Per Brolin
4f169dd2b8 Updated package number 2022-12-08 15:16:13 +01:00
Per Brolin
23a44952ac Updated package number 2022-12-08 15:09:49 +01:00
Per Brolin
7656916cef Updated package number to 9.3.0-rc1 2022-12-08 15:03:51 +01:00
Per Brolin
88357ba751 Merge branch 'release/9.3.0' of github.com:mermaid-js/mermaid into release/9.3.0 2022-12-08 14:17:11 +01:00
Per Brolin
98fc866444 Minor change of test code 2022-12-08 14:16:25 +01:00
Knut Sveidqvist
c6fce2431b Fixes for tests 2022-12-08 14:14:31 +01:00
Knut Sveidqvist
9b27396344 Small fix 2022-12-08 13:21:56 +01:00
Knut Sveidqvist
ebf76e3d1f #815 Using elk for flowchart layouts 2022-12-07 09:37:27 +01:00
Maho Pacheco
4dadf8a72d Adding support for parentheses 2022-12-06 10:38:21 -08: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
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
499 changed files with 5046 additions and 1317 deletions

View File

@@ -69,6 +69,7 @@
"unicorn/no-abusive-eslint-disable": "error",
"unicorn/no-array-push-push": "error",
"unicorn/no-for-loop": "error",
"unicorn/no-null": "error",
"unicorn/no-instanceof-array": "error",
"unicorn/no-typeof-undefined": "error",
"unicorn/no-unnecessary-await": "error",

View File

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

View File

@@ -3,7 +3,7 @@ name: E2E
on: [push, pull_request]
permissions:
contents: write
contents: read
jobs:
build:
@@ -28,28 +28,15 @@ jobs:
cache: pnpm
node-version: ${{ matrix.node-version }}
# Experiment with this step if we cannot check-in the snapshots to the repo.
# - name: Cache snapshots
# id: cache-snapshot
# uses: actions/cache@v3
# with:
# # npm cache files are stored in `~/.npm` on Linux/macOS
# path: ./cypress/snapshots
# key: ${{ runner.os }}-build-${env.GITHUB_REF}
# restore-keys: |
# ${{ runner.os }}-build-develop
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
id: cypress
uses: cypress-io/github-action@v4
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
start: pnpm run dev
browser: chrome
wait-on: 'http://localhost:9000'
# Disable recording if we don't have an API key
# e.g. if this action was run from a fork
@@ -57,18 +44,3 @@ 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__/*
- name: Commit changes
uses: EndBug/add-and-commit@v9
if: ${{ github.event_name == 'push' }}
with:
message: 'Update snapshots'
add: 'cypress/snapshots/*'
pull: '--rebase --autostash'

View File

@@ -13,11 +13,10 @@ on:
- master
pull_request:
branches:
- develop
- master
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 8 * * 5'
- cron: '30 8 * * *'
jobs:
linkChecker:

2
.gitignore vendored
View File

@@ -26,7 +26,7 @@ Gemfile.lock
/.vs
cypress/screenshots/
cypress/snapshots-dev/
cypress/snapshots/
# eslint --cache file
.eslintcache

View File

@@ -9,5 +9,8 @@ https://mkdocs.org/
https://osawards.com/javascript/#nominees
https://osawards.com/javascript/2019
# Timeout error, maybe Twitter has anti-bot defences against GitHub's CI servers?
https://twitter.com/mermaidjs_
# Don't check files that are generated during the build via `pnpm docs:code`
packages/mermaid/src/docs/config/setup/*

View File

@@ -41,6 +41,11 @@ const packageOptions = {
packageName: 'mermaid-mindmap',
file: 'detector.ts',
},
'mermaid-flowchart-v3': {
name: 'mermaid-flowchart-v3',
packageName: 'mermaid-flowchart-v3',
file: 'detector.ts',
},
// 'mermaid-example-diagram-detector': {
// name: 'mermaid-example-diagram-detector',
// packageName: 'mermaid-example-diagram',
@@ -120,6 +125,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
if (watch && config.build) {
config.build.watch = {
include: [
'packages/mermaid-flowchart-v3/src/**',
'packages/mermaid-mindmap/src/**',
'packages/mermaid/src/**',
// 'packages/mermaid-example-diagram/src/**',
@@ -146,8 +152,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-flowchart-v3' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
// build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
}

View File

@@ -10,7 +10,7 @@ English | [简体中文](./README.zh-CN.md)
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## About

View File

@@ -10,7 +10,7 @@
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-pre-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid-js.github.io/mermaid/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
## 关于 Mermaid

View File

@@ -14,6 +14,7 @@
"bilkent",
"bisheng",
"braintree",
"brkt",
"brolin",
"brotli",
"classdef",
@@ -30,6 +31,7 @@
"doku",
"dompurify",
"edgechromium",
"elkjs",
"faber",
"flatmap",
"ftplugin",
@@ -38,6 +40,7 @@
"gitgraph",
"globby",
"graphlib",
"graphviz",
"grav",
"greywolf",
"inkdrop",
@@ -52,7 +55,6 @@
"laganeckas",
"lintstagedrc",
"lucida",
"mansalva",
"matthieu",
"mdbook",
"mermerd",
@@ -61,12 +63,15 @@
"mindmaps",
"mitigations",
"mkdocs",
"mult",
"orlandoni",
"phpbb",
"plantuml",
"playfair",
"pnpm",
"podlite",
"quence",
"radious",
"ranksep",
"rect",
"rects",
@@ -77,15 +82,18 @@
"shiki",
"sidharth",
"sphinxcontrib",
"ssim",
"statediagram",
"stylis",
"substate",
"sveidqvist",
"swimm",
"techn",
"teststr",
"textlength",
"treemap",
"ts-nocheck",
"tuleap",
"ugge",
"unist",
"verdana",
"viewports",

View File

@@ -5,17 +5,9 @@ const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin')
module.exports = defineConfig({
projectId: 'n2sma2',
viewportWidth: 1440,
viewportHeight: 1024,
e2e: {
specPattern: 'cypress/integration/**/*.{js,jsx,ts,tsx}',
setupNodeEvents(on, config) {
on('before:browser:launch', (browser = {}, launchOptions) => {
if (browser.name === 'chrome' && browser.isHeadless) {
launchOptions.args.push('--window-size=1440,1024', '--force-device-scale-factor=1');
}
return launchOptions;
});
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;

View File

@@ -136,5 +136,6 @@ export const urlSnapshotTest = (url, _options, api = false, validation) => {
export const renderGraph = (graphStr, options, api) => {
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
};

View File

@@ -117,6 +117,7 @@ describe('Configuration', () => {
});
it('should not taint the initial configuration when using multiple directives', () => {
const url = 'http://localhost:9000/regression/issue-1874.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('svg');

View File

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

View File

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

View File

@@ -1,12 +1,14 @@
describe('Rerendering', () => {
it('should be able to render after an error has occurred', () => {
const url = 'http://localhost:9000/render-after-error.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graphDiv').should('exist');
});
it('should be able to render and rerender a graph via API', () => {
const url = 'http://localhost:9000/rerender.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graph [id^=flowchart-A]').should('have.text', 'XMas');

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

@@ -485,7 +485,6 @@ describe('Class diagram V2', () => {
classDiagram-v2
note "I love this diagram!\nDo you love it?"
class Class10 {
<<service>>
int id
size()
}

View File

@@ -414,7 +414,6 @@ describe('Class diagram', () => {
classDiagram
note "I love this diagram!\nDo you love it?"
class Class10 {
<<service>>
int id
size()
}

View File

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

View File

@@ -182,6 +182,20 @@ describe('Entity Relationship Diagram', () => {
cy.get('svg');
});
it('should render entities with length in attributes type', () => {
renderGraph(
`
erDiagram
CLUSTER {
varchar(99) name
string(255) description
}
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities and attributes with big and small entity names', () => {
renderGraph(
`

View File

@@ -225,10 +225,7 @@ describe('Gantt diagram', () => {
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(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
expect(maxWidthValue).to.be.within(984 * 0.95, 984 * 1.05);
});
});
@@ -272,10 +269,7 @@ describe('Gantt diagram', () => {
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(484 * 0.95, 484 * 1.05);
expect(width).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
expect(width).to.be.within(984 * 0.95, 984 * 1.05);
expect(svg).to.not.have.attr('style');
});
});

View File

@@ -54,10 +54,7 @@ describe('Pie Chart', () => {
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(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
expect(maxWidthValue).to.eq(984);
});
});
it('should render a pie diagram when useMaxWidth is false', () => {
@@ -71,11 +68,10 @@ describe('Pie Chart', () => {
{ pie: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
// const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
expect(width).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
// expect(height).to.eq(450);
expect(width).to.eq(984);
expect(svg).to.not.have.attr('style');
});
});

View File

@@ -1,8 +1,32 @@
<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;
}
@@ -12,5 +36,21 @@
}
</style>
</head>
<body></body>
<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>
</html>

View File

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

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

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

View File

@@ -54,31 +54,172 @@
</style>
</head>
<body>
<div>Security check</div>
<pre id="diagram" class="mermaid">
flowchart LR
%% Actors
A
subgraph Sub
B --> C
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<pre id="diagram" class="mermaid">
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TB
%% I could not figure out how to use double quotes in labels in Mermaid
subgraph ibm[IBM Espresso CPU]
core0[IBM PowerPC Broadway Core 0]
core1[IBM PowerPC Broadway Core 1]
core2[IBM PowerPC Broadway Core 2]
rom[16 KB ROM]
core0 --- core2
rom --> core2
end
%% Accusations
A --L --> Sub
subgraph amd[AMD Latte GPU]
mem[Memory & I/O Bridge]
dram[DRAM Controller]
edram[32 MB EDRAM MEM1]
rom[512 B SEEPROM]
%% Offense
B --> A
sata[SATA IF]
exi[EXI]
</pre>
subgraph gx[GX]
sram[3 MB 1T-SRAM]
end
radeon[AMD Radeon R7xx GX2]
mem --- gx
mem --- radeon
rom --- mem
mem --- sata
mem --- exi
dram --- sata
dram --- exi
end
ddr3[2 GB DDR3 RAM MEM2]
mem --- ddr3
dram --- ddr3
edram --- ddr3
core1 --- mem
exi --- rtc
rtc{{rtc}}
</pre
>
<br />
<pre id="diagram" class="mermaid">
stateDiagram-v2
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]
[*] --> S1
S1 --> S2: long line using<br/>should work
S1 --> S3: long line using <br>should work
S1 --> S4: long line using \\nshould work
rom[16 KB ROM]
</pre>
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">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)
@@ -97,17 +238,19 @@ flowchart LR
<script type="module">
import mindmap from '../../packages/mermaid-mindmap/src/detector';
import flowV3 from '../../packages/mermaid-flowchart-v3/src/detector';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import mermaid from '../../packages/mermaid/src/mermaid';
await mermaid.registerExternalDiagrams([mindmap]);
await mermaid.registerExternalDiagrams([mindmap, flowV3]);
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: true,
},

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

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