trisquel

1.1.5 • Public • Published

trisquel

Simple, customizable template engine for JavaScript

Build Status GitHub license

Installation

npm install trisquel --save

Example data

var data = {
  foo: 'bar',
  crash: {
    test: 'dummy'
  },
  list: ['foo', 'bar', 'foobar'],
  map: {
    hi: 'all',
    bye: 'nobody'
  }
};

Caching templates

template.put('partial-map', '$each{ item,key in map }[${foo}:${key}:${item}]{/}');
 
template.put('partial-list', '$each{ item,i in list }[${foo}:${i}:${item}]{/}');
 
// cached templates can be invoked with $include{}
 
console.log( template('$if{ foo !== \'bar\' }whoops{:}map: $include{\'partial-map\'} {/}', data) );
// returns 'map: [bar:hi:all][bar:bye:nobody]'
 
console.log( template('$if{ foo !== \'bar\' }whoops{:}list: $include{\'partial-list\'} {/}', data) );
// returns 'list: [bar:0:foo][bar:1:bar][bar:2:foobar]'

Filters

 
template.filter('months', function (nMonths) {
  return nMonths + (nMonths > 1 ? ' meses' : ' mes' );
});
 
console.log( template('${ nMonths | months }')({ nMonths: 5 }) );
// returns '5 meses'
console.log( template('${ nMonths | months }')({ nMonths: 1 }) );
// returns '1 mes'
 
var messages {
  greeting: template('Hi ${name}!')
};
 
template.filter('message', function (key, data) {
  return messages[key](data);
});
 
console.log( template('${ person.last_name }: ${ \'greeting\' | message: { name: person.first_name } }')({
  person: {
    first_name: 'John',
    last_name: 'Smith'
  }
}) );
// returns 'Smith: Hi John!'

Tests

npm test

Build Status Travis

wercker status Wercker

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.1.57latest

Version History

VersionDownloads (Last 7 Days)Published
1.1.57
1.1.40
1.1.30
1.1.20
1.1.10
1.0.2711
1.0.260
1.0.250
1.0.240
1.0.220
1.0.160
1.0.140
1.0.130
1.0.110
1.0.100
1.0.90
1.0.80
1.0.70
1.0.60
1.0.40
1.0.30
1.0.20
1.0.10
1.0.00
0.4.00
0.0.10

Package Sidebar

Install

npm i trisquel

Weekly Downloads

18

Version

1.1.5

License

MIT

Unpacked Size

91.5 kB

Total Files

23

Last publish

Collaborators

  • jgermade