Adds CSS option to the CLI

This commit is contained in:
fardog
2015-02-02 19:02:45 -08:00
parent c4639d11c8
commit 3a96682b9c
6 changed files with 61 additions and 5 deletions

View File

@@ -24,6 +24,7 @@ function cli(options) {
, verbose: 'v'
, phantomPath: 'e'
, sequenceConfig: 'c'
, css: 't'
}
, 'boolean': ['help', 'png', 'svg']
, 'string': ['outputDir']
@@ -42,6 +43,7 @@ function cli(options) {
, " -p --png If SVG was selected, and you also want PNG, set this flag"
, " -o --outputDir Directory to save files, will be created automatically, defaults to `cwd`"
, " -e --phantomPath Specify the path to the phantomjs executable"
, " -t --css Specify the path to a CSS file to be included when processing output"
, " -c --sequenceConfig Specify the path to the file with the configuration to be applied in the sequence diagram"
, " -h --help Show this message"
, " -v --verbose Show logging"
@@ -72,7 +74,7 @@ cli.prototype.parse = function(argv, next) {
}
// ensure that parameter-expecting options have parameters
;['outputDir', 'phantomPath', 'sequenceConfig'].forEach(function(i) {
;['outputDir', 'phantomPath', 'sequenceConfig', 'css'].forEach(function(i) {
if(typeof options[i] !== 'undefined') {
if (typeof options[i] !== 'string' || options[i].length < 1) {
this.errors.push(new Error(i + " expects a value."))
@@ -92,6 +94,14 @@ cli.prototype.parse = function(argv, next) {
options.sequenceConfig = checkConfig(options.sequenceConfig)
}
if (options.css) {
try {
options.css = fs.readFileSync(options.css, 'utf8')
} catch (err) {
this.errors.push(err)
}
}
this.checkPhantom = createCheckPhantom(options.phantomPath)
this.checkPhantom(function(err, path) {

View File

@@ -18,6 +18,7 @@ function processMermaid(files, _options, _next) {
, outputDir
, options.png
, options.svg
, options.css || ''
, options.sequenceConfig
, options.verbose
]

View File

@@ -29,13 +29,14 @@ var system = require('system')
, webpage = require('webpage')
var page = webpage.create()
, files = phantom.args.slice(5, phantom.args.length)
, files = phantom.args.slice(6, phantom.args.length)
, options = {
outputDir: phantom.args[0]
, png: phantom.args[1] === 'true' ? true : false
, svg: phantom.args[2] === 'true' ? true : false
, sequenceConfig: phantom.args[3]
, verbose: phantom.args[4] === 'true' ? true : false
, css: phantom.args[3] !== '' ? phantom.args[3] : '* { margin: 0; padding: 0; }'
, sequenceConfig: phantom.args[4]
, verbose: phantom.args[5] === 'true' ? true : false
}
, log = logger(options.verbose)
@@ -43,7 +44,7 @@ page.content = [
'<html>'
, '<head>'
, '<style type="text/css">'
, '* { margin: 0; padding: 0; }'
, options.css
, '</style>'
, '</head>'
, '<body>'