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`
...
jison throws an error if a branch name starts with an unusual prefix.
For example, a branch named `branch/test-branch` will throw a
parse error, since jison thinks it's a `branch` command, and not
a branch id.
An easy fix is to use the `(?=\s|$)` regex to ensure that only
'branch ' or 'branch\n' will be parsed as the branch command.
Fixes: https://github.com/mermaid-js/mermaid/issues/3362
`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: (67 commits)
fix: Tsconfig
Update prettier
chore: Run postbuild with prepare
(formatting) prettier fix
Removed warnings in the grammar oand some console logging
ci: lint .jison files for any console.log()
fix JSDOC @param, @returns; fixed a few minor typos in comments
unmangle sentence about doc changes committed and showing up on docsify site
change references from /docs to /src/docs; rework doc section in CONTRIBUTING
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 @types/dompurify from 2.3.3 to 2.3.4
chore(deps-dev): bump jest-environment-jsdom from 29.0.1 to 29.0.2
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
#3336 Merged typescript changes
Merged typescript changes
...
* 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
...
Reverts commits:
- Disabling coveralls temporarilly
aedf066337
- Tmo disabling of coveralls
a6b4cb24b8
I'm not 100% sure whether the `parallel` option is needed,
but I've left it disabled for now, since it'd would mean that we need
to merge both the `test.yml` and the `e2e.yml` file together.
Coverage for `.jison` files doesn't make sense, since most of the
created JS lines are auto-generated.
If jison ever adds a source-map feature, we can renable coverage for
jison.
* 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
...
Converts the *.jison files into .js, then lints them using just
the `no-console` rule.
To keep things simple, I've just made this run only on CI.
If we want to do more complex linting on `*.jison` files, it might
be worth making an `eslint-plugin-jison`, so that we can directly
parse jison in ESLint.
* 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)
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
...
Adds an eslint rule forbidding using `console` in the mermaid source
code. Instead, the `src/logger` should be used instead, so that
websites can disable logging.
This is allowed in the `cypress/` and `demos/` folder.
I've also removed the two instances on `console.log`/`console.error`
that currently exist in the mermaid source code.
Adds `yarn build:prod` to the `yarn prepare` script.
For most package managers (e.g. yarn v1 and NPM),
the `prepare` script is called automatically when installing
from a local location/git url. It's not called when installing
from NPM.
This is required because the source code doesn't contain
the `dist/mermaid.min.js` file, it has to be built first.
Fixes installing mermaid via `git`, e.g.:
`yarn add git+https://github.com/mermaid-js/mermaid.git`
Fixes: 1549eb20df
Passing a single Node to mermaid.init() results in an error, as it
calls `new NodeList()`, which causes `TypeError: Illegal constructor`.
See 5597cf45bf/src/mermaid.ts (L73)
If we instead use the `ArrayLike` interface, we can just use a simple
array, instead of a NodeList.
I've also added a basic test case, by mocking the `mermaidAPI.render()`
function so it isn't called, as the d3 functions don't work in Node.JS.
The mocks are a bit messy, since
a) Jest doesn't fully support ESM yet, and
b) mermaidAPI is frozen with `Object.freeze()`,
but the mermaidAPI mocks work as long as we keep them simple.
Fixes: c68ec54fdd
gitGraph does not support branch names that start with a number,
because the gitGraph.jison file parses these as NUM (number) instead.
To fix this, I've changed the NUM parser to only accept strings that
end with whitespace (e.g 1234 is a NUM, but 1234abc is not a NUM).
To do this, I had to move the "skip all whitespace" step to the
end of the parser, but this doesn't seem to have caused any issues,
so it's probably fine.
* 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
...
* develop:
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
Replacing replaceAll with replace
Rework 'parseDuration' as a pure duration parsing
Supports duration in decimal
Create a more consistent 'parseDuration'
Fix svgDraw return types
Add more tests
Fix nested types
Fix nested types
Add nested test
Updating to version to 9.1.6
* develop:
chore(deps-dev): bump @commitlint/cli from 17.0.3 to 17.1.1 (#3376)
chore(deps-dev): bump eslint from 8.22.0 to 8.23.0 (#3378)
chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3375)
chore(deps-dev): bump @commitlint/config-conventional (#3370)
chore(deps-dev): bump @babel/core from 7.18.10 to 7.18.13 (#3373)
chore(deps-dev): bump eslint-plugin-jest from 26.8.7 to 27.0.1 (#3372)
chore(deps-dev): bump jest-environment-jsdom from 28.1.3 to 29.0.1 (#3369)
chore(deps-dev): bump babel-jest from 28.1.3 to 29.0.1 (#3368)
Updating docs to latest mermaid version
build: add eslint --cache file
Adjusting size and test
Updated viewBox settings
Border
feat(git): allow custom merge commit ids
Document line curve options
Added 'ms' duration
Fix font weight for messages in sequence diagrams
Added lollipop feature for updated codebase
Currently, doing a `git commit` is a bit low, as eslint runs before
the commit.
Adding an `eslint --cache` makes it slightly faster.
On my PC, `git commit` currently is `Done in 12.24s.`
However, after adding this cache file, it is `Done in 7.54s.`,
so about 1.6x faster.
Currently, merge commits can have a git tag, but they cannot have a
custom git commit ID.
This commit allows modifying the default merge commit id.
It also displays all merge commits IDs, which undoes
3ccf027f42
* develop: (22 commits)
Fix for build by revering jsdoc
Revert "chore(deps-dev): bump documentation from 13.2.0 to 14.0.0"
Review comments.
Add test for handling parameter names that are "default"
Add test for handling parameter names that are keywords
Add test for handling trailing whitespaces
Add first C4 parser test
chore(deps-dev): bump eslint-plugin-jest from 26.8.2 to 26.8.7
chore(deps-dev): bump documentation from 13.2.0 to 14.0.0
chore(deps-dev): bump terser-webpack-plugin from 5.3.4 to 5.3.5
chore(deps-dev): bump prettier-plugin-jsdoc from 0.3.38 to 0.4.1
test(e2e): add array and generic attributes erDiagram test
test(common): add generic parser test
test(parser): add tests for generics and arrays in erDiagram
feat: add array and generic symbols for erDiagram
Lint markdown
Fix prettier formatting in vscode
Prettier
Fix `securityLevel` docs
Update README.md
...
Replaced "JavaScript based" with "JavaScript-based" in the following sentence: "Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams."
Previously, messages and notes that had multiple lines (via `<br>`-tags) were only displayed correctly
when using the default `center` value for the `messageAlign` and `noteAlign` configuration options.
Using `left` or `right` for the alignment options caused the text to collapse and become illegible,
as outlined in issue #3011.
This comes as a side-effect from how the internal `valign` text-rendering option was configured for
messages and notes:
```js
// Example from `sequenceRenderer.js: drawMessage()`
textObj.anchor = conf.messageAlign;
textObj.valign = conf.messageAlign;
```
Both the `anchor` option (which controls left-right alignment) and the `valign` option (which controls
vertical top-down placement) were set to the same value, the user-provided `messageAlign` config option.
While `left` and `right` are valid values for the `anchor` option, they were effectively no-ops for the
`valign` option, which only supports `top`, `start`, `middle`, `center`, `bottom`, and `end`.
To fix the issue, the `valign` property is now always set to `center` for notes and messages.
Similarly, the `dominantBaseline` option of texts is now always set to `middle`, rather than setting it to
either `text-{before,after}-edge`, which caused left-aligned multi-line text to always be "top-left" aligned
inside a note (or "bottom-right" when attempting to right-align).
Now, texts in messages and notes are always vertically centered and alignment options correctly apply for
both single and multi-line content.
- Ignore all files except the license and dist/ folder when installing with Bower. [\#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy))
- New grammar will allow statements ending without semicolon as disccused in Issue \#38 [\#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40))
- Class based styling [\#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes))
@@ -7,6 +7,7 @@ So you want to help? That's great!
Here are a few things to know to get you started on the right path.
## Development Installation
```bash
git clone git@github.com:mermaid-js/mermaid.git
cd mermaid
@@ -16,11 +17,11 @@ yarn test
## Committing code
We make all changes via pull requests. As we have many pull requests from developers new to mermaid, the current approach is to have *knsv, Knut Sveidqvist* as a main reviewer of changes and merging pull requests. More precisely like this:
We make all changes via pull requests. As we have many pull requests from developers new to mermaid, the current approach is to have _knsv, Knut Sveidqvist_ as a main reviewer of changes and merging pull requests. More precisely like this:
* Large changes reviewed by knsv or other developer asked to review by knsv
* Smaller low-risk changes like dependencies, documentation etc can be merged by active collaborators
*documentation (updates to the docs folder is also allowed via direct commits)
- 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)
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.
@@ -36,12 +37,28 @@ Another:
Less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator.
The documentation is located in the `docs` directory and published using GitHub Pages.
The documentation site is powered by [Docsify](https://docsify.js.org), a simple documentation site generator.
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).
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
If you want to preview the documentation site on your machine, you need to install `docsify-cli`:
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.
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"]
```
**_DO NOT CHANGE FILES IN `/docs`_**
### 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.**
If you want to preview the whole documentation site on your machine, you need to install `docsify-cli`:
```sh
$ npm i docsify-cli -g
@@ -93,8 +110,9 @@ The rendering tests are very straightforward to create. There is a function imgS
When running in ci it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag for review it if it differs.
This is what a rendering test looks like:
```javascript
it('should render forks and joins', () => {
it('should render forks and joins',()=>{
imgSnapshotTest(
`
stateDiagram
@@ -112,17 +130,20 @@ This is what a rendering test looks like:
{logLevel:0}
);
cy.get('svg');
});
```
});
```
### **Add documentation for it**
Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature?
The docs are located in the docs folder and are ofc written in markdown. Just pick the right section and start typing. If you want to add to the structure as in adding a new section and new file you do that via the _navbar.md.
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 changes in master is reflected in https://mermaid-js.github.io/mermaid/ once released the updates are committed to https://mermaid-js.github.io/#/
#### 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`.
When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/
## Last words
@@ -130,5 +151,4 @@ Don't get daunted if it is hard in the beginning. We have a great community with
[Join our slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE)

@@ -6,8 +6,6 @@ English | [简体中文](./README.zh-CN.md)
:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!**
**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>
@@ -15,40 +13,38 @@ English | [简体中文](./README.zh-CN.md)
## About
<!-- <Main description> -->
Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
Mermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
> Doc-Rot is a Catch-22 that Mermaid helps to solve.
Diagramming and documentation costs precious developer time and gets outdated quickly.
But not having diagrams or docs ruins productivity and hurts organizational learning.<br/>
Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).<br/>
<br/>
Mermaid addresses this problem by enabling users to create easily modifiable diagrams. It can also be made part of production scripts (and other pieces of code).<br/>
<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).
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/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).
In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests.
__The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).__
**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).**
title System Context diagram for Internet Banking System
@@ -320,19 +325,20 @@ For public sites, it can be precarious to retrieve text from users on the intern
As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security.
*Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code.*
_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
## Reporting vulnerabilities
To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
## Appreciation
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!*
> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_
---
*Mermaid was created by Knut Sveidqvist for easier documentation.*
_Mermaid was created by Knut Sveidqvist for easier documentation._
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.