5.0.1 • Published 5 years ago

tmplconv v5.0.1

Weekly downloads
14
License
MIT
Repository
github
Last release
5 years ago

tmplconv

Build Status npm Version JS Standard

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
KeyDefaultDescription
dataName or path of data module.
pattern'*/.*'File name patterns
ignoreFile name patterns to ignore
prefix'_'Embed prefix
suffix'_'Embed suffix
extname'.tmpl'Embed Template extension name
silentDisable console logs
cleanCleanup destination directory before convert
onceWrite 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
KeyDefaultDescription
dataName or path of data module.
pattern'*/.*'File name patterns
ignoreFile name patterns to ignore
prefix'_'Embed prefix
suffix'_'Embed suffix
extname'.tmpl'Embed Template extension name
silentDisable console logs
cleanCleanup destination directory before convert
onceWrite 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.