diff --git a/README.md b/README.md index 446efc7..016c257 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ Inside files you can use the handlebar syntax ```{{variable}}```. * ```name_pc```: Name converted to PascalCase * ```name_sc```: Name converted to slug-case * ```name_cc```: Name converted to CamelCase +* ```filename```: Filename - different from `name` as it takes into account any '/' included in the arguments. See default templates for examples. diff --git a/src/generate.js b/src/generate.js index 4b06fb6..c5b03f2 100644 --- a/src/generate.js +++ b/src/generate.js @@ -32,7 +32,7 @@ module.exports = function generate(type, options, settings) { console.log(chalk.green(chalk.bold(`Generating files from '${type}' template with name: ${options.name}`))); metalsmith(fullTemplatePath) - .metadata(Object.assign({}, getNames(options.name))) + .metadata(Object.assign({}, getNames(options.name), { filename: getFilename(options.name) })) .source('.') .destination(path.resolve(options.destination)) .clean(false) @@ -49,6 +49,14 @@ module.exports = function generate(type, options, settings) { }); }; +function getFilename(name) { + const fileNameSplit = name.split('/'); + if (fileNameSplit.length === 0) { + return name; + } + return fileNameSplit[fileNameSplit.length - 1]; +} + function getNames(name) { return { name,