@jf/tpl

1.0.0 • Public • Published

jfTpl stable

A very simple system to replace placeholders in a string with values in object.

Sometime we need replace placeholders in translated strings but other alternatives (mustache, handlebars, underscore, etc) are too big for our requirements.

Placeholders delimiters are customizables (default: {}).

Usage

npm install jfTpl

Options

  • context Context with variables to replace in template.
  • defaults Default values for context.
  • delKeys If true, all keys found in template will be removed from context/defaults, depending of which object provide the key (default: false).
  • keep Preserve plaholders not replaced (default: false).
  • left Left delimiter (default: {).
  • right Right delimiter (default: }).
  • tpl Template to render.

Examples

// Displaying `Hello Guest, welcome to home` using 
// differents configurations.
const jfTpl = require('jf-tpl');
// Simple
console.log(
    jfTpl(
        {
            tpl     : 'Hello {name}, welcome to {site}',
            context : {
                name : 'Guest',
                site : 'home'
            }
        }
    )
);
// All options used.
console.log(
    jfTpl(
        {
            tpl      : 'Hello <[name]>, welcome to <[site]>',
            defaults : {
                site : 'home'
            },
            left     : '<[',
            right    : ']>',
            context  : {
                name : 'Guest'
            }
        }
    )
);
// Param keep
console.log(
    jfTpl(
        {
            tpl     : 'Hello {name}, welcome to {site}',
            context : {
                name : 'Guest'
            }
        }
    )
); // Hello Guest, welcome to
console.log(
    jfTpl(
        {
            tpl     : 'Hello {name}, welcome to {site}',
            keep    : true,
            context : {
                name : 'Guest'
            }
        }
    )
); // Hello Guest, welcome to {site}

Package Sidebar

Install

npm i @jf/tpl

Weekly Downloads

4

Version

1.0.0

License

MIT

Unpacked Size

11.3 kB

Total Files

5

Last publish

Collaborators

  • jf