cptmpl
v0.1.0
Published
Copy and process a template file
Downloads
194
Maintainers
Readme
Copy and process a template file or files
This small utility helps manage copying EJS template files. It has a programmatic and cli interface for simple usage whatever your context.
Usage
$ npm i --save cptmpl
$ cptmpl --help
Usage:
cptmpl --src="<Source Template>" --dest="<Destination File>" --data="<Data As JSON>" [options]
cptmpl <Source Template> <Destination File> <Data As JSON> [options]
Options:
-s, --src the source template
-d, --dest the destination file
-D, --data a JSON string of data for the template
-r, --recursive copy a directory of templates recursivly
-f, --force force overwite file
--mode the file permissions mode
-V, --version output the version number
--help display this help
Template Format:
See (EJS Documentation)[https://www.npmjs.com/package/ejs].
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
const cptmpl = require('cptmpl')
(async function () {
await cptmpl('foo.md', 'bar.md', {
name: 'world'
}, {
// Defaults shown
force: false,
mode: undefined,
handleConflicts: <Default Handle Conflicts Function>
processTemplateFilenames: (dest, data) => {
// Process the filename however you need and
// return the modified path
return dest
}
})
// Recursivly copy src directory to dest
await cptmpl.recursive('src', 'dest', {
name: 'world'
})
})()
Example Diff
$ cptmpl --src foo.md --dest bar.md --data='{"name": "world"}'
$ cptmpl --src foo.md --dest bar.md --data='{"name": "wes"}'
? Conflict in bar.md, overwrite? (yndH) d
>> Diff
# This is my Template
- Hello world!
+ Hello wes!
? Conflict in bar.md, overwrite? Yes
$ cat bar.md
# This is my Template
Hello wes!