baryshev / ect

Fastest JavaScript template engine with embedded CoffeeScript syntax

Home Page:http://ectjs.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comiler function forgetting compiled version of template

im4LF opened this issue · comments

commented

I need compiler function without http senders:

renderer.get('path/to/template', function (error, res) {
    // res - compiled version of path/to/template.ect
})

And amd loader without coffee-script dependencies for server-side compiling

commented

Something like:

this.compiled = function (template, callback) {

    try {
        var context = new TemplateContext();
        var container = context.load(template);

        callback(null, container);
    }
    catch (err) {
        callback(err);
    }
};

And usage:

renderer.compiled('path/to/template', function (err, res) {
    // do something with res.source
});

Why you dont Use:

var ECT = require('ect');

var renderer = ECT({ root : __dirname + '/views', ext : '.ect' });

renderer.render('page', { title: 'Hello, World!' }, function (error, html) {
    console.log(error);
    console.log(html);
});

Or what I miss to understand?

commented

I need compiled version of template not a rendered result

ah, sorry. but its also possible todo:

var tpl_compiled = {};
var ECT = require('ect');

var renderer = ECT({ root : __dirname + '/views', ext : '.ect' });

if (tpl_compiled['page']){
    return tpl_compiled['page'];
}
else
{
renderer.render('page', { title: 'Hello, World!' }, function (error, html) {
    console.log(error);
    console.log(html);
    tpl_compiled['page'] = html;
});
}
commented

I mean translate cofeescript to native javascript

var template = '{{ if @a > 10: }}more then 10{{ end }}';
var compiled = '...  if ( this.a > 10 ) { buf.push("more then 10") } ...';

You can compile ECT templates to JS with bundled cli tool (located in bin directory), and use precompiled templates.