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"