diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml new file mode 100644 index 000000000..077cc568b --- /dev/null +++ b/.github/pr-labeler.yml @@ -0,0 +1,3 @@ +'Type: Bug / Error': 'bug/*' +'Type: Enhancement': 'feature/*' +'Type: Other': 'other/*' diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 000000000..be3c858b1 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,19 @@ +name-template: '$NEXT_PATCH_VERSION' +tag-template: '$NEXT_PATCH_VERSION' +categories: + - title: '🚀 Features' + labels: + - 'Type: Enhancement' + - title: '🐛 Bug Fixes' + labels: + - 'Type: Bug / Error' + - title: '🧰 Maintenance' + label: 'Type: Other' +change-template: '- $TITLE (#$NUMBER) @$AUTHOR' +no-changes-template: 'This release contains minor changes and bugfixes.' +template: | + # Release Notes + + $CHANGES + + 🎉 **Thanks to all contributors helping with this release!** 🎉 diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml new file mode 100644 index 000000000..b6fab95ce --- /dev/null +++ b/.github/workflows/pr-labeler.yml @@ -0,0 +1,13 @@ +name: Apply labels to PR +on: + pull_request: + types: [opened] + +jobs: + pr-labeler: + runs-on: ubuntu-latest + steps: + - name: Label PR + uses: TimonVS/pr-labeler-action@v3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml new file mode 100644 index 000000000..68be3a1e5 --- /dev/null +++ b/.github/workflows/release-draft.yml @@ -0,0 +1,15 @@ +name: Draft Release + +on: + push: + branches: + - develop + +jobs: + draft-release: + runs-on: ubuntu-latest + steps: + - name: Draft Release + uses: toolmantim/release-drafter@v5.2.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-preview-publish.yml b/.github/workflows/release-preview-publish.yml index b6c29b6a3..e7d5b994c 100644 --- a/.github/workflows/release-preview-publish.yml +++ b/.github/workflows/release-preview-publish.yml @@ -8,15 +8,12 @@ on: jobs: publish: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [10.x] steps: - uses: actions/checkout@v1 - - name: Setup Node.js ${{ matrix.node-version }} + - name: Setup Node.js uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node-version }} + node-version: 10.x - name: Install Yarn run: npm i yarn --global @@ -24,7 +21,7 @@ jobs: run: npm i json --global - name: Install Packages - run: yarn install + run: yarn install --frozen-lockfile - name: Publish run: | diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml new file mode 100644 index 000000000..0f8227359 --- /dev/null +++ b/.github/workflows/release-publish.yml @@ -0,0 +1,46 @@ +name: Publish release + +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: fregante/setup-git-token@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 10.x + - name: Install Yarn + run: npm i yarn --global + + - name: Install Json + run: npm i json --global + + - name: Install Packages + run: yarn install --frozen-lockfile + + - name: Prepare release + run: | + VERSION=${GITHUB_REF:10} + echo "Preparing release $VERSION" + git checkout -t origin/release/$VERSION + npm version --no-git-tag-version --allow-same-version $VERSION + git add package.json + git commit -m "Bump version $VERSION" + git checkout -t origin/master + git merge -m "Release $VERSION" --no-ff release/$VERSION + git push --no-verify + + - name: Publish + run: | + npm set //registry.npmjs.org/:_authToken $NPM_TOKEN + npm publish + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ee8fae482..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "typescript.format.enable": false, - "typescript.reportStyleChecksAsWarnings": false, - "typescript.validate.enable": false, - "javascript.validate.enable": false, - "editor.formatOnSave": false, - "editor.snippetSuggestions": "top" -} diff --git a/babel.config.js b/babel.config.js index c76a0d028..c0f6a11d4 100644 --- a/babel.config.js +++ b/babel.config.js @@ -3,9 +3,7 @@ module.exports = { [ '@babel/preset-env', { - targets: { - node: 'current' - } + targets: "defaults, ie >= 11, current node" } ] ] diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js index 0125a4373..29c4aba86 100644 --- a/cypress/integration/rendering/classDiagram.spec.js +++ b/cypress/integration/rendering/classDiagram.spec.js @@ -2,7 +2,7 @@ import { imgSnapshotTest } from '../../helpers/util'; describe('Class diagram', () => { - it('should render a simple class diagram', () => { + it('1: should render a simple class diagram', () => { imgSnapshotTest( ` classDiagram @@ -33,7 +33,8 @@ describe('Class diagram', () => { ); cy.get('svg'); }); - it('should render a simple class diagrams with cardinality', () => { + + it('2: should render a simple class diagrams with cardinality', () => { imgSnapshotTest( ` classDiagram @@ -132,4 +133,34 @@ describe('Class diagram', () => { ); cy.get('svg'); }); + + it('4: should render a simple class diagram with comments', () => { + imgSnapshotTest( + ` + classDiagram + %% this is a comment + Class01 <|-- AveryLongClass : Cool + <<interface>> Class01 + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label + class Class10 { + <<service>> + int id + test() + } + `, + {} + ); + cy.get('svg'); + }); }); diff --git a/cypress/integration/rendering/flowchart.spec.js b/cypress/integration/rendering/flowchart.spec.js index 5cf75f53e..a27f3b50c 100644 --- a/cypress/integration/rendering/flowchart.spec.js +++ b/cypress/integration/rendering/flowchart.spec.js @@ -14,6 +14,7 @@ describe('Flowcart', () => { { flowchart: { htmlLabels: false } } ); }); + it('2: should render a simple flowchart with htmlLabels', () => { imgSnapshotTest( `graph TD @@ -26,6 +27,7 @@ describe('Flowcart', () => { { flowchart: { htmlLabels: true } } ); }); + it('3: should render a simple flowchart with line breaks', () => { imgSnapshotTest( ` @@ -99,6 +101,7 @@ describe('Flowcart', () => { {} ); }); + it('6: should render a flowchart full of icons', () => { imgSnapshotTest( ` @@ -178,6 +181,7 @@ describe('Flowcart', () => { {} ); }); + it('8: should render subgraphs', () => { imgSnapshotTest( ` @@ -190,7 +194,7 @@ describe('Flowcart', () => { ); }); - it('9: should render subgraphs with a title startign with a digit', () => { + it('9: should render subgraphs with a title starting with a digit', () => { imgSnapshotTest( ` graph TB @@ -237,7 +241,7 @@ describe('Flowcart', () => { ); }); - it('11: should render a flowchart with ling sames and class definitoins', () => { + it('11: should render a flowchart with long names and class definitions', () => { imgSnapshotTest( `graph LR sid-B3655226-6C29-4D00-B685-3D5C734DC7E1[" @@ -356,6 +360,7 @@ describe('Flowcart', () => { } ); }); + it('13: should render hexagons', () => { imgSnapshotTest( ` @@ -377,4 +382,18 @@ describe('Flowcart', () => { } ); }); + + it('14: should render a simple flowchart with comments', () => { + imgSnapshotTest( + `graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + %% this is a comment + C -->|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + `, + { flowchart: { htmlLabels: false } } + ); + }); }); diff --git a/docs/classDiagram.md b/docs/classDiagram.md index 057618d4a..6e838c6cd 100644 --- a/docs/classDiagram.md +++ b/docs/classDiagram.md @@ -322,7 +322,20 @@ class Color{ } ``` +## Comments +Comments can be entered within a class diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any class diagram syntax + +``` +classDiagram +%% This whole line is a comment classDiagram class Shape <> +class Shape{ + <> + noOfVertices + draw() +} + +``` ## Styling diff --git a/docs/flowchart.md b/docs/flowchart.md index c0fe7ad6e..a8e40a145 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -424,6 +424,16 @@ Beginners tip, a full example using interactive links in a html context: ``` +### Comments + +Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax + +``` +graph LR +%% this is a comment A -- text --> B{node} + A -- text --> B -- text2 --> C +``` + ## Styling and classes ### Styling links diff --git a/docs/gantt.md b/docs/gantt.md index 6363011d7..80421bb35 100755 --- a/docs/gantt.md +++ b/docs/gantt.md @@ -173,6 +173,23 @@ More info in: http://momentjs.com/docs/#/parsing/string-format/ More info in: https://github.com/mbostock/d3/wiki/Time-Formatting +## Comments + +Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +``` +gantt + title A Gantt Diagram + %% this is a comment + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` ## Styling diff --git a/docs/index.html b/docs/index.html index 1dfc1bb5c..6a9ac5a27 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ - +