tmplconv
Two way template converter.
my_awesome_func.js
function myAwesomeFunc () {
/* ... */
}
↓↓ ↑↑
Tmplify Render
↓↓ ↑↑
name@snakecase.js.tmpl
function ____name@camelcase____ () {
/* ... */
}
Installation
npm install tmplconv --save-dev
Render Files from Template
'use strict'
const tmplconv = require('tmplconv')
// Render files from existing template
tmplconv.render('asset/app-tmpl', 'demo/demo-app', {
// Data to render
data: {
'name': 'my-awesome-app',
'description': "This is an example for the app templates."
}
}).then((result) => {
/* ... */
})
Render Options
Key | Default | Description |
---|---|---|
data | Name or path of data module. | |
pattern | '**/.' | File name patterns |
ignore | File name patterns to ignore | |
prefix | '_____' | Embed prefix |
suffix | '_____' | Embed suffix |
extname | '.tmpl' | Embed Template extension name |
silent | Disable console logs | |
clean | Cleanup destination directory before convert | |
once | Write only first time. Skip if already exists | |
mode | '644' | File permission to generate |
Generate Template from Existing Files
'use strict'
const tmplconv = require('tmplconv')
// Generate template from existing directory
tmplconv.tmplify('demo/demo-app', 'asset/app-tmpl', {
// Patterns of files to tmplify
pattern: [
'lib/*.js',
'test/*_test.js'
],
// Rule to tmplify
data: {
'name': 'my-awesome-app',
'description': "This is an example for the app templates."
}
}).then((result) => {
/* ... */
})
Tmplify options
Key | Default | Description |
---|---|---|
data | Name or path of data module. | |
pattern | '**/.' | File name patterns |
ignore | File name patterns to ignore | |
prefix | '_____' | Embed prefix |
suffix | '_____' | Embed suffix |
extname | '.tmpl' | Embed Template extension name |
silent | Disable console logs | |
clean | Cleanup destination directory before convert | |
once | Write only first time. Skip if already exists | |
mode | '644' | File permission to generate |
String Conversion
You can use these functions to convert text before it is inserted into a template:
- camelcase: "hello world" --> "HelloWorld"
- pascalcase: "hello world" --> "helloWorld"
- spinalcase: "hello world" --> "hello-world"
- snakecase: "hello world" --> "hello_world"
- uppercase: "hello world" --> "HELLO WORLD"
- lowercase: "hello world" --> "hello world"
- enumcase: "hello world" --> "hello:world"
Using with CLI
Install as a global module.
$ npm install tmplconv -g
CLI Usage:
$ tmplconv -h
Usage: tmplconv [options] [command]
Two way template converter.
Options:
-V, --version output the version number
-h, --help output usage information
Commands:
tmplify [options] <srcDir> <destDir> Generate a template from existing files
render [options] <srcDir> <destDir>
transplant [options] <src> <dest> Tmplify and render at once
License
This software is released under the MIT License.