diff --git a/lib/cli.js b/lib/cli.js index ed037a5898..db28e62e49 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -29,7 +29,7 @@ function cli(options) { , css: 't' , width: 'w' } - , 'boolean': ['help', 'png', 'svg'] + , 'boolean': ['help', 'png', 'svg', 'verbose'] , 'string': ['outputDir'] } @@ -94,25 +94,38 @@ cli.prototype.parse = function(argv, next) { else { options.png = true } - + if (options.sequenceConfig) { - options.sequenceConfig = checkConfig(options.sequenceConfig) + try { + fs.accessSync(options.sequenceConfig, fs.R_OK) + + } catch (err) { + this.errors.push(err) + } + } else { + options.sequenceConfig = null } - + if (options.ganttConfig) { - options.ganttConfig = checkConfig(options.ganttConfig) + try { + fs.accessSync(options.ganttConfig, fs.R_OK) + + } catch (err) { + this.errors.push(err) + } + } else { + options.ganttConfig = null } if (options.css) { try { - options.css = fs.readFileSync(options.css, 'utf8') - + fs.accessSync(options.css, fs.R_OK) } catch (err) { this.errors.push(err) } } else { - options.css = fs.readFileSync(path.join(__dirname, '..', 'dist', 'mermaid.css')) + options.css = path.join(__dirname, '..', 'dist', 'mermaid.css') } // set svg/png flags appropriately @@ -136,17 +149,6 @@ cli.prototype.parse = function(argv, next) { } } -function checkConfig(configPath) { - try { - var text = fs.readFileSync(configPath, 'utf8'); - JSON.parse(text) - return text - } catch (e) { - console.log(e); - return null; - } -} - function createCheckPhantom(_phantomPath) { var phantomPath = _phantomPath , phantomVersion diff --git a/lib/phantomscript.js b/lib/phantomscript.js index cd4ce259c2..f9ac51c6ac 100644 --- a/lib/phantomscript.js +++ b/lib/phantomscript.js @@ -28,7 +28,6 @@ var system = require('system') , fs = require('fs') , webpage = require('webpage') - var page = webpage.create() , files = system.args.slice(9, system.args.length) , width = system.args[8] @@ -40,22 +39,14 @@ var options = { outputDir: system.args[1] , png: system.args[2] === 'true' ? true : false , svg: system.args[3] === 'true' ? true : false - , css: system.args[4] !== '' ? system.args[4] : '* { margin: 0; padding: 0; }' - , sequenceConfig: system.args[5] - , ganttConfig: system.args[6] + , css: fs.read(system.args[4]) + , sequenceConfig: system.args[5] !== 'null' ? fs.read(system.args[5]) : '{}' + , ganttConfig: system.args[6] !== 'null' ? fs.read(system.args[6]) : '{}' , verbose: system.args[7] === 'true' ? true : false , width: width } , log = logger(options.verbose) - // If no css is suuplied make sure a fixed witdth is given to the gant renderer - if(system.args[3] !== ''){ - if(typeof options.ganttConfig === 'undefined'){ - options.ganttConfig = {}; - } - options.ganttConfig.useWidth = 1200; - } - page.content = [ '' , '' @@ -229,7 +220,7 @@ function executeInPage(data) { , width , height , confWidth = data.confWidth - + toRemove = document.getElementsByClassName('mermaid') if (toRemove && toRemove.length) { for (var i = 0, len = toRemove.length; i < len; i++) { @@ -242,41 +233,26 @@ function executeInPage(data) { elContent = document.createTextNode(contents) el.appendChild(elContent) //el.innerText = 'hello\uD800' //contents; - + document.body.appendChild(el) - + mermaid.initialize({ sequenceDiagram:{useMaxWidth:false}, flowchart:{useMaxWidth:false}, logLevel:1 }); + //console.log('after initialize',sequenceConfig); - - if(typeof sequenceConfig !== undefined && sequenceConfig !== 'undefined'){ - //sc = document.createElement("script") - //scContent = document.createTextNode('mermaid.sequenceConfig = JSON.parse(' + JSON.stringify(sequenceConfig) + ');') - //sc.appendChild(scContent) - - //document.body.appendChild(sc) - mermaid.initialize({ - sequenceDiagram:JSON.parse(sequenceConfig) - }); - } + mermaid.initialize({ + sequenceDiagram:sequenceConfig + }); //console.log('after initialize 2'); - if(typeof ganttConfig !== undefined && ganttConfig !== 'undefined'){ - sc = document.createElement("script") - scContent = document.createTextNode('mermaid.ganttConfig = JSON.parse(' + JSON.stringify(ganttConfig) + ');') - sc.appendChild(scContent) - - document.body.appendChild(sc) - }else{ - sc = document.createElement("script") - scContent = document.createTextNode('mermaid.ganttConfig = {useWidth:1200};') - sc.appendChild(scContent) - - document.body.appendChild(sc) - } + sc = document.createElement("script") + scContent = document.createTextNode('mermaid.ganttConfig = ' + ganttConfig + ';') + sc.appendChild(scContent) + + document.body.appendChild(sc) mermaid.init();