diff --git a/dist/index.html b/dist/index.html index ff7e3300a..d0549ac93 100644 --- a/dist/index.html +++ b/dist/index.html @@ -7,6 +7,12 @@ +
+graph TB +subgraph One + a1-->a2 +end +
graph LR 456ac9b0d15a8b7f1e71073221059886[1051 AAA fa:fa-check] diff --git a/package.json b/package.json index 4a8c59cd4..3201cb12b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "8.0.0-beta.5", + "version": "8.0.0-beta.6", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.js", "keywords": [ @@ -38,7 +38,7 @@ }, "dependencies": { "d3": "^4.13.0", - "dagre-d3-renderer": "^0.5.1", + "dagre-d3-renderer": "^0.5.3", "dagre-layout": "^0.8.6", "graphlibrary": "^2.2.0", "he": "^1.1.1", diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index 5c1f157b8..275e9c39d 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -318,7 +318,7 @@ export const addSubGraph = function (list, title) { return a.filter(function (item) { const type = typeof item - if (item === ' ') { + if (item.trim() === '') { return false } if (type in prims) { return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true) } else { return objs.indexOf(item) >= 0 ? false : objs.push(item) } @@ -329,7 +329,7 @@ export const addSubGraph = function (list, title) { nodeList = uniq(nodeList.concat.apply(nodeList, list)) - const subGraph = { id: 'subGraph' + subCount, nodes: nodeList, title: title } + const subGraph = { id: 'subGraph' + subCount, nodes: nodeList, title: title.trim() } subGraphs.push(subGraph) subCount = subCount + 1 return subGraph.id diff --git a/src/diagrams/flowchart/parser/flow.jison b/src/diagrams/flowchart/parser/flow.jison index 82e827be4..0bbb4281e 100644 --- a/src/diagrams/flowchart/parser/flow.jison +++ b/src/diagrams/flowchart/parser/flow.jison @@ -225,7 +225,7 @@ statement {$$=[];} | clickStatement separator {$$=[];} - | subgraph text separator document end + | subgraph text separator document end {$$=yy.addSubGraph($4,$2);} | subgraph separator document end {$$=yy.addSubGraph($3,undefined);} diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 67750061e..28d273baf 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -22,6 +22,17 @@ describe('when parsing ', function () { expect(edges[0].text).toBe('') }) + it('should handle subgraph with tab indentation', function () { + const res = flow.parser.parse('graph TB\nsubgraph One\n\ta1-->a2\nend') + const subgraphs = flow.parser.yy.getSubGraphs() + expect(subgraphs.length).toBe(1) + const subgraph = subgraphs[0] + expect(subgraph.nodes.length).toBe(2) + expect(subgraph.nodes[0]).toBe('a1') + expect(subgraph.nodes[1]).toBe('a2') + expect(subgraph.title).toBe('One') + }) + it('should handle angle bracket ' > ' as direction LR', function () { const res = flow.parser.parse('graph >;A-->B;') diff --git a/yarn.lock b/yarn.lock index eeb9fff78..ae4166ae7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2209,9 +2209,9 @@ d3@^4.13.0: d3-voronoi "1.1.2" d3-zoom "1.7.1" -dagre-d3-renderer@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/dagre-d3-renderer/-/dagre-d3-renderer-0.5.1.tgz#a0996ed436f13ae9fdb8ac526c3a921e03fa8462" +dagre-d3-renderer@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/dagre-d3-renderer/-/dagre-d3-renderer-0.5.3.tgz#fef1a6c254a2c5945fbeb5257370ec32fe98d980" dependencies: dagre-layout "^0.8.6" lodash "^4.17.5"