You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

48 lines
1002 B

'use strict';
const tildify = require('tildify');
const { magenta } = require('picocolors');
const reservedKeys = {
_: true,
title: true,
layout: true,
slug: true,
s: true,
path: true,
p: true,
replace: true,
r: true,
// Global options
config: true,
debug: true,
safe: true,
silent: true
};
function newConsole(args) {
// Display help message if user didn't input any arguments
if (!args._.length) {
return this.call('help', {_: ['new']});
}
const data = {
title: args._.pop(),
layout: args._.length ? args._[0] : this.config.default_layout,
slug: args.s || args.slug,
path: args.p || args.path
};
const keys = Object.keys(args);
for (let i = 0, len = keys.length; i < len; i++) {
const key = keys[i];
if (!reservedKeys[key]) data[key] = args[key];
}
return this.post.create(data, args.r || args.replace).then(post => {
this.log.info('Created: %s', magenta(tildify(post.path)));
});
}
module.exports = newConsole;