From ad126c838e5238b201808c14972ecab9ded6f640 Mon Sep 17 00:00:00 2001 From: Kolja Markwardt Date: Tue, 15 Oct 2019 22:22:01 +0200 Subject: [PATCH 1/6] reference the CONTRIBUTING.md in README --- CONTRIBUTING.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 842414531..f29faf93b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ Here are a few things to know to get you started on the right path. ## Committing code -We make all changes via pull requests. As we have many pull requests from deveöopers 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 dependecies, documentation etc can be nerged by active collaborators diff --git a/README.md b/README.md index 0d3e6c394..63c142341 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ Don't hesitate to contact me if you want to get involved. # For contributors - +Detailed information about contributing can be found in the [Contribution guide](CONTRIBUTING.md) ## Setup yarn install From 2a2fd7a8b12e7c487e8b041ac52df941cb1459dd Mon Sep 17 00:00:00 2001 From: Sakis bal <43223812+ThanasisMpalatsoukas@users.noreply.github.com> Date: Wed, 16 Oct 2019 10:08:24 +0300 Subject: [PATCH 2/6] Small gramatical mistake --- src/diagrams/sequence/sequenceDiagram.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/sequence/sequenceDiagram.spec.js b/src/diagrams/sequence/sequenceDiagram.spec.js index 2ed1c411c..398db8e6e 100644 --- a/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/src/diagrams/sequence/sequenceDiagram.spec.js @@ -15,7 +15,7 @@ describe('when parsing a sequenceDiagram', function() { parser.yy = sequenceDb; parser.yy.clear(); }); - it('it should handle a sequenceDiagram defintion', function() { + it('it should handle a sequenceDiagram definition', function() { const str = 'sequenceDiagram\n' + 'Alice->Bob:Hello Bob, how are you?\n' + From 50c707ba51056f068fe3ef5ab712442955f10b1e Mon Sep 17 00:00:00 2001 From: abeaton Date: Fri, 18 Oct 2019 09:41:51 -0400 Subject: [PATCH 3/6] Fix typos in CONTRIBUTING.md --- CONTRIBUTING.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f29faf93b..b62e8f20f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ Here are a few things to know to get you started on the right path. 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 dependecies, documentation etc can be nerged by active collaborators +* Smaller low-risk changes like dependecies, documentation etc can be merged by active collaborators * documentation (updates to the 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. @@ -30,9 +30,9 @@ Less strict here, it is ok to commit directly in the develop branch if you are a ## Branching -Going forward we will use a git flow inspired approach branching. So development is done in develop,to do the development in the develop. +Going forward we will use a git flow inspired approach to branching. So development is done in develop, to do the development in the develop. -Once devlopment is done we branch a release branch from develop for testing. +Once development is done we branch a release branch from develop for testing. Once the release happens we merge the release branch to master and kill the release branch. @@ -44,13 +44,13 @@ A new feature has been born. Great! But without the steps below it might just .. ### **Add unit tests for the parsing part** -This is important so that, if someone else does a change to the grammar that does not know about this great feature, gets notified early on when that a change breaks the parser. Another important aspect is that without proper parsing tests refactoring is pretty much impossible. +This is important so that, if someone else does a change to the grammar that does not know about this great feature, gets notified early on when that change breaks the parser. Another important aspect is that without proper parsing tests refactoring is pretty much impossible. ### **Add e2e tests** -This tests the rendering and visual apearance if the diagram. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chans that it breaks! +This tests the rendering and visual apearance 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 thar 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 `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). 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. @@ -82,7 +82,7 @@ This is what a rendering test looks like: ### **Add documentation for it** -Finally, if it is not in the documentation, no one will now about it and then **no one will use it**. Wouldn't that be sad? With all effort that was put into the feature? +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. @@ -90,7 +90,7 @@ The changes in master is reflected in http://knsv.github.io/mermaid/ once releas ## Last words -Don't get daunted if it is hard in the beginning. We have a great community with only enouraging words. So if you get stuck, ask for help and hints in the slack forum. If you want to show off something good, show it off there. +Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So if you get stuck, ask for help and hints in the slack forum. If you want to show off something good, show it off there. [Join our slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) From be61a03a98f0b5c2833d3b898fe4dae39375bedc Mon Sep 17 00:00:00 2001 From: Nacho Date: Fri, 18 Oct 2019 09:55:46 -0400 Subject: [PATCH 4/6] Removed gitter and added slack badge --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 63c142341..b4dc8fa52 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ -[![Build Status](https://travis-ci.org/knsv/mermaid.svg?branch=master)](https://travis-ci.org/knsv/mermaid) -[![Coverage Status](https://coveralls.io/repos/github/knsv/mermaid/badge.svg?branch=master)](https://coveralls.io/github/knsv/mermaid?branch=master) -[![Join the chat at https://gitter.im/knsv/mermaid](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/knsv/mermaid?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid) -# mermaid + +# mermaid [![Build Status](https://travis-ci.org/knsv/mermaid.svg?branch=master)](https://travis-ci.org/knsv/mermaid) [![Coverage Status](https://coveralls.io/repos/github/knsv/mermaid/badge.svg?branch=master)](https://coveralls.io/github/knsv/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid) ## Special note regarding version 8.2 From 0e7876536dbf5a3da31ffd58bf47dbccb8f9e214 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 19 Oct 2019 17:45:56 +0200 Subject: [PATCH 5/6] Highlighting state diagrams and class diagrams in the readme --- README.md | 7 +++++++ docs/README.md | 10 +++++++++- docs/img/new-diagrams.png | Bin 0 -> 33968 bytes img/new-diagrams.png | Bin 0 -> 33968 bytes 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 docs/img/new-diagrams.png create mode 100644 img/new-diagrams.png diff --git a/README.md b/README.md index b4dc8fa52..b970b2292 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ # mermaid [![Build Status](https://travis-ci.org/knsv/mermaid.svg?branch=master)](https://travis-ci.org/knsv/mermaid) [![Coverage Status](https://coveralls.io/repos/github/knsv/mermaid/badge.svg?branch=master)](https://coveralls.io/github/knsv/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid) +## New diagrams in 8.4 + +With version 8.4 class diagrams has got some new features, bug fixes and documentation. Another new feature in 8.4 is the new diagram +type, state diagrams. + +![Image show the two new diagram types](./img/new-diagrams.png) + ## Special note regarding version 8.2 In version 8.2 a security improvement was introduced. A securityLevel configuration was introduced which sets the level of trust to be used on the parsed diagrams. diff --git a/docs/README.md b/docs/README.md index 621474feb..409d4f40c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,12 +4,20 @@ # mermaid +## New diagrams in 8.4 + +With version 8.4 class diagrams has got some new features, bug fixes and documentation. Another new feature in 8.4 is the new diagram +type, state diagrams. + +![Image show the two new diagram types](./img/new-diagrams.png) + + ## Special note regarding version 8.2 In version 8.2 a security improvement was introduced. A securityLevel configuration was introduced wich sets the level of trust to be used on the parsed diagrams. * **true**: (default) tags in text are encoded, click functionality is disabled -* false: tags in text are allowed, click functionality is enabledClosed issues: +* false: tags in text are allowed, click functionality is enabledClosed issues: ⚠️ **Note** : This changes the default behaviour of mermaid so that after upgrade to 8.2, if the securityLevel is not configured, tags in flowcharts are encoded as tags and clicking is prohibited. diff --git a/docs/img/new-diagrams.png b/docs/img/new-diagrams.png new file mode 100644 index 0000000000000000000000000000000000000000..dd9d0f14ed8bfd7ab20614f142ab010091760822 GIT binary patch literal 33968 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 Unq3A0at$EpkXDwemoN$bA2d8vqyPW_ literal 0 HcmV?d00001 diff --git a/img/new-diagrams.png b/img/new-diagrams.png new file mode 100644 index 0000000000000000000000000000000000000000..dd9d0f14ed8bfd7ab20614f142ab010091760822 GIT binary patch literal 33968 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 Unq3A0at$EpkXDwemoN$bA2d8vqyPW_ literal 0 HcmV?d00001 From ca5e60b38b98448695d1a00ce1bdd1feeefa046d Mon Sep 17 00:00:00 2001 From: Pirate Praveen Date: Mon, 21 Oct 2019 14:34:04 +0530 Subject: [PATCH 6/6] Use dagre-d3 master branch (for d3v5) --- package.json | 6 ++-- src/diagrams/class/classRenderer.js | 4 +-- src/diagrams/flowchart/flowChartShapes.js | 2 +- src/diagrams/flowchart/flowRenderer.js | 6 ++-- src/diagrams/state/stateRenderer.js | 4 +-- yarn.lock | 37 ++++++++++++----------- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index d6338dd12..2d810a7cd 100644 --- a/package.json +++ b/package.json @@ -49,9 +49,9 @@ "@braintree/sanitize-url": "^3.1.0", "crypto-random-string": "^3.0.1", "d3": "^5.7.0", - "dagre-d3-renderer": "^0.5.8", - "dagre-layout": "^0.8.8", - "graphlibrary": "^2.2.0", + "dagre-d3": "dagrejs/dagre-d3", + "dagre": "^0.8.4", + "graphlib": "^2.1.7", "he": "^1.2.0", "lodash": "^4.17.11", "minify": "^4.1.1", diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 8d382f97d..0b20993a0 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -1,6 +1,6 @@ import * as d3 from 'd3'; -import dagre from 'dagre-layout'; -import graphlib from 'graphlibrary'; +import dagre from 'dagre'; +import graphlib from 'graphlib'; import { logger } from '../../logger'; import classDb from './classDb'; import utils from '../../utils'; diff --git a/src/diagrams/flowchart/flowChartShapes.js b/src/diagrams/flowchart/flowChartShapes.js index e9b17ae89..ed69c4801 100644 --- a/src/diagrams/flowchart/flowChartShapes.js +++ b/src/diagrams/flowchart/flowChartShapes.js @@ -1,4 +1,4 @@ -import dagreD3 from 'dagre-d3-renderer'; +import dagreD3 from 'dagre-d3'; function question(parent, bbox, node) { const w = bbox.width; diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index 0e704275f..f290beeeb 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -1,11 +1,11 @@ -import graphlib from 'graphlibrary'; +import graphlib from 'graphlib'; import * as d3 from 'd3'; import flowDb from './flowDb'; import flow from './parser/flow'; import { getConfig } from '../../config'; -import dagreD3 from 'dagre-d3-renderer'; -import addHtmlLabel from 'dagre-d3-renderer/lib/label/add-html-label.js'; +import dagreD3 from 'dagre-d3'; +import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js'; import { logger } from '../../logger'; import { interpolateToCurve } from '../../utils'; import flowChartShapes from './flowChartShapes'; diff --git a/src/diagrams/state/stateRenderer.js b/src/diagrams/state/stateRenderer.js index 437f336ae..b159d6ef8 100644 --- a/src/diagrams/state/stateRenderer.js +++ b/src/diagrams/state/stateRenderer.js @@ -1,6 +1,6 @@ import * as d3 from 'd3'; -import dagre from 'dagre-layout'; -import graphlib from 'graphlibrary'; +import dagre from 'dagre'; +import graphlib from 'graphlib'; import { logger } from '../../logger'; import stateDb from './stateDb'; import { parser } from './parser/stateDiagram'; diff --git a/yarn.lock b/yarn.lock index bd0b28da5..4eed7d7d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3319,7 +3319,7 @@ d3-zoom@1: d3-selection "1" d3-transition "1" -d3@^5.7.0: +d3@^5.12, d3@^5.7.0: version "5.12.0" resolved "https://registry.yarnpkg.com/d3/-/d3-5.12.0.tgz#0ddeac879c28c882317cd439b495290acd59ab61" integrity sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg== @@ -3356,21 +3356,22 @@ d3@^5.7.0: d3-voronoi "1" d3-zoom "1" -dagre-d3-renderer@^0.5.8: - version "0.5.8" - resolved "https://registry.yarnpkg.com/dagre-d3-renderer/-/dagre-d3-renderer-0.5.8.tgz#aa071bb71d3c4d67426925906f3f6ddead49c1a3" - integrity sha512-XH2a86isUHRxzIYbjQVEuZtJnWEufb64H5DuXIUmn8esuB40jgLEbUUclulWOW62/ZoXlj2ZDyL8SJ+YRxs+jQ== +dagre-d3@dagrejs/dagre-d3: + version "0.6.4-pre" + resolved "https://codeload.github.com/dagrejs/dagre-d3/tar.gz/e1a00e5cb518f5d2304a35647e024f31d178e55b" dependencies: - dagre-layout "^0.8.8" - lodash "^4.17.5" + d3 "^5.12" + dagre "^0.8.4" + graphlib "^2.1.7" + lodash "^4.17.15" -dagre-layout@^0.8.8: - version "0.8.8" - resolved "https://registry.yarnpkg.com/dagre-layout/-/dagre-layout-0.8.8.tgz#9b6792f24229f402441c14162c1049e3f261f6d9" - integrity sha512-ZNV15T9za7X+fV8Z07IZquUKugCxm5owoiPPxfEx6OJRD331nkiIaF3vSt0JEY5FkrY0KfRQxcpQ3SpXB7pLPQ== +dagre@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.4.tgz#26b9fb8f7bdc60c6110a0458c375261836786061" + integrity sha512-Dj0csFDrWYKdavwROb9FccHfTC4fJbyF/oJdL9LNZJ8WUvl968P6PAKEriGqfbdArVJEmmfA+UyumgWEwcHU6A== dependencies: - graphlibrary "^2.2.0" - lodash "^4.17.5" + graphlib "^2.1.7" + lodash "^4.17.4" dashdash@^1.12.0: version "1.14.1" @@ -5132,10 +5133,10 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== -graphlibrary@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/graphlibrary/-/graphlibrary-2.2.0.tgz#017a14899775228dec4497a39babfdd6bf56eac6" - integrity sha512-XTcvT55L8u4MBZrM37zXoUxsgxs/7sow7YSygd9CIwfWTVO8RVu7AYXhhCiTuFEf+APKgx6Jk4SuQbYR0vYKmQ== +graphlib@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.7.tgz#b6a69f9f44bd9de3963ce6804a2fc9e73d86aecc" + integrity sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w== dependencies: lodash "^4.17.5" @@ -7044,7 +7045,7 @@ lodash@4.17.11: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== -lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==