* 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
...
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.
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
[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.
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.
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.
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/
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?
* 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`
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.
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>
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
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>
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.
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>
* 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
...
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.
* '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)
...
* 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
* origin/develop: (564 commits)
chore: Format Mermaid.vue
Made mermaidConfig a local variable so that it cannot be shared cross rendering.
Fix for issue #3882 moving the label when the path has been modified
Small fix for issue #3881
Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
Fixed the issue that theme-switch does not work on docs.
chore: Fix mindmap link
chore: Switch back from unpkg to jsdelivr
delete functions not used in diagrams/c4 code (dead code)
Minor change
feat: Add @include support to docs
feat: Add @include example to docs
feat: Add @include support to docs
cleanup
fix lines
fix Async rendering
Revert "sync"
chore(deps): update pnpm to v7.17.1
chore(deps): remove dependency on `graphlib`
test(e2e): make gitgraph snapshots consistent
...
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.
`graphlib` has recently been replaced with the ESM version of
graphlib bundled with
[`dagre-d3-es`](https://www.npmjs.com/package/dagre-d3-es), in commit
f687abb1 (chore: Use `graphlib` from `dagre-d3-es`, 2022-11-20)
This means we can safely remove it from our dependencies list.
Fixes: f687abb165
Add a commit id to 'should render a simple gitgraph with a title',
as otherwise the gitgraph renderer picks a random commit ID, and so
image snapshots will be different.
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.
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.
* develop: (79 commits)
chore: docs:build
chore: docs:build
tiny fix and change: "The/y cannot" -> "Cannot..."
remove 'horz' from cSpell.json
update demos/state.html to includ examples; formatting
add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
refine - what is not done yet
remove 'horz' from cSpell.json
Revert "Added pie"
chore: Fix cSpell in pieRenderer
update demos/state.html to includ examples; formatting
add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
refine - what is not done yet
remove console stmt
#3831 Re-enabling themes for er diagrams
#3835 Adding path to list of elements to be styled
#3882 fix for issues with mindmaps with only a single node
chore(deps): update pnpm to v7.17.0
docs: Remove warning in readme
chore(deps): update lycheeverse/lychee-action action to v1.5.4
...
* develop: (21 commits)
chore: docs:build
chore: docs:build
tiny fix and change: "The/y cannot" -> "Cannot..."
remove 'horz' from cSpell.json
update demos/state.html to includ examples; formatting
add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
refine - what is not done yet
remove 'horz' from cSpell.json
Revert "Added pie"
chore: Fix cSpell in pieRenderer
update demos/state.html to includ examples; formatting
add 'horz' to cSpell (in pieDetector.ts commented out barChart work)
refine - what is not done yet
remove console stmt
#3831 Re-enabling themes for er diagrams
#3835 Adding path to list of elements to be styled
#3882 fix for issues with mindmaps with only a single node
Integrations added - Visual Studio Code [Polyglot Interactive Notebooks]
Fix typos
#3778 Adding a hexgon shape
...
* develop:
chore(deps): update pnpm to v7.17.0
docs: Remove warning in readme
chore(deps): update lycheeverse/lychee-action action to v1.5.4
chore: Add size shield in readme
Fix example for Git diagrams
Fix TS errors
Add interface for DiagramDb and other minor changes
Disallow leading whitespace before delimiter
Add title support using YAML frontmatter
code previously manually inserted idSelector before the generated CSS.
This could produce incorrect CSS.
Adding & in front of rules will ensure that it behaves properly.
Stylis seems permissive about the lack of nesting selector, but fails
if there is no selector at all. (e.g. "{...props...}")
We should probably do this for each diagram's style.ts files as well
* sidv/viz:
Fix Lodash import
fix: Viz build
feat: Add package visualization
Ignore stats.html
feat: Add bundle visualization
style(docs): use `github-dark` hightlight theme
refactor(docs): use default vitepress highlighter
fix: Move redirection to router
chore: Add docs to redirect.ts
feat: Redirect old documentation links.
comments in states are skipped now
Remove extra arrow and adjust cross position
Replace the dagre and dagre-d3 libraries with dagre-d3-es.
Both dagre and dagre-d3 are deprecated and unmaintained,
and haven't been updated for more than 3 years.
Since dagre-d3 still requires an old version of d3, this causes
a bunch of security warnings,
e.g. https://github.com/advisories/GHSA-36jr-mh4h-2g58
The [dagre-d3-es](https://github.com/tbo47/dagre-es) package is a fork
that contains support for `"d3": "^7.6.1"`. Also, it's ESM, so we will
hopefully get smaller bundle sizes too. The only issue is that this
fork isn't very well used (only has 3000 weekly downloads),
compared to `dagre-d3`'s 250,000 weekly downloads.
(although to be fair, a large proportion of dagre-d3's downloads
probably come from mermaid)
Since it's is a less popular package,
**I've pinned `dagre-d3-es` to `"7.0.2"` instead of `"^7.0.2"`**.
This does mean if there is a bug in `dagre-d3-es`, we will have to
manually bump it ourselves, but it also means we won't accidentally
be sending a buggy version of `dagre-d3-es` out to users in cases
something changes (it might be worth disabling renovate for this
if we're feeling paranoid!)
Sometimes, the mindmap e2e tests take a snapshot when the mindmap
SVG has been created, but hasn't yet been fully rendered.
This adds a quick check for a mindmap section root, so that the
snapshot is only taken after the mindmap diagram has started
rendering.
I was also running into JSDoc ESLint warnings, so I moved the file
into a TypeScript file to fix those warnings.
Currently, we have mindmap tests in the
cypress/integration/rendering/mermaid.spec.js which is a bit
odd. They should probably all be in the mindmap.spec.js file.
Use the `github-dark` highlight theme for fence blocks in vitepress,
instead of the default `material-palenight` theme.
This increases the contrast ratio of `#comments` from 2.75:1 to 4.43:1,
which is a lot more visible.
It still doesn't reach WCAG 2.0 level AA contrast standards,
which requires 4.5:1 as a minimum constrast ratio, but 4.43:1 is
pretty close, and we don't need to manually modify the theme's colours.
Use the default vitepress highlighter instead of making our own
highlighter using shiki.
The benefits are:
- We don't need to directly depend on shiki
- `mermaid-example` code-blocks will use the same highlighting
as other languages (e.g. `html`/`js`).
- We can control the theme from the global `vitepress` config.
- Darkmode/lightmode themes are supported
- Escaping is already handled by the default highlight function
We shouldn't pin dependencies unless we have to.
This is for two reasons:
- If a dependency has a security issue, users should be able to
easily update the dependency, before `mermaid` makes a new release
- If using `mermaid.core.js` in an app, using a dependency range
means that users can bundle less dependencies.
E.g. they won't need to bundle `lodash@4.17.y` just becasue mermaid
needs `lodash@4.17.x`.
For development/CI, our dependencies are pinned by pnpm-lock.yaml
file anyway.
* develop:
chore(deps): update all non-major dependencies
fix(deps): update all non-major dependencies
fix: `sourceLinkTemplate` in typedoc
only call getClasses if the diagram renderer supports it
fix typo
merge fix: get classDefs only if diagram is in CLASSDEF_DIAGRAMS
use lodash isEmpty instead of method defined in utils
chore: Fix cspell
fix: Type of DiagramStyleClassDef, general cleanup
change spec descriptions to active voice (= shorter b/c 'should' isn't needed)
functions and specs: removeExistingElements
functions and specs: createUserstyles; minor changes
functions and specs: createCssStyles, appendDivSvgG,cleanUpSvgCode, putIntoIFrame [for render]
add MockedD3.ts
const isSandboxed, isLooseSecurityLevel, fontFamily; a few more CONSTs
more meaningful var names; move related lines together; const idSelector
comment the main steps (prepare to break into functions that can be tested)
render: define const iFrameId, enclosingDivID and _selector to use in function
specs: encodeEntities, decodeEntities
render: constants
Lock down the GITHUB_TOKEN permissions.
lychee only needs `GITHUB_TOKEN` to read public
data without hitting rate-limits, so having read-only
access to contents should be fine.
Default mermaid back to being a CommonJS module.
Improrting Mermaid as CommonJS (e.g. using `require("mermaid")`)
is normally broken (since v8), due to it's dependency on d3,
which is now ESM only.
However, it looks like some software
(e.g. TypeScript, in the docusaurus project)
could still handle the CommonJS version of Mermaid.
This commit now means that older versions of Node/build-tools
should now default to using the CommonJS version of Mermaid.
Newer tools should still see that the `"module"` field points to ESM,
or use the `exports["."]["import"]` field to load ESM.
I noticed that the link to `Tutorials.md` was broken in this README.
While fixing this I found some other broken links in the same section
of the README, that I tried to fix as well.
(I suspect these files were moved at some point)
* develop:
chore(docs): Update live editor links
update user story link
feat(gantt): Add option 'tickInterval' for custom tick interval
Convert attr to classed
Convert attr to style
* origin/develop:
docs(git): Regenerate
docs(git): Add a quoted branch name example
fix(git): Support quoted branch names
Ensure example code and rendered output are synced
Fill inheritance arrow with background color
Expose the function `initThrowsErrorsAsync()` publicly
as `mermaid.initThrowsErrorsAsync()`.
It has the TSDoc `@alpha` and `@deprecated` tags, so people should
be warned that it might be modified in Mermaid v10 or earlier.
Needed for `mermaid-cli` to handle `lazyLoadedDiagrams`.
This reverts commit 1a0309fb87, reversing
changes made to 56a8068a7f.
This is because the PR https://github.com/mermaid-js/mermaid/pull/3702
worked fine on the `develop` and `release_9.2.0_buggfixes` branches,
but had a bunch of git merge conflicts on the `release/9.2.0` branch.
Exposes the registerDiagram() function publically as
`mermaid.mermaidAPI.registerDiagram` so that users can add their
own diagrams at bundle-time.
This is instead of using the lazyLoadedDiagrams config setting.
Remove the callback function parameter from registerDiagram.
Instead, we can just load the callback function from the `injectUtils`
diagram definition, if it exists.
Mostly, fixing these eslint-plugin-tsdoc style issues involved:
- Moving types from JSDoc to TypeScript types
- Making sure that all `@param paramName - description`
had both a `-` and a description.
Occasionally, for some functions, if the JSDoc was completely
empty, I just deleted it, since there was no point in keeping it.
* develop: (21 commits)
Theme update from release 9.2
testcode
Delete dependabot.yml
changed cspell config in eslint from warn to error
Update .eslintrc.json
fix cypress tests for erDiagram, add eslint-plugin-no-only-tests plugin because of this comment: https://github.com/mermaid-js/mermaid/pull/3647#issuecomment-1281163858
chore: Add CORS to vite dev
configured 3 more words in cspell.json
removed eslint-ignore statements
chore(deps): pin dependencies
chore(deps): update all non-major dependencies (#3671)
style(sequence): rename lineStarty to lineStartY
style: fix @cspell/eslint warnings
test(gantt): remove incorrect comment
added words to cspell ignore words list, removed mywords.txt
update: open graph image
fix: prettier
remove id attribute
feat(issue#3675): added open graph meta tags
updated eslint config and fixed cspell warnings
...
* 'develop' of https://github.com/emersonbottero/mermaid:
docs: fix layout problem
docs: added warning and notes
docs: added warning and notes
docs: added warning and notes
docs: small improvements
* sidv/noVar: (77 commits)
fix: Fix eslint warnings
docs: Fix docs path in Contributing.md
Fix file name during "dev" script
docs: Sync
capitalization fix
format Setup.md
format cSpell.json
format docs YAML
format cSpell.json
separate words & ignoreWords
fix: "skin param"
ignore the changelog
Revert "fix: "skin param""
fix: "skin param"
fix: "corresponding"
known terms
known terms
fix: "JetBrains"
known terms
known terms
...
* develop: (50 commits)
docs: Sync
capitalization fix
format Setup.md
format cSpell.json
format docs YAML
format cSpell.json
separate words & ignoreWords
fix: "skin param"
ignore the changelog
Revert "fix: "skin param""
fix: "skin param"
fix: "corresponding"
known terms
known terms
fix: "JetBrains"
known terms
known terms
fix: "stable"
known term
add known term
...
* develop:
Fix for broken test
fix: build npm-script
Fix for issue in classdiagram-v2 from the typescript updates
fix: build npm-script
chore: Cleanup
chore: cleanup
fix: dynamic import
fix: module import in pie chart demo
fix: use async in render-after-error
* develop:
Appended Contact Mail of Mermaid
Added sttributes to CODE OF CONDUCT
build(test): remove vitest from subpackages
test: remove `import {it} from "vitest"`
chore(docs): run `pnpm run docs:build`
CODE_OF_CONDUCT Uploaded
Removes vitest from all subpackages so that vitest/`pnpm run test`
are only in the root mono-repo.
This is required, because otherwise the root vitest and the subpackage
vitest versions can otherwise be slightly different, which causes
issues when running unit tests:
```Snapshot cannot be used outside of test```
In the future, we may want to consider moving package specific
tests into `packages/*/test`, and instead running these tests
with `pnpm run --recursive`, so that tests are run in each package by
their own version of vitest. This is the way that most projects
do things (e.g. https://github.com/vitest-dev/vitest).
We're getting a lot of vitest errors that say:
```Error: No test suite found in file```
I think this is because vitest is somehow
importing a different version the it/test function than the globally
inserted functions.
Removing the imports fixes this.
It looks like the docs/ folder somehow got out of sync
with the packages/mermaid/src/docs folder.
Maybe it was due to a semantic merge conflict
(e.g. `git merge` didn't throw an error, but the merge was bad)
* upstream/develop: (33 commits)
Updated lockfile
chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4
chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4
chore(deps-dev): update @vitest/coverage-c8 requirement
chore(deps-dev): update @typescript-eslint/eslint-plugin requirement
chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10
chore(deps-dev): update @commitlint/config-conventional requirement
chore(deps-dev): update eslint-plugin-jest requirement
chore(deps-dev): update @applitools/eyes-cypress requirement
chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1
chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4
chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3
chore(deps): update @types/node requirement from ^18.7.21 to ^18.8.1
chore(deps-dev): update @typescript-eslint/parser requirement
Fix postbuild script
#3561 Adding cScale0-11 etc and usage of the colors from the mindmap diagram
Fix for broken test
Mindmap cleanup
Using cose-bilkent layout algorithm for mindmaps
chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1
...
* upstream/develop: (81 commits)
style(docs): fix prettier issues (extra newline)
Corrected theme variables reference table layout
Fix typos in README.md
build: lint-staged docs in packages/mermaid/src/…
chore(docs): run `pnpm run docs:build`
build(docs): fix `pnpm run docs:{build,verify}`
docs: replace `yarn` with `pnpm` in dev guide
build: re-enable `prepare` script for husky setup
build: update pre-commit rules to use `pnpm`
Arrow tip aligned to edge of box
updated pnpm-lock file
ci(e2e): Skip pnpm cache if skipping cypress run
ci(e2e): remove `headless` arg from cypress run
build(dev): Fix dev server not showing mermaid.js
Fixed sample test
Adding example diagram as a template for a new diagram
Removed test folder
Returning the borders to the e2e tests
Fix for tests
Updated version
...
When running lint-staged during git pre-commit scripts,
search for docs in the packages/mermaid/src/docs folder instead
of the original src/docs folder.
Our docs script was searching for docs in the src/docs folder,
which no longer exists.
Instead, it should be looking at the packages/mermaid/src/docs folder.
Re-enables the `pnpm run prepare` script.
The prepare script is automatically run when running
`pnpm install` locally.
It both:
- Sets up husky/git pre-commit scripts
- Builds the `packages/mermaid/dist` folder.
When running the e2e action from a fork, we prevent multi-processing
in the E2E cypress tests skipping runs that aren't
matrix.container == 1.
However, this means that the pnpm cache folder isn't created, causing
the cache action to throw an error.
To fix this, we also skip building Node/cache setup step.
Fixes: f60c7fff65
When moving to the mono-repo,
`<script src="http://localhost:9000/mermaid.js"/>`
stopped working, since the vite dev server was exposing
the `./dist` folder, when the folder had moved to
the `./packages/mermaid/dist` folder.
Fixes most CI actions to support pnpm and the mono-repo.
It looks like there are some errors related to `mermaid-mindmap`
not being able to find `mermaid` or `mermaid/diagramAPI`
* sidv/viteVitest:
ts conversion
cleanup
remove esbuild
fix: tests
chore: Add recommended extensions
Fix user-journey leaking css
Add "Debug Current Test File" configuration for VSCode
Fix unit test coverage
Use vite for build
Fix docs
vite
vite Server
Cleanup
Merge vitest & esbuild
Merge vitest
fix jison generation
Vite
Vite
This fixes a CSS syntax error that causes the CSS parser to soft-fail, which leads to the later CSS (custom styles) to not properly append the `#id` to them.
* develop: (30 commits)
Fix docs
Auto stash before merge of "develop" and "origin/develop"
vite -> cts
add lcov
chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8
fix(docs): update link
CI Concurrency 4
Remove build
Parallel e2e
Revert "unify Jison tranformers"
Update yarn.lock
fix(docs): `mmd` detection
Hope this fails
Remove `docs:build` from postbuild.
Add verification log
This should fail CI
chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
Update integrations.md
Add vitepress pluin
Fix lint
...
* develop: (28 commits)
fix(docs): update link
Revert "unify Jison tranformers"
Update yarn.lock
Revert "fix(test): No esm exports"
fix(test): No esm exports
fix(docs): `mmd` detection
Hope this fails
unify Jison tranformers
Fix jest
Remove `docs:build` from postbuild.
Add verification log
This should fail CI
fix: imports in HTML
Revert "Add diagramAPI to outfile"
Add `type: module` to package.json
chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
Update integrations.md
Add vitepress pluin
Update mermaid version
Fix ports
...
* develop: (28 commits)
fix(docs): update link
Revert "unify Jison tranformers"
Update yarn.lock
Revert "fix(test): No esm exports"
fix(test): No esm exports
fix(docs): `mmd` detection
Hope this fails
unify Jison tranformers
Fix jest
Remove `docs:build` from postbuild.
Add verification log
This should fail CI
fix: imports in HTML
Revert "Add diagramAPI to outfile"
Add `type: module` to package.json
chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
Update integrations.md
Add vitepress pluin
Update mermaid version
Fix ports
...
* develop: (23 commits)
Revert #3475
chore: updyaate browsers list
Support EMPTYSTR in jison parser, add unit tests for git graph parser
Use undefined to mean default tagging behavior
feat(git): allow cherry-pick to suppress tag altogether
Update src/diagrams/git/parser/gitGraph.jison
fix(git): fix cherry-pick regex parsing error
test(git): add basic parsing test for cherry-pick
feat(git): cherry-pick keyword supports tag attribute
ci(e2e-applitols): add applitools CI action
Test docs:verify
Cleanup docs
Fixed Linting issues
ci(e2e): re-enable e2e tests
style: fix .github/workflow/e2e styling
chore: upgrade cypress to v10
fix(flowchart-v2): fix arrowMarkerAbsolute=true
test(e2e): fix most arrowMarkerAbsolute tests
text(e2e): give git tests consistent commit id
test(e2e): widen flowchart width to within 10%
...
* develop:
Revert #3475
chore: update browsers list
Support EMPTYSTR in jison parser, add unit tests for git graph parser
Use undefined to mean default tagging behavior
feat(git): allow cherry-pick to suppress tag altogether
Update src/diagrams/git/parser/gitGraph.jison
fix(git): fix cherry-pick regex parsing error
test(git): add basic parsing test for cherry-pick
feat(git): cherry-pick keyword supports tag attribute
ci(e2e-applitols): add applitools CI action
Test docs:verify
Cleanup docs
Fixed Linting issues
#3409 Clean up dead code
#3409 Fixed the truncated tags issue
* develop:
chore: update browsers list
Support EMPTYSTR in jison parser, add unit tests for git graph parser
Use undefined to mean default tagging behavior
feat(git): allow cherry-pick to suppress tag altogether
Update src/diagrams/git/parser/gitGraph.jison
fix(git): fix cherry-pick regex parsing error
test(git): add basic parsing test for cherry-pick
feat(git): cherry-pick keyword supports tag attribute
Test docs:verify
Cleanup docs
Fixed Linting issues
Adds a [`workflow_dispatch`][1] GitHub Actions CI workflow
that performs an E2E Cypress rendering test with Applitools
integration.
If the APPLITOOLS_API_KEY secret is not set, this action fallsback to
just doing a normal E2E Cypress test without Applitools support.
[1]: https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
* develop: (221 commits)
cleanup
Fix docs
Fix coverage
Fix for issues in errorhandling and class diagrams after refactoring
Replace GoogleAnalytics with Plausible
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
fix(git): support single character branch names
Cleanup unused variables and some commented out code
Cleanup fixing som lingering issues
Remove extension
Apply suggestions from code review
ci(e2e): re-enable e2e tests
style: fix .github/workflow/e2e styling
chore: upgrade cypress to v10
fix(flowchart-v2): fix arrowMarkerAbsolute=true
test(e2e): fix most arrowMarkerAbsolute tests
text(e2e): give git tests consistent commit id
test(e2e): widen flowchart width to within 10%
...
* develop:
cleanup
Fix docs
Fix coverage
Fix for issues in errorhandling and class diagrams after refactoring
Replace GoogleAnalytics with Plausible
fix(git): support single character branch names
Cleanup unused variables and some commented out code
ci(e2e): re-enable e2e tests
style: fix .github/workflow/e2e styling
chore: upgrade cypress to v10
fix(flowchart-v2): fix arrowMarkerAbsolute=true
test(e2e): fix most arrowMarkerAbsolute tests
text(e2e): give git tests consistent commit id
test(e2e): widen flowchart width to within 10%
test(e2e): fix failing xss9 test
* develop: (77 commits)
cleanup
Fix docs
Fix coverage
Fix for issues in errorhandling and class diagrams after refactoring
Replace GoogleAnalytics with Plausible
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
fix(git): support single character branch names
Cleanup unused variables and some commented out code
Cleanup fixing som lingering issues
Remove extension
Apply suggestions from code review
ci(e2e): re-enable e2e tests
style: fix .github/workflow/e2e styling
chore: upgrade cypress to v10
fix(flowchart-v2): fix arrowMarkerAbsolute=true
test(e2e): fix most arrowMarkerAbsolute tests
text(e2e): give git tests consistent commit id
test(e2e): widen flowchart width to within 10%
...
* sidv/esbuild: (115 commits)
cleanup
Fix docs
Fix coverage
Fix for issues in errorhandling and class diagrams after refactoring
Replace GoogleAnalytics with Plausible
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
fix(git): support single character branch names
Cleanup unused variables and some commented out code
Cleanup fixing som lingering issues
Remove extension
Apply suggestions from code review
chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
...
* develop:
Replace GoogleAnalytics with Plausible
fix(git): support single character branch names
Cleanup unused variables and some commented out code
Release 9.1.7
Fix for broken rendering test
Fix for issue #3428, load the configured diagrams even when initialize has not been called.
#3395 Renabling the error graph which is rendered on error
#3395 Fix for lopp stopping at first failure
* sidv/esbuild:
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
Cleanup fixing som lingering issues
Apply suggestions from code review
chore: fix eslint warnings
chore: Turn off eslint rules in spec, demos, etc.
* develop: (56 commits)
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
Cleanup fixing som lingering issues
Apply suggestions from code review
chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 (#3448)
chore(deps-dev): bump eslint from 8.23.0 to 8.23.1
chore: fix eslint warnings
chore: Turn off eslint rules in spec, demos, etc.
chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 (#3446)
chore(deps): bump actions/checkout from 2 to 3 (#3449)
change wording of console log message (use comma)
Moving out tests from mermaid.spec.js
...
In gitGraph, add support branch names that only have a single
character.
The branch regex is checking for a starting character, and an
ending character, so it currently needs at least two characters.
I've wrapped everything except the first character in a `()?` to fix
this.
There are some really complicated regexes that do match what
valid git branches are (see https://stackoverflow.com/a/12093994), but
I'm reluctant to add them in, since it will be a pain to test all
the different edgecases.
Hopefully https://github.com/mermaid-js/mermaid/pull/3432 might be used
in the future to make a better gitgraph parser!
* sidv/mergeRelease:
chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 (#3448)
chore(deps-dev): bump eslint from 8.23.0 to 8.23.1
Release 9.1.7
Fix for broken rendering test
Fix for issue #3428, load the configured diagrams even when initialize has not been called.
* origin/release/9.1.7:
Release 9.1.7
Fix for broken rendering test
Fix for issue #3428, load the configured diagrams even when initialize has not been called.
I've removed the coverage upload bit, since although the
[@cypress/code-coverage][1] plugin is pretty easy to setup,
it requires babel, which we're about to remove and replace
with ESBuild.
Cypress v10 had some minor breaking changes,
(e.g. the cypress/plugins folder dissapeared)
so I had to change some things.
It looks like the Cypress was previously reverted in [dee9cfe][1],
due to applitools not working properly,
but I think my changes fix this, so it should be okay.
[1]: dee9cfea85
The if-check for arrowMarkerAbsolute in the flowchart-v2 code is in
dagre-wrapper. Unfortunately, I can't seem to find a way to find the
local conf (e.g. the one set via `flowRenderer.setConf()`, so instead
I'm using global mermaid config from `src/config`.
Flowchart v1 arrowMarkerAbsolute=true is still broken, but I'm not
really sure how to fix that.
gitGraph render tests are currently using random commit ids,
which causes visual regression tests to fail.
I couldn't find a way to make the random commit IDs consistent
(JavaScript/Cypress doesn't seem to have a random.seed() function),
so I've just hardcoded all the commit ids.
* develop: (40 commits)
chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 (#3446)
chore(deps): bump actions/checkout from 2 to 3 (#3449)
change wording of console log message (use comma)
Moving out tests from mermaid.spec.js
Fix for issue with setting the loglevel via numbers
chore: update browsers list
Limiting the interaction between the mermaid diagram and Mermaid to the diagramAPI
Fix for broken tests
chore(docs): Remove edit this page
fix(git): support unusual prefixes in branch name
formatting
eslint fixes
Creating detectors and moving out diagram specific code from the diagramAPI
add eslint-disable no-console for file
fix: Run precommit hook for doc.mts changes too
chore: Updated doc files
fix: Formatting issue
(formatting only) sort imports just to force a new CI lint check
ci: re-enable coveralls coverage upload
build(dev-deps): remove unused `coveralls`
...
`mermaid.core.mjs` should be the default export.
This is because it does not bundle `node_modules/`, allowing users of
mermaid to bundle dependencies themselves,
using Webpack/ESBuild/others.
The `mermaid.core.js` build was previously a UMD build that did not
have `node_modules` bundled.
This was designed for users to add `mermaid` to their own apps,
then bundle with Webpack/ESBuild.
Hence the bundle test in `cypress/platform/bundle-test.js`.
As ESBuild does not support UMD, I've switched the `mermaid.core.js`
to instead use ESM, as Mermaid now requires ESM
(due to d3 requiring ESM). All modern bundlers also support ESM.
When converting a `.jison` file into a CommonJS module,
jison by default adds a main() function that calls `require("fs");`
Even though the main function is never used in the browser,
because `fs` is a Node.JS only module, this causes some esbuild issues.
To disable this, we can just set an empty main to the jison generator.
* develop: (22 commits)
fix: Tsconfig
ci: lint .jison files for any console.log()
refactor: remove `console.log` in c4Diagram.jison
style: forbid using `console` in mermaid src code
Add tests for other boundary properties
Add first test for Boundary
Test all different types of systems
Introduce shape list in test
Add tests for C4 System
Make test grouping more explicit
Copy tests from Person to PersonExt
Add test for link to Person_Ext
Add question on Person_Ext
Add test for structure of Person_Ext
Add test for alias
Add test for label
Add test for description
Add test for $tags
Add test for $link
Add test for $sprite
...
* develop: (22 commits)
fix: Tsconfig
ci: lint .jison files for any console.log()
refactor: remove `console.log` in c4Diagram.jison
style: forbid using `console` in mermaid src code
Add tests for other boundary properties
Add first test for Boundary
Test all different types of systems
Introduce shape list in test
Add tests for C4 System
Make test grouping more explicit
Copy tests from Person to PersonExt
Add test for link to Person_Ext
Add question on Person_Ext
Add test for structure of Person_Ext
Add test for alias
Add test for label
Add test for description
Add test for $tags
Add test for $link
Add test for $sprite
...
* develop:
Update prettier
chore: Run postbuild with prepare
(formatting) prettier fix
Removed warnings in the grammar oand some console logging
unmangle sentence about doc changes committed and showing up on docsify site
change references from /docs to /src/docs; rework doc section in CONTRIBUTING
* develop: (37 commits)
fix JSDOC @param, @returns; fixed a few minor typos in comments
Update after lint comments
Regenerate the directive docs as I changed them
chore(deps-dev): bump typescript from 4.7.4 to 4.8.2
Update duplicate copy pasted directive description
chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2
Lint fixes
Removing requirement to add ids for nodes with a shape
Merged typescript changes
Updated with cloud and bang shapes
Adding cloud and bang shapes
fix(git): support numeric branch names
Fix for unit tests after refactoring
Documenting classes and icons
Startingpoint for the documentation
Some theming/styling fixes
Adding some rendering tests
...
* develop: (37 commits)
fix JSDOC @param, @returns; fixed a few minor typos in comments
Update after lint comments
Regenerate the directive docs as I changed them
chore(deps-dev): bump typescript from 4.7.4 to 4.8.2
Update duplicate copy pasted directive description
chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2
Lint fixes
Removing requirement to add ids for nodes with a shape
Merged typescript changes
Updated with cloud and bang shapes
Adding cloud and bang shapes
fix(git): support numeric branch names
Fix for unit tests after refactoring
Documenting classes and icons
Startingpoint for the documentation
Some theming/styling fixes
Adding some rendering tests
...
* develop: (50 commits)
Build docs
chore: update browsers list
Fix pre
Fix mermaid code formatting in html
Prettier pass
Fix XSS htmls
fix#3407 Replace `div` with `pre` and format
Add change in `src/docs`
Fix lint issue
build: run `build:prod` on `yarn prepare`
Build documentation
Fix typo
Fix typo in documentation
Fix doc
Add files only when running from lint-staged
Add files only when running from lint-staged
Fix configuration doc
Prettier Pass
Add dotfiles
Prettier
...
* develop: (50 commits)
Typo fix
Fix repo URL
Revert flowchart change
Revert flowchart change
Fix TODO Qs
chore(deps-dev): bump @commitlint/cli from 17.1.1 to 17.1.2
chore(deps-dev): bump terser-webpack-plugin from 5.3.5 to 5.3.6
chore(deps-dev): bump webpack-dev-server from 4.10.0 to 4.10.1
Fix gitGraph findLane function error
Update dependabot.yml
Replacing replaceAll with replace
Rework 'parseDuration' as a pure duration parsing
Supports duration in decimal
Create a more consistent 'parseDuration'
Remove `@ts-ignore`s.
Fix svgDraw return types
...
Please refer our [Security Policy](https://github.com/mermaid-js/.github/blob/main/SECURITY.md) and report to keep vulnerabilities confidential so we can release fixes first.
## Before you submit...
We like to help you, but in order to do that should you make a few things first:
- Use a clear and concise title
- Fill out the text fields with as much detail as possible.
- Never be shy to give us screenshots and/or code samples. It will help!
- type:textarea
attributes:
label:Description
description:Give a clear and concise description of what the bug is.
placeholder:When I do ... does ... happen.
validations:
required:true
- type:textarea
attributes:
label:Steps to reproduce
description:Give a step-by-step example on how to reproduce the bug.
placeholder:|-
1. Do this
2. Do that
3. ...
4. Bug!
validations:
required:true
- type:textarea
attributes:
label:Screenshots
description:If applicable, add screenshots to help explain your issue.
- type:textarea
attributes:
label:Code Sample
description:|-
If applicable, add the code sample or a link to the [Live Editor](https://mermaid.live).
Any text pasted here will be rendered as a Code block.
render:text
- type:textarea
attributes:
label:Setup
description:|-
Please fill out the below info.
Note that you only need to fill out one and not both sections.
# npx is required for first install as volta support for pnpm is not added yet.
npx pnpm install
pnpm test
```
## Committing code
@@ -21,7 +32,7 @@ We make all changes via pull requests. As we have many pull requests from develo
- Large changes reviewed by knsv or other developer asked to review by knsv
- Smaller low-risk changes like dependencies, documentation, etc. can be merged by active collaborators
- Documentation (updates to the `src/docs` folder is also allowed via direct commits)
- Documentation (updates to the `package/mermaid/src/docs` folder is also allowed via direct commits)
To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text.
@@ -39,16 +50,16 @@ Less strict here, it is OK to commit directly in the `develop` branch if you are
The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).
### Documentation source files are in /src/docs
### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs)
The source files for the project documentation are located in the `/src/docs` directory. This is where you should make changes.
The files under `/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory.
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.
source["files in /src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"]
source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"]
```
@@ -56,31 +67,22 @@ flowchart LR
### The official documentation site
**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Docsify](https://docsify.js.org), a simple documentation site generator.**
**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Vitepress](https://vitepress.vuejs.org/), a simple documentation site generator.**
If you want to preview the whole documentation site on your machine, you need to install `docsify-cli`:
If you want to preview the whole documentation site on your machine:
```sh
$ npm i docsify-cli -g
cd packages/mermaid
pnpm i
pnpm docs:dev
```
If you are more familiar with Yarn, you can use the following command:
You can now build and serve the documentation site:
```sh
$ yarn global add docsify-cli
pnpm docs:serve
```
The above command will install `docsify-cli` globally.
If the installation is successful, the command `docsify` will be available in your `PATH`.
You can now run the following command to serve the documentation site:
```sh
$ docsify serve docs
```
Once the local HTTP server is listening, you can point your browser at http://localhost:3000.
## Branching
Going forward we will use a git flow inspired approach to branching. So development is done in develop, to do the development in the develop.
@@ -103,7 +105,7 @@ This is important so that, if someone else does a change to the grammar that doe
This tests the rendering and visual appearance of the diagram. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks!
To start working with the e2e tests, run `yarn dev` to start the dev server, after that start cypress by running `cypress open` in the mermaid folder. (Make sure you have path to cypress in order, the binary is located in node_modules/.bin).
To start working with the e2e tests, run `pnpm run dev` to start the dev server, after that start cypress by running `pnpm exec cypress open` in the mermaid folder.
The rendering tests are very straightforward to create. There is a function imgSnapshotTest. This function takes a diagram in text form, the mermaid options and renders that diagram in cypress.
Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature?
The source files for documentation are in `/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated.
The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated.
#### Adding to or changing the documentation organization
If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `src/docs/_sidebar.md`.
If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `mermaid/src/docs/.vitepress/config.js`.
When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/
@@ -8,7 +10,7 @@ English | [简体中文](./README.zh-CN.md)
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<ahref="https://mermaid-js.github.io/mermaid/landing/"><imgsrc="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>
<ahref="https://mermaid-js.github.io/mermaid/landing/"><imgsrc="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
@@ -24,12 +26,12 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia
<br/>
Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).<br/>
[Tutorials](./docs/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md).
[Tutorials](./docs/config/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md).
You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md).
@@ -335,7 +337,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio
A quick note from Knut Sveidqvist:
> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._
> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_
>
> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._
>
> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._
>
> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_
<ahref="https://mermaid-js.github.io/mermaid/landing/"><imgsrc="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>
<ahref="https://mermaid-js.github.io/mermaid/landing/"><imgsrc="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>
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
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.")
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback
click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
</pre>
@@ -119,7 +119,7 @@
<preid="FirstLine"class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback2
click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
</pre>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.