diff --git a/lib/phantomscript.js b/lib/phantomscript.js
index b552595d6..1e0edf1f0 100644
--- a/lib/phantomscript.js
+++ b/lib/phantomscript.js
@@ -211,7 +211,7 @@ function executeInPage(data) {
var xmlSerializer = new XMLSerializer()
, contents = data.contents
, sequenceConfig = JSON.stringify(data.sequenceConfig)
- , ganttConfig = JSON.stringify(data.ganttConfig).replace(/"(function.*)}"/, "$1")
+ , ganttConfig = JSON.stringify(data.ganttConfig).replace(/"(function.*})"/, "$1")
, toRemove
, el
, elContent
@@ -222,35 +222,28 @@ function executeInPage(data) {
, height
, confWidth = data.confWidth
- toRemove = document.getElementsByClassName('mermaid')
+ var toRemove = document.getElementsByClassName('mermaid')
if (toRemove && toRemove.length) {
for (var i = 0, len = toRemove.length; i < len; i++) {
toRemove[i].parentNode.removeChild(toRemove[i])
}
}
- el = document.createElement("div")
+ var el = document.createElement("div")
el.className = 'mermaid'
- elContent = document.createTextNode(contents)
- el.appendChild(elContent)
- //el.innerText = 'hello\uD800' //contents;
-
+ el.appendChild(document.createTextNode(contents))
document.body.appendChild(el)
var config = {
- sequenceDiagram: sequenceConfig,
+ sequenceDiagram: JSON.parse(sequenceConfig),
flowchart: {useMaxWidth: false},
logLevel: 1
};
mermaid.initialize(config);
- //console.log('after initialize',sequenceConfig);
-
- sc = document.createElement("script")
- scContent = document.createTextNode('mermaid.ganttConfig = ' + ganttConfig + ';')
- sc.appendChild(scContent)
-
+ var sc = document.createElement("script")
+ sc.appendChild(document.createTextNode('mermaid.ganttConfig = ' + ganttConfig + ';'))
document.body.appendChild(sc)
mermaid.init();
diff --git a/src/diagrams/sequenceDiagram/sequenceRenderer.js b/src/diagrams/sequenceDiagram/sequenceRenderer.js
index 3f2afa0ea..0253412d9 100644
--- a/src/diagrams/sequenceDiagram/sequenceRenderer.js
+++ b/src/diagrams/sequenceDiagram/sequenceRenderer.js
@@ -34,8 +34,8 @@ var conf = {
// width of activation box
activationWidth:10,
- //text placement as: tspan | fo | only text as before
- textPlacement: 'fo',
+ //text placement as: tspan | fo | old only text as before
+ textPlacement: 'tspan',
};
exports.bounds = {
diff --git a/src/diagrams/sequenceDiagram/svgDraw.js b/src/diagrams/sequenceDiagram/svgDraw.js
index 1bdb7106e..defd454f1 100644
--- a/src/diagrams/sequenceDiagram/svgDraw.js
+++ b/src/diagrams/sequenceDiagram/svgDraw.js
@@ -326,6 +326,6 @@ var _drawTextCandidateFunc = (function() {
return function(conf) {
return conf.textPlacement==='fo' ? byFo : (
- conf.textPlacement==='tspan' ? byTspan : byText);
+ conf.textPlacement==='old' ? byText: byTspan);
};
})();
diff --git a/src/logger.js b/src/logger.js
index 32c7fb9b3..c26052cfa 100644
--- a/src/logger.js
+++ b/src/logger.js
@@ -75,8 +75,7 @@ function Log(level) {
args.unshift('[' + formatTime(new Date()) + '] ');
console.log.apply(console, args.map(function(a){
if (typeof a === "object") {
- if (a.stack !== undefined) { return a.stack; }
- return JSON.stringify(a, null, 2);
+ return a.toString() + JSON.stringify(a, null, 2);
}
return a;
}));
diff --git a/test/cli_test-output.js b/test/cli_test-output.js
index 775193e27..b85355655 100644
--- a/test/cli_test-output.js
+++ b/test/cli_test-output.js
@@ -13,15 +13,14 @@ var isWin = /^win/.test(process.platform);
var phantomCmd;
if(isWin){
phantomCmd = 'node_modules/.bin/phantomjs.cmd'
- console.log('is win');
- console.log('is win');
+ console.log('is win')
}
else{
phantomCmd = 'node_modules/.bin/phantomjs'
}
var singleFile = {
files: [fileTestMermaid]
- , outputDir: path.join(process.cwd(),'test/tmp2/')
+ , outputDir: path.join(process.cwd(),'test/tmp_single')
, phantomPath: path.join(process.cwd(),phantomCmd)
, width : 1200
, css: path.join(__dirname, '..', 'dist', 'mermaid.css')
@@ -29,8 +28,12 @@ var singleFile = {
, ganttConfig: null
}
, multiFile = {
- files: [path.join('test','fixtures','test.mermaid'), path.join('test','fixtures','test2.mermaid')]
- , outputDir: 'test/tmp2/'
+ files: [path.join('test','fixtures','test.mermaid'),
+ path.join('test','fixtures','test2.mermaid'),
+ path.join('test','fixtures','gantt.mermaid'),
+ path.join('test','fixtures','sequence.mermaid'),
+ ]
+ , outputDir: 'test/tmp_multi'
, phantomPath: path.join(process.cwd(),phantomCmd)
, width : 1200
, css: path.join(__dirname, '..', 'dist', 'mermaid.css')
@@ -45,6 +48,7 @@ test('output of single png', function(t) {
var expected = ['test.mermaid.png']
opt = clone(singleFile)
+ opt.outputDir += '_png'
opt.png = true
mermaid.process(opt.files, opt, function(code) {
@@ -57,9 +61,11 @@ test('output of single png', function(t) {
test('output of multiple png', function(t) {
t.plan(3)
- var expected = ['test.mermaid.png', 'test2.mermaid.png']
+ var expected = ['test.mermaid.png', 'test2.mermaid.png',
+ 'gantt.mermaid.png', 'sequence.mermaid.png']
opt = clone(multiFile)
+ opt.outputDir += '_png'
opt.png = true
mermaid.process(opt.files, opt, function(code) {
@@ -75,6 +81,7 @@ test('output of single svg', function(t) {
var expected = ['test.mermaid.svg']
opt = clone(singleFile)
+ opt.outputDir += '_svg'
opt.svg = true
mermaid.process(opt.files, opt, function(code) {
@@ -87,9 +94,11 @@ test('output of single svg', function(t) {
test('output of multiple svg', function(t) {
t.plan(3)
- var expected = ['test.mermaid.svg', 'test2.mermaid.svg']
+ var expected = ['test.mermaid.svg', 'test2.mermaid.svg',
+ 'gantt.mermaid.svg', 'sequence.mermaid.svg']
opt = clone(multiFile)
+ opt.outputDir += '_svg'
opt.svg = true
mermaid.process(opt.files, opt, function(code) {
@@ -110,28 +119,22 @@ test('output including CSS', function(t) {
, two
opt.png = true
+ opt.outputDir += '_css_png'
opt2.png = true
+ opt2.outputDir += '_css_png'
mermaid.process(opt.files, opt, function(code) {
t.equal(code, 0, 'has clean exit code')
filename = path.join(opt.outputDir, path.basename(expected[0]))
one = fs.statSync(filename)
- //console.log('one: '+opt.files[0]);
opt2.css = path.join('test','fixtures','test.css')
- //console.log(opt2.css);
- console.log('Generating #2');
- //console.log('two: '+opt2.files[0]);
+ console.log('Generating #2');
mermaid.process(opt2.files, opt2, function(code) {
t.equal(code, 0, 'has clean exit code')
two = fs.statSync(filename)
-
- //console.log('one: '+one.size);
- //console.log('two: '+two.size);
-
-
t.notEqual(one.size, two.size)
verifyFiles(expected, opt.outputDir, t)
@@ -151,8 +154,9 @@ function verifyFiles(expected, dir, t) {
}
, function(err) {
t.notOk(err, 'all files passed')
-
- rimraf(dir, function(rmerr) {
+ var delete_tmps = true
+ var _rimraf=delete_tmps ? rimraf : function(dir, f) { f(0); }
+ _rimraf(dir, function(rmerr) {
t.notOk(rmerr, 'cleaned up')
t.end()
})
diff --git a/test/fixtures/gantt.mermaid b/test/fixtures/gantt.mermaid
new file mode 100644
index 000000000..62e1ceba3
--- /dev/null
+++ b/test/fixtures/gantt.mermaid
@@ -0,0 +1,8 @@
+gantt
+dateFormat YYYY-MM-DD
+title Adding GANTT diagram functionality to mermaid
+section A section
+Completed task :done, des1, 2014-01-06,2014-01-08
+Active task :active, des2, 2014-01-09, 3d
+Future task : des3, after des2, 5d
+Future task2 : des4, after des3, 5d