From a91d4ad9c647f0373ce426c3cca2b96600e42c4b Mon Sep 17 00:00:00 2001 From: "TRENDYOL\\ahmetcan.guven" Date: Thu, 19 Oct 2017 18:14:19 +0300 Subject: [PATCH 1/3] added marko --- README.md | 6 ++++++ benchmark.js | 3 ++- marko/marko.js | 23 ++++++++++++++++++++ marko/tpl_escaped.marko | 10 +++++++++ marko/tpl_unescaped.marko | 10 +++++++++ package.json | 45 ++++++++++++++++++++------------------- 6 files changed, 74 insertions(+), 23 deletions(-) create mode 100644 marko/marko.js create mode 100644 marko/tpl_escaped.marko create mode 100644 marko/tpl_unescaped.marko diff --git a/README.md b/README.md index 5e97e79..ae25ee8 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,11 @@ ## Results Rendering 100000 templates: + + Marko + Escaped : 1086ms + Unescaped : 152ms + Total : 1238ms ECT Escaped : 2180ms @@ -100,6 +105,7 @@ Escaped : 18330ms Unescaped : 12095ms Total : 30425ms + ## Usage diff --git a/benchmark.js b/benchmark.js index 9dac2ad..b62a076 100644 --- a/benchmark.js +++ b/benchmark.js @@ -1,6 +1,7 @@ var data = require('./data'); var count = 100000; +var marko = require('./marko/marko.js'); var ect = require('./ect/ect.js'); var ejs = require('./ejs/ejs.js'); var ejsWithoutWith = require('./ejs-without-with/ejs.js'); @@ -54,7 +55,7 @@ var testUnescaped = function(name, sample, cb) { }; var samples = [ - + { name : 'Marko', sample : marko }, { name : 'Jade', sample : jade }, { name : 'CoffeeKup', sample : coffeekup }, { name : 'Jade without `with`', sample : jadeWithoutWith }, diff --git a/marko/marko.js b/marko/marko.js new file mode 100644 index 0000000..f15d7fd --- /dev/null +++ b/marko/marko.js @@ -0,0 +1,23 @@ +var fs = require('fs'); +var markoCompiler = require('marko/compiler'); +markoCompiler.configure({ writeToDisk: false }); +var marko = require('marko'); +var compiled; +var tplData; + +module.exports.prepare = function (data, done) { + compiled = marko.load(require.resolve('./tpl_escaped.marko')); + tplData = data; + done(); +}; + +module.exports.prepareUnescaped = function (data, done) { + compiled = marko.load(require.resolve('./tpl_unescaped.marko')); + tplData = data; + done(); +}; + +module.exports.step = function (done) { + var html = compiled.renderSync(tplData).toString(); + done(undefined, html); +}; \ No newline at end of file diff --git a/marko/tpl_escaped.marko b/marko/tpl_escaped.marko new file mode 100644 index 0000000..6b75a59 --- /dev/null +++ b/marko/tpl_escaped.marko @@ -0,0 +1,10 @@ +html + head + title -- ${input.title} + body + p -- ${input.text} + if(input.projects.length) + a for(project in input.projects) -- ${project.name} + p -- ${project.description} + else + -- No Projects \ No newline at end of file diff --git a/marko/tpl_unescaped.marko b/marko/tpl_unescaped.marko new file mode 100644 index 0000000..864f048 --- /dev/null +++ b/marko/tpl_unescaped.marko @@ -0,0 +1,10 @@ +html + head + title -- $!{input.title} + body + p -- $!{input.text} + if(input.projects.length) + a for(project in input.projects) -- $!{project.name} + p -- $!{project.description} + else + -- No Projects \ No newline at end of file diff --git a/package.json b/package.json index 3bc3c3b..5dd8486 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,25 @@ { - "name" : "template-benchmark", - "version" : "0.1.0", - "author" : "Vadim M. Baryshev ", - "repository": { - "type": "git", - "url": "git://github.com/baryshev/template-benchmark.git" - }, - "dependencies": { - "ect": "0.4.8", - "ejs": "0.8.3", - "eco": "1.1.0-rc-3", - "swig": "0.13.5", - "jade": "0.28.1", - "hogan.js": "2.0.0", - "dustjs-linkedin": "1.2.1", - "fest": "0.5.4", - "dot": "1.0.1", - "handlebars": "1.0.9", - "coffeekup": "0.3.1", - "underscore": "1.4.4", - "gaikan": "1.3.4" - } + "name": "template-benchmark", + "version": "0.1.0", + "author": "Vadim M. Baryshev ", + "repository": { + "type": "git", + "url": "git://github.com/baryshev/template-benchmark.git" + }, + "dependencies": { + "coffeekup": "0.3.1", + "dot": "1.0.1", + "dustjs-linkedin": "1.2.1", + "eco": "1.1.0-rc-3", + "ect": "0.4.8", + "ejs": "0.8.3", + "fest": "0.5.4", + "gaikan": "1.3.4", + "handlebars": "1.0.9", + "hogan.js": "2.0.0", + "jade": "0.28.1", + "marko": "^4.5.2", + "swig": "0.13.5", + "underscore": "1.4.4" + } } From cc9adddacc258259323e0737296f5ae7680dbca9 Mon Sep 17 00:00:00 2001 From: "TRENDYOL\\ahmetcan.guven" Date: Thu, 19 Oct 2017 18:19:43 +0300 Subject: [PATCH 2/3] fixed package and readme --- README.md | 1 + package.json | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index ae25ee8..b932080 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ - [Jade](https://github.com/visionmedia/jade) v0.28.1 ([website](http://jade-lang.com/)) - [Swig](https://github.com/paularmstrong/swig) v0.13.5 - [Underscore](https://github.com/documentcloud/underscore) v1.4.4 ([website](http://underscorejs.org/)) +- [Marko](https://github.com/marko-js/marko) v4.5.2([website](http://markojs.com/)) ## Test environment diff --git a/package.json b/package.json index 5dd8486..3fdb5cf 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,25 @@ { - "name": "template-benchmark", - "version": "0.1.0", - "author": "Vadim M. Baryshev ", - "repository": { - "type": "git", - "url": "git://github.com/baryshev/template-benchmark.git" - }, - "dependencies": { - "coffeekup": "0.3.1", - "dot": "1.0.1", - "dustjs-linkedin": "1.2.1", - "eco": "1.1.0-rc-3", - "ect": "0.4.8", - "ejs": "0.8.3", - "fest": "0.5.4", - "gaikan": "1.3.4", - "handlebars": "1.0.9", - "hogan.js": "2.0.0", - "jade": "0.28.1", - "marko": "^4.5.2", - "swig": "0.13.5", - "underscore": "1.4.4" - } + "name" : "template-benchmark", + "version" : "0.1.0", + "author" : "Vadim M. Baryshev ", + "repository": { + "type": "git", + "url": "git://github.com/baryshev/template-benchmark.git" + }, + "dependencies": { + "ect": "0.4.8", + "ejs": "0.8.3", + "eco": "1.1.0-rc-3", + "swig": "0.13.5", + "jade": "0.28.1", + "hogan.js": "2.0.0", + "dustjs-linkedin": "1.2.1", + "fest": "0.5.4", + "dot": "1.0.1", + "handlebars": "1.0.9", + "coffeekup": "0.3.1", + "underscore": "1.4.4", + "gaikan": "1.3.4" + "marko": "4.5.2" + } } From d22dff301a2384d8a678a81201e3a90b98945304 Mon Sep 17 00:00:00 2001 From: "TRENDYOL\\ahmetcan.guven" Date: Thu, 19 Oct 2017 18:22:32 +0300 Subject: [PATCH 3/3] fixed package and readme --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3fdb5cf..29280d1 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "handlebars": "1.0.9", "coffeekup": "0.3.1", "underscore": "1.4.4", - "gaikan": "1.3.4" + "gaikan": "1.3.4", "marko": "4.5.2" } }