diff --git a/README.md b/README.md index 5e97e79..94849d9 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ - [Dust](https://github.com/linkedin/dustjs) v1.2.1 ([website](http://linkedin.github.com/dustjs/)) - [Eco](https://github.com/sstephenson/eco) v1.1.0-rc-3 - [ECT](https://github.com/baryshev/ect) v0.4.8 ([website](http://ectjs.com/)) +- [EGS](https://github.com/ckknight/egs) v0.1.3 - [EJS](https://github.com/visionmedia/ejs) v0.8.3 - [Fest](https://github.com/mailru/fest) v0.5.4 - [Gaikan](https://github.com/Deathspike/gaikan) v1.3.4 diff --git a/benchmark.js b/benchmark.js index 9dac2ad..425701e 100644 --- a/benchmark.js +++ b/benchmark.js @@ -16,6 +16,7 @@ var handlebars = require('./handlebars/handlebars.js'); var coffeekup = require('./coffeekup/coffeekup.js'); var underscore = require('./underscore/underscore.js'); var gaikan = require('./gaikan/gaikan.js'); +var egs = require('./egs/egs.js'); var test = function(name, sample, cb) { var i = 0; @@ -69,7 +70,8 @@ var samples = [ { name : 'Gaikan', sample: gaikan }, { name : 'Hogan.js', sample : hogan }, { name : 'Dust', sample : dust }, - { name : 'ECT', sample : ect } + { name : 'ECT', sample : ect }, + { name : 'EGS', sample : egs } ]; var runTests = function () { diff --git a/egs/egs.js b/egs/egs.js new file mode 100644 index 0000000..df683cc --- /dev/null +++ b/egs/egs.js @@ -0,0 +1,34 @@ +var egs = require('egs'); +var compiled; +var tplData; + +module.exports.prepare = function (data, done) { + var template = egs.fromFile(__dirname + '/tpl_escaped.egs', { cache: true }); + tplData = data; + template.ready().then( + function () { + compiled = template.sync; + done(); + }, + function (e) { + done(e); + }); +}; + +module.exports.prepareUnescaped = function (data, done) { + var template = egs.fromFile(__dirname + '/tpl_unescaped.egs', { cache: true }); + tplData = data; + template.ready().then( + function () { + compiled = template.sync; + done(); + }, + function (e) { + done(e); + }); +}; + +module.exports.step = function (done) { + var html = compiled(tplData); + done(null, html); +}; diff --git a/egs/tpl_escaped.egs b/egs/tpl_escaped.egs new file mode 100644 index 0000000..e981bf7 --- /dev/null +++ b/egs/tpl_escaped.egs @@ -0,0 +1,14 @@ + + + <%= title %> + + +

<%= text %>

+ <% for project in projects: %> + <%= project.name %> +

<%= project.description %>

+ <% else: %> + No projects + <% end %> + + \ No newline at end of file diff --git a/egs/tpl_unescaped.egs b/egs/tpl_unescaped.egs new file mode 100644 index 0000000..929e7af --- /dev/null +++ b/egs/tpl_unescaped.egs @@ -0,0 +1,14 @@ + + + <%=h title %> + + +

<%=h text %>

+ <% for project in projects: %> + <%=h project.name %> +

<%=h project.description %>

+ <% else: %> + No projects + <% end %> + + diff --git a/package.json b/package.json index 3bc3c3b..58e1414 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "handlebars": "1.0.9", "coffeekup": "0.3.1", "underscore": "1.4.4", - "gaikan": "1.3.4" + "gaikan": "1.3.4", + "egs": "0.1.3" } }