tmplconv

Two way template converter.

Usage no npm install needed!

<script type="module">
  import tmplconv from 'https://cdn.skypack.dev/tmplconv';
</script>

README

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
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.