Neoanthropic Preternatural Murmurings
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    node-combinepublic

    combine: node implementation

    A template engine that hopefully works the way you'd expect :3.

    Getting started

    To install combine, you can clone this repository to your node_modules folder or use the fantastic NPM:

    npm install node-combine

    Then simply require it in your projects to start using

    var combine = require('node-combine');

    Basic usage

    var tmpl = combine('{{test}}', { test: 'lol' });
    tmpl.render(); // LOL 

    Features

    TBD

    Documentation

    combine works by parsing your template into a stack and rendering data.

    Replacing template variables####

    var template = '{{lol}}';
    var context = { lol: 'test' };
     
    var tmpl = combine(template, context);
     
    var output = tmpl.render();
    /// output == 'test' 

    Using filters on variables####

    var template = '{{test|reverse}}';
    var context = { lol: 'test' };
     
    var tmpl = combine(template, context);
    tmpl.filters.add('reverse', function(val) {
      return val.split('').reverse().join('');
    });
     
    var output = tmpl.render();
    /// output == 'tset' 

    Conditionals####

    Instead of being logic-less, combine doesn't make any assumptions and allows you to do things like if/elsif/else with simple conditionals, such as if something = somethingElse or if not something. You may only test against strings, all data types will be coerced with toString().

    var template = '{%if not test%}why not?{%endeach%}';
    var context = { test: false };
     
    var tmpl = combine(template, context);
     
    var output = tmpl.render();
    /// output == 'why not?' 

    or a more complicated example...

    var template = '{%if test = hello%}goodbye!{%else%}hello!{%endeach%}';
    var context = { test: 'hello' };
     
    var tmpl = combine(template, context);
     
    var output = tmpl.render();
    /// output == 'goodbye!' 

    Iterating arrays####

    Will not work on array-like objects, such as arguments or NodeList, coerce with Array.prototype.slice.call(obj);

    var template = '{%each test%}{{.}} {%endeach%}';
    var context = { lol: [1,2,3,4] };
     
    var tmpl = combine(template, context);
     
    var output = tmpl.render();
    /// output == '1 2 3 4 ' 

    Iterating objects####

    var template = '{%each test key,val%}the {{key}} is {{val}}{%endeach%}';
    var context = {
      lol: {
        hello: 'lol'
      }
    };
     
    var tmpl = combine(template, context);
     
    var output = tmpl.render();
    /// output == 'the hello is lol' 

    Running unit tests

    Run the follow command to fetch the Node.js dependencies.

    npm install

    Then run the following command

    make test

    Keywords

    none

    install

    npm i node-combine

    Downloadslast 7 days

    3

    version

    0.0.1

    license

    none

    last publish

    collaborators

    • avatar