├── .babelrc ├── .gitignore ├── .jshintrc ├── LICENSE ├── Makefile ├── README.md ├── engines ├── dot.js ├── dust.js ├── es6.js ├── handlebars.js ├── jade.js ├── lodash.js ├── marko.js ├── nunjucks.js ├── plates.js ├── pug.js ├── react.js ├── swig.js └── vue.js ├── helpers └── util.js ├── injector.js ├── output ├── compiled.min │ ├── friends │ │ ├── dust.min.js │ │ └── marko.min.js │ ├── if-expression │ │ ├── dust.min.js │ │ ├── jade.min.js │ │ ├── marko.min.js │ │ └── pug.min.js │ ├── projects-escaped │ │ ├── dust.min.js │ │ ├── handlebars.min.js │ │ ├── marko.min.js │ │ └── marko.native-for.min.js │ ├── projects-unescaped │ │ ├── dust.min.js │ │ ├── handlebars.min.js │ │ ├── marko.min.js │ │ └── marko.native-for.min.js │ ├── reverse-helper │ │ ├── dust.min.js │ │ └── marko.min.js │ ├── search-results │ │ ├── dust.min.js │ │ ├── marko.min.js │ │ └── marko.native-for.min.js │ ├── simple-0 │ │ ├── dust.min.js │ │ └── marko.min.js │ ├── simple-1 │ │ ├── dot.min.js │ │ ├── dust.min.js │ │ ├── handlebars.min.js │ │ ├── jade.min.js │ │ ├── marko.min.js │ │ ├── marko.native-for.min.js │ │ ├── nunjucks.min.js │ │ ├── pug.min.js │ │ ├── react.min.js │ │ ├── swig.min.js │ │ └── vue.min.js │ ├── simple-2 │ │ ├── dust.min.js │ │ └── marko.min.js │ └── ui-components │ │ ├── marko.min.js │ │ └── react.min.js ├── compiled │ ├── friends │ │ ├── dust.js │ │ └── marko.js │ ├── if-expression │ │ ├── dust.js │ │ ├── jade.js │ │ ├── marko.js │ │ └── pug.js │ ├── projects-escaped │ │ ├── dust.js │ │ ├── handlebars.js │ │ ├── marko.js │ │ └── marko.native-for.js │ ├── projects-unescaped │ │ ├── dust.js │ │ ├── handlebars.js │ │ ├── marko.js │ │ └── marko.native-for.js │ ├── reverse-helper │ │ ├── dust.js │ │ └── marko.js │ ├── search-results │ │ ├── dust.js │ │ ├── marko.js │ │ └── marko.native-for.js │ ├── simple-0 │ │ ├── dust.js │ │ └── marko.js │ ├── simple-1 │ │ ├── dot.js │ │ ├── dust.js │ │ ├── handlebars.js │ │ ├── jade.js │ │ ├── marko.js │ │ ├── marko.native-for.js │ │ ├── nunjucks.js │ │ ├── pug.js │ │ ├── react.js │ │ ├── swig.js │ │ └── vue.js │ ├── simple-2 │ │ ├── dust.js │ │ └── marko.js │ └── ui-components │ │ ├── marko.js │ │ └── react.js ├── html │ ├── friends │ │ ├── dust.html │ │ └── marko.html │ ├── if-expression │ │ ├── dust.html │ │ ├── jade.html │ │ ├── marko.html │ │ └── pug.html │ ├── projects-escaped │ │ ├── dust.html │ │ ├── handlebars.html │ │ ├── marko.html │ │ └── marko.native-for.html │ ├── projects-unescaped │ │ ├── dust.html │ │ ├── handlebars.html │ │ ├── marko.html │ │ └── marko.native-for.html │ ├── reverse-helper │ │ ├── dust.html │ │ └── marko.html │ ├── search-results │ │ ├── dust.html │ │ ├── marko.html │ │ └── marko.native-for.html │ ├── simple-0 │ │ ├── dust.html │ │ ├── es6.html │ │ ├── lodash.html │ │ └── marko.html │ ├── simple-1 │ │ ├── dot.html │ │ ├── dust.html │ │ ├── handlebars.html │ │ ├── jade.html │ │ ├── marko.html │ │ ├── nunjucks.html │ │ ├── pug.html │ │ ├── react.html │ │ ├── run.js │ │ ├── swig.html │ │ └── vue.html │ ├── simple-2 │ │ ├── dust.html │ │ └── marko.html │ └── ui-components │ │ ├── 0.marko.html │ │ ├── 0.react.html │ │ ├── 1.marko.html │ │ ├── 1.react.html │ │ └── marko.html └── sizes.json ├── package.json ├── reporter.js ├── templates ├── friends │ ├── data.js │ ├── template.dust │ └── template.marko ├── if-expression │ ├── data.json │ ├── template.jade │ ├── template.marko │ └── template.pug ├── projects-escaped │ ├── data.js │ ├── template.dust │ ├── template.hbs │ ├── template.marko │ └── template.native-for.marko ├── projects-unescaped │ ├── data.js │ ├── template.dust │ ├── template.hbs │ ├── template.marko │ └── template.native-for.marko ├── reverse-helper │ ├── data.json │ ├── template.dust │ └── template.marko ├── search-results │ ├── data.json │ ├── template.dust │ └── template.marko ├── simple-0 │ ├── data.json │ ├── template.dust │ ├── template.es6.js │ ├── template.lodash │ └── template.marko ├── simple-1 │ ├── data.json │ ├── template.dot │ ├── template.dust │ ├── template.hbs │ ├── template.jade │ ├── template.jsx │ ├── template.marko │ ├── template.nunjucks │ ├── template.pug │ ├── template.swig │ └── template.vue.js ├── simple-2 │ ├── data.json │ ├── template.dust │ └── template.marko └── ui-components │ ├── components │ ├── ReactColors.jsx │ └── marko-colors │ │ └── index.marko │ ├── data.json │ ├── marko.json │ ├── template.jsx │ └── template.marko └── templating-benchmarks.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react", "es2015"] 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /work 2 | /build 3 | /.idea/ 4 | /npm-debug.log 5 | /node_modules 6 | /*.sublime-workspace 7 | *.orig 8 | .DS_Store 9 | coverage 10 | *.marko.js -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "suite", 4 | "bench", 5 | "set", 6 | "it", 7 | "xit", 8 | "console", 9 | "describe", 10 | "xdescribe", 11 | "beforeEach", 12 | "before", 13 | "after", 14 | "waits", 15 | "waitsFor", 16 | "runs", 17 | "raptor", 18 | "$rset", 19 | "$radd", 20 | "$rget", 21 | "$renv", 22 | "$rwidgets", 23 | "$", 24 | "__rhinoHelpers", 25 | "Packages", 26 | "JavaAdapter", 27 | "unescape" 28 | ], 29 | 30 | "globals": { 31 | "define": true, 32 | "require": true 33 | }, 34 | 35 | "node" : true, 36 | "esnext" : true, 37 | "browser" : true, 38 | "boss" : false, 39 | "curly": false, 40 | "debug": false, 41 | "devel": false, 42 | "eqeqeq": true, 43 | "evil": true, 44 | "forin": false, 45 | "immed": true, 46 | "laxbreak": false, 47 | "newcap": true, 48 | "noarg": true, 49 | "noempty": false, 50 | "nonew": true, 51 | "nomen": false, 52 | "onevar": false, 53 | "plusplus": false, 54 | "regexp": false, 55 | "undef": true, 56 | "sub": false, 57 | "white": false, 58 | "eqeqeq": false, 59 | "latedef": true, 60 | "unused": "vars", 61 | 62 | /* Relaxing options: */ 63 | "eqnull": true 64 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 JS Foundation and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | BIN = ./node_modules/.bin 2 | 3 | .PHONY: main 4 | main: benchmarks 5 | 6 | .PHONY: benchmarks 7 | benchmarks: 8 | $(BIN)/matcha templating-benchmarks.js -R ./reporter.js --expose-gc 9 | 10 | .PHONY: clean 11 | clean: 12 | $(BIN)/markoc . --clean 13 | rm -rf output 14 | -------------------------------------------------------------------------------- /engines/dot.js: -------------------------------------------------------------------------------- 1 | var dot = require('dot'); 2 | 3 | module.exports = { 4 | name: 'dot', 5 | ext: 'dot', 6 | render: function(template, data, callback) { 7 | callback(null, template(data)); 8 | }, 9 | compile: function(src, templatePath, templateName, callback) { 10 | var compiled = 'module.exports=' + dot.template(src).toString(); 11 | callback(null, compiled); 12 | }, 13 | load: function(src, templatePath, templateName, callback) { 14 | callback(null, dot.template(src)); 15 | } 16 | }; -------------------------------------------------------------------------------- /engines/dust.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var dust = require('dustjs-linkedin'); 3 | require('dustjs-helpers'); 4 | dust.onLoad = function(path, callback){ 5 | fs.readFile(path, 'UTF-8', callback); 6 | }; 7 | 8 | 9 | dust.helpers.reverse = require('../helpers/util').reverseDust; 10 | 11 | module.exports = { 12 | name: 'dust', 13 | ext: 'dust', 14 | render: function(template, data, callback) { 15 | template(data, callback); 16 | }, 17 | load: function(src, templatePath, templateName, callback) { 18 | var templateFn = dust.compileFn(src, templateName); 19 | callback(null, templateFn); 20 | }, 21 | compile: function(src, templatePath, templateName, callback) { 22 | var compiled = dust.compile(src, templateName); 23 | callback(null, compiled); 24 | } 25 | }; -------------------------------------------------------------------------------- /engines/es6.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'es6', 3 | ext: 'es6.js', 4 | load: function(src, templatePath, templateName, callback) { 5 | var template = require(templatePath); 6 | callback(null, template); 7 | }, 8 | render: function(template, data, callback) { 9 | callback(null, template(data)); 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /engines/handlebars.js: -------------------------------------------------------------------------------- 1 | var handlebars = require('handlebars'); 2 | 3 | var pre = '(function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates[%NAME%] = template('; 4 | var post = ');})();'; 5 | 6 | module.exports = { 7 | name: 'handlebars', 8 | ext: 'hbs', 9 | cache: {}, 10 | render: function(template, data, callback) { 11 | callback(null, template(data)); 12 | }, 13 | compile: function(src, templatePath, templateName, callback) { 14 | var compiled = handlebars.precompile(src); 15 | compiled = pre.replace(/%NAME%/, JSON.stringify(templateName)) + compiled + post; 16 | callback(null, compiled); 17 | }, 18 | load: function(src, templatePath, templateName, callback) { 19 | callback(null, handlebars.compile(src)); 20 | } 21 | }; -------------------------------------------------------------------------------- /engines/jade.js: -------------------------------------------------------------------------------- 1 | var jade = require('jade'); 2 | 3 | module.exports = { 4 | name: 'jade', 5 | ext: 'jade', 6 | render: function(template, data, callback) { 7 | callback(null, template(data)); 8 | }, 9 | compile: function(src, templatePath, templateName, callback) { 10 | var compiled = jade.compileClient(src); 11 | callback(null, compiled); 12 | }, 13 | load: function(src, templatePath, templateName, callback) { 14 | callback(null, jade.compile(src)); 15 | } 16 | }; -------------------------------------------------------------------------------- /engines/lodash.js: -------------------------------------------------------------------------------- 1 | var template = require('lodash.template'); 2 | 3 | module.exports = { 4 | name: 'lodash', 5 | ext: 'lodash', 6 | render: function(template, data, callback) { 7 | callback(null, template(data)); 8 | }, 9 | load: function(src, templatePath, templateName, callback) { 10 | callback(null, template(src, { interpolate: /{([\s\S\.\-\_]+?)}/g })); 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /engines/marko.js: -------------------------------------------------------------------------------- 1 | var marko = require('marko'); 2 | 3 | require('marko/compiler').defaultOptions.checkUpToDate = false; 4 | 5 | module.exports = { 6 | name: 'marko', 7 | ext: 'marko', 8 | render: function(template, data, callback) { 9 | callback(null, template.renderToString(data)); 10 | }, 11 | load: function(src, templatePath, templateName, callback) { 12 | var template = marko.load(templatePath); 13 | callback(null, template); 14 | }, 15 | compile: function(src, templatePath, templateName, callback) { 16 | var compiled = require('marko/compiler').compile(src, templatePath); 17 | callback(null, compiled); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /engines/nunjucks.js: -------------------------------------------------------------------------------- 1 | var nunjucks = require('nunjucks'); 2 | 3 | nunjucks.configure({ 4 | watch: false 5 | }); 6 | 7 | module.exports = { 8 | name: 'nunjucks', 9 | ext: 'nunjucks', 10 | render: function(template, data, callback) { 11 | template.render(data, callback); 12 | }, 13 | load: function(src, templatePath, templateName, callback) { 14 | 15 | var template = nunjucks.compile(src); 16 | callback(null, template); 17 | }, 18 | compile: function(src, templatePath, templateName, callback) { 19 | var compiled = nunjucks.precompile(templatePath, { 20 | name: templateName 21 | }); 22 | callback(null, compiled); 23 | } 24 | }; -------------------------------------------------------------------------------- /engines/plates.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'plates', 3 | ext: 'plates', 4 | cache: {}, 5 | render: function(template, data, callback) { 6 | var inputHtml = template.html; 7 | var controller = template.controller; 8 | 9 | var outputHtml = controller(inputHtml, data); 10 | callback(null, outputHtml); 11 | }, 12 | load: function(src, templatePath, templateName, callback) { 13 | var controllerPath = templatePath + '.controller.js'; 14 | callback(null, { 15 | controller: require(controllerPath), 16 | html: src 17 | }); 18 | } 19 | }; -------------------------------------------------------------------------------- /engines/pug.js: -------------------------------------------------------------------------------- 1 | var pug = require('pug'); 2 | 3 | module.exports = { 4 | name: 'pug', 5 | ext: 'pug', 6 | render: function(template, data, callback) { 7 | callback(null, template(data)); 8 | }, 9 | compile: function(src, templatePath, templateName, callback) { 10 | var compiled = pug.compileClient(src, { compileDebug: false }); 11 | callback(null, compiled); 12 | }, 13 | load: function(src, templatePath, templateName, callback) { 14 | callback(null, pug.compile(src, { compileDebug: false })); 15 | } 16 | }; -------------------------------------------------------------------------------- /engines/react.js: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var ReactDOMServer = require('react-dom/server'); 3 | 4 | var babel = require('babel-core'); 5 | var babelConfig = { 6 | presets: ["react", "es2015"] 7 | }; 8 | 9 | module.exports = { 10 | name: 'react', 11 | ext: 'jsx', 12 | render: function(Component, data, callback) { 13 | var html = ReactDOMServer.renderToString(React.createElement(Component, data)); 14 | callback(null, html); 15 | }, 16 | load: function(src, templatePath, templateName, callback) { 17 | var Component = require(templatePath); 18 | callback(null, Component); 19 | }, 20 | compile: function(src, templatePath, templateName, callback) { 21 | var transformed = babel.transform(src, babelConfig); 22 | callback(null, transformed.code); 23 | } 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /engines/swig.js: -------------------------------------------------------------------------------- 1 | var swig = require('swig'); 2 | 3 | module.exports = { 4 | name: 'swig', 5 | ext: 'swig', 6 | render: function(template, data, callback) { 7 | var output = template(data); 8 | callback(null, output); 9 | }, 10 | load: function(src, templatePath, templateName, callback) { 11 | var template = swig.compileFile(templatePath); 12 | callback(null, template); 13 | }, 14 | compile: function(src, templatePath, templateName, callback) { 15 | var precompiled = swig.precompile(src, { 16 | filename: templatePath, 17 | locals: {} 18 | }); 19 | 20 | var compiled = 'module.exports=' + precompiled.tpl.toString().replace('anonymous', ''); 21 | callback(null, compiled); 22 | } 23 | }; -------------------------------------------------------------------------------- /engines/vue.js: -------------------------------------------------------------------------------- 1 | var renderer = require('vue-server-renderer').createRenderer(); 2 | 3 | module.exports = { 4 | name: 'vue', 5 | ext: 'vue.js', 6 | render: function(App, data, callback) { 7 | const vm = new App({ 8 | data: data 9 | }); 10 | 11 | 12 | renderer.renderToString(vm, function(err, html) { 13 | if (err) { 14 | throw err; 15 | } 16 | 17 | return callback(null, html); 18 | }); 19 | }, 20 | load: function(src, templatePath, templateName, callback) { 21 | var App = require(templatePath); 22 | callback(null, App); 23 | }, 24 | compile: function(src, templatePath, templateName, callback) { 25 | callback(null, ''); 26 | } 27 | }; 28 | 29 | -------------------------------------------------------------------------------- /helpers/util.js: -------------------------------------------------------------------------------- 1 | function reverse(str) { 2 | var out = ""; 3 | for (var i=str.length-1; i>=0; i--) { 4 | out += str.charAt(i); 5 | } 6 | return out; 7 | } 8 | 9 | exports.reverseDust = function(chunk, context, bodies, params) { 10 | var string = params.str; 11 | return chunk.write(reverse(string)); 12 | }; 13 | 14 | exports.reverse = reverse; -------------------------------------------------------------------------------- /injector.js: -------------------------------------------------------------------------------- 1 | var startRegExp = //gi; 2 | var endRegExp = //g; 3 | 4 | function Injector(pageHtml, keepMarkers) { 5 | this.keepMarkers = keepMarkers === true; 6 | this.parts = []; 7 | this.injectIndexes = {}; 8 | this.findSlots(pageHtml); 9 | } 10 | 11 | Injector.prototype = { 12 | findSlots: function(pageHtml) { 13 | var injectIndexes = this.injectIndexes, 14 | parts = this.parts, 15 | startMatches, 16 | endMatch, 17 | begin = 0; 18 | 19 | startRegExp.lastIndex = 0; 20 | 21 | 22 | while ((startMatches = startRegExp.exec(pageHtml))) { 23 | var slotName = startMatches[1]; 24 | 25 | slotName = slotName.toLowerCase(); 26 | 27 | parts.push(pageHtml.substring(begin, startMatches.index)); 28 | 29 | injectIndexes[slotName] = parts.length; 30 | parts.push(''); 31 | 32 | endRegExp.lastIndex = startRegExp.lastIndex; 33 | endMatch = endRegExp.exec(pageHtml); 34 | if (endMatch) { 35 | begin = endRegExp.lastIndex; 36 | startRegExp.lastIndex = endRegExp.lastIndex; 37 | } 38 | else { 39 | begin = startRegExp.lastIndex; 40 | } 41 | } 42 | 43 | if (begin < pageHtml.length) { 44 | parts.push(pageHtml.substring(begin)); 45 | } 46 | }, 47 | 48 | inject: function(slot, injectText) { 49 | slot = slot.toLowerCase(); 50 | var injectIndex = this.injectIndexes[slot]; 51 | 52 | var finalMarkup = this.keepMarkers ? ('\n```\n' + injectText.replace(/\s\s*$/,'') + '\n```\n') : injectText; 53 | 54 | if (injectIndex === undefined) { 55 | this.parts.push(finalMarkup); 56 | } else { 57 | this.parts[injectIndex] = finalMarkup; 58 | } 59 | 60 | 61 | }, 62 | 63 | getMarkup: function() { 64 | return this.parts.join(''); 65 | } 66 | }; 67 | 68 | exports.inject = function(target, values, options) { 69 | options = options || {}; 70 | var keepMarkers = options.keepMarkers !== false; 71 | var injector = new Injector(target, keepMarkers); 72 | 73 | for (var slotName in values) { 74 | if (values.hasOwnProperty(slotName)) { 75 | injector.inject(slotName, values[slotName]); 76 | } 77 | } 78 | return injector.getMarkup(); 79 | }; -------------------------------------------------------------------------------- /output/compiled.min/friends/dust.min.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(t,e){return t.w('
").f(e.get(["text"],!1),e,"h").w("
").s(e.get(["projects"],!1),e,{block:o},{}).nx(e.get(["projects"],!1),e,{block:r},{}).w("")}function o(t,e){return t.w('').f(e.get(["name"],!1),e,"h").w("").f(e.get(["description"],!1),e,"h").w("
")}function r(t,e){return t.w("No projects")}t.register("projects-escaped",e),e.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0}(dust); -------------------------------------------------------------------------------- /output/compiled.min/projects-escaped/handlebars.min.js: -------------------------------------------------------------------------------- 1 | !function(){var n=Handlebars.template;(Handlebars.templates=Handlebars.templates||{})["projects-escaped"]=n({1:function(n,l,e,t,a){var o,r=null!=l?l:n.nullContext||{},s=e.helperMissing,p=n.escapeExpression;return' '+p("function"==typeof(o=null!=(o=e.name||(null!=l?l.name:l))?o:s)?o.call(r,{name:"name",hash:{},data:a}):o)+"\n"+p("function"==typeof(o=null!=(o=e.description||(null!=l?l.description:l))?o:s)?o.call(r,{name:"description",hash:{},data:a}):o)+"
\n"},3:function(n,l,e,t,a){return" No projects\n"},compiler:[7,">= 4.0.0"],main:function(n,l,e,t,a){var o,r,s,p=null!=l?l:n.nullContext||{},c=e.helperMissing,u=n.escapeExpression,i=e.blockHelperMissing,f="\n \n"+u("function"==typeof(r=null!=(r=e.text||(null!=l?l.text:l))?r:c)?r.call(p,{name:"text",hash:{},data:a}):r)+"
\n";return r=null!=(r=e.projects||(null!=l?l.projects:l))?r:c,s={name:"projects",hash:{},fn:n.program(1,a,0),inverse:n.noop,data:a},o="function"==typeof r?r.call(p,s):r,e.projects||(o=i.call(l,o,s)),null!=o&&(f+=o),r=null!=(r=e.projects||(null!=l?l.projects:l))?r:c,s={name:"projects",hash:{},fn:n.noop,inverse:n.program(3,a,0),data:a},o="function"==typeof r?r.call(p,s):r,e.projects||(o=i.call(l,o,s)),null!=o&&(f+=o),f+" \n"},useData:!0})}(); -------------------------------------------------------------------------------- /output/compiled.min/projects-escaped/marko.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function render(a,e){e.w(""+marko_escapeXml(a.text)+"
"),marko_forEach(a.projects,function(a){e.w(""+marko_escapeXml(a.name)+""+marko_escapeXml(a.description)+"
")}),a.projects.length||e.w("No projects"),init_components_tag({},e),await_reorderer_tag({},e),e.w("")}var marko_template=module.exports=require("marko/dist/html").t(__filename),marko_helpers=require("marko/dist/runtime/html/helpers"),marko_escapeXml=marko_helpers.x,marko_loadTag=marko_helpers.t,component_globals_tag=marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")),marko_forEach=marko_helpers.f,marko_attr=marko_helpers.a,init_components_tag=marko_loadTag(require("marko/dist/components/taglib/init-components-tag")),await_reorderer_tag=marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag"));marko_template._=render,marko_template.meta={tags:["marko/dist/components/taglib/component-globals-tag","marko/dist/components/taglib/init-components-tag","marko/dist/taglibs/async/await-reorderer-tag"]}; -------------------------------------------------------------------------------- /output/compiled.min/projects-escaped/marko.native-for.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function render(a,e){var t=a;e.w(""+marko_escapeXml(t.text)+"
");for(var r=0,o=t.projects.length;r"+marko_escapeXml(m.description)+"
")}t.projects.length||e.w("No projects"),init_components_tag({},e),await_reorderer_tag({},e),e.w("")}var marko_template=module.exports=require("marko/dist/html").t(__filename),marko_helpers=require("marko/dist/runtime/html/helpers"),marko_escapeXml=marko_helpers.x,marko_loadTag=marko_helpers.t,component_globals_tag=marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")),marko_attr=marko_helpers.a,init_components_tag=marko_loadTag(require("marko/dist/components/taglib/init-components-tag")),await_reorderer_tag=marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag"));marko_template._=render,marko_template.meta={tags:["marko/dist/components/taglib/component-globals-tag","marko/dist/components/taglib/init-components-tag","marko/dist/taglibs/async/await-reorderer-tag"]}; -------------------------------------------------------------------------------- /output/compiled.min/projects-unescaped/dust.min.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(t,e){return t.w("").f(e.get(["text"],!1),e,"h",["s"]).w("
").s(e.get(["projects"],!1),e,{block:o},{}).nx(e.get(["projects"],!1),e,{block:s},{}).w("")}function o(t,e){return t.w('').f(e.get(["name"],!1),e,"h",["s"]).w("").f(e.get(["description"],!1),e,"h",["s"]).w("
")}function s(t,e){return t.w("No projects")}t.register("projects-unescaped",e),e.__dustBody=!0,o.__dustBody=!0,s.__dustBody=!0}(dust); -------------------------------------------------------------------------------- /output/compiled.min/projects-unescaped/handlebars.min.js: -------------------------------------------------------------------------------- 1 | !function(){var l=Handlebars.template;(Handlebars.templates=Handlebars.templates||{})["projects-unescaped"]=l({1:function(l,n,t,e,a){var o,u,r=null!=n?n:l.nullContext||{},c=t.helperMissing;return' '+(null!=(o="function"==typeof(u=null!=(u=t.name||(null!=n?n.name:n))?u:c)?u.call(r,{name:"name",hash:{},data:a}):u)?o:"")+"\n"+(null!=(o="function"==typeof(u=null!=(u=t.description||(null!=n?n.description:n))?u:c)?u.call(r,{name:"description",hash:{},data:a}):u)?o:"")+"
\n"},3:function(l,n,t,e,a){return" No projects\n"},compiler:[7,">= 4.0.0"],main:function(l,n,t,e,a){var o,u,r,c=null!=n?n:l.nullContext||{},p=t.helperMissing,s=t.blockHelperMissing,i="\n \n"+(null!=(o="function"==typeof(u=null!=(u=t.text||(null!=n?n.text:n))?u:p)?u.call(c,{name:"text",hash:{},data:a}):u)?o:"")+"
\n";return u=null!=(u=t.projects||(null!=n?n.projects:n))?u:p,r={name:"projects",hash:{},fn:l.program(1,a,0),inverse:l.noop,data:a},o="function"==typeof u?u.call(c,r):u,t.projects||(o=s.call(n,o,r)),null!=o&&(i+=o),u=null!=(u=t.projects||(null!=n?n.projects:n))?u:p,r={name:"projects",hash:{},fn:l.noop,inverse:l.program(3,a,0),data:a},o="function"==typeof u?u.call(c,r):u,t.projects||(o=s.call(n,o,r)),null!=o&&(i+=o),i+" \n"},useData:!0})}(); -------------------------------------------------------------------------------- /output/compiled.min/projects-unescaped/marko.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function render(t,a){a.w(""+marko_str(t.text)+"
"),marko_forEach(t.projects,function(t){a.w(''+marko_str(t.name)+""+marko_str(t.description)+"
")}),t.projects.length||a.w("No projects"),init_components_tag({},a),await_reorderer_tag({},a),a.w("")}var marko_template=module.exports=require("marko/dist/html").t(__filename),marko_helpers=require("marko/dist/runtime/html/helpers"),marko_str=marko_helpers.s,marko_loadTag=marko_helpers.t,component_globals_tag=marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")),marko_forEach=marko_helpers.f,init_components_tag=marko_loadTag(require("marko/dist/components/taglib/init-components-tag")),await_reorderer_tag=marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag"));marko_template._=render,marko_template.meta={tags:["marko/dist/components/taglib/component-globals-tag","marko/dist/components/taglib/init-components-tag","marko/dist/taglibs/async/await-reorderer-tag"]}; -------------------------------------------------------------------------------- /output/compiled.min/projects-unescaped/marko.native-for.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function render(t,a){var r=t;a.w(""+marko_str(r.text)+"
");for(var e=0,o=r.projects.length;e"+marko_str(m.description)+"
")}r.projects.length||a.w("No projects"),init_components_tag({},a),await_reorderer_tag({},a),a.w("")}var marko_template=module.exports=require("marko/dist/html").t(__filename),marko_helpers=require("marko/dist/runtime/html/helpers"),marko_str=marko_helpers.s,marko_loadTag=marko_helpers.t,component_globals_tag=marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")),init_components_tag=marko_loadTag(require("marko/dist/components/taglib/init-components-tag")),await_reorderer_tag=marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag"));marko_template._=render,marko_template.meta={tags:["marko/dist/components/taglib/component-globals-tag","marko/dist/components/taglib/init-components-tag","marko/dist/taglibs/async/await-reorderer-tag"]}; -------------------------------------------------------------------------------- /output/compiled.min/reverse-helper/dust.min.js: -------------------------------------------------------------------------------- 1 | !function(e){function r(e,r){return e.h("reverse",r,{},{str:r.get(["A"],!1)},"h").h("reverse",r,{},{str:r.get(["B"],!1)},"h").h("reverse",r,{},{str:r.get(["C"],!1)},"h").h("reverse",r,{},{str:r.get(["D"],!1)},"h").h("reverse",r,{},{str:r.get(["E"],!1)},"h")}e.register("reverse-helper",r),r.__dustBody=!0}(dust); -------------------------------------------------------------------------------- /output/compiled.min/reverse-helper/marko.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function render(e,r){r.w("").f(ctx.get(["text"], false),ctx,"h").w("
").s(ctx.get(["projects"], false),ctx,{"block":body_1},{}).nx(ctx.get(["projects"], false),ctx,{"block":body_2},{}).w("");}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("").f(ctx.get(["name"], false),ctx,"h").w("").f(ctx.get(["description"], false),ctx,"h").w("
");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("No projects");}body_2.__dustBody=!0;return body_0}(dust)); -------------------------------------------------------------------------------- /output/compiled/projects-escaped/handlebars.js: -------------------------------------------------------------------------------- 1 | (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates["projects-escaped"] = template({"1":function(container,depth0,helpers,partials,data) { 2 | var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression; 3 | 4 | return " " 7 | + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper))) 8 | + "\n" 9 | + alias4(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"description","hash":{},"data":data}) : helper))) 10 | + "
\n"; 11 | },"3":function(container,depth0,helpers,partials,data) { 12 | return " No projects\n"; 13 | },"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { 14 | var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=helpers.blockHelperMissing, buffer = 15 | "\n \n" 18 | + alias4(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"text","hash":{},"data":data}) : helper))) 19 | + "
\n"; 20 | stack1 = ((helper = (helper = helpers.projects || (depth0 != null ? depth0.projects : depth0)) != null ? helper : alias2),(options={"name":"projects","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); 21 | if (!helpers.projects) { stack1 = alias5.call(depth0,stack1,options)} 22 | if (stack1 != null) { buffer += stack1; } 23 | stack1 = ((helper = (helper = helpers.projects || (depth0 != null ? depth0.projects : depth0)) != null ? helper : alias2),(options={"name":"projects","hash":{},"fn":container.noop,"inverse":container.program(3, data, 0),"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); 24 | if (!helpers.projects) { stack1 = alias5.call(depth0,stack1,options)} 25 | if (stack1 != null) { buffer += stack1; } 26 | return buffer + " \n"; 27 | },"useData":true});})(); -------------------------------------------------------------------------------- /output/compiled/projects-escaped/marko.js: -------------------------------------------------------------------------------- 1 | // Compiled using marko@4.4.28 - DO NOT EDIT 2 | "use strict"; 3 | 4 | var marko_template = module.exports = require("marko/dist/html").t(__filename), 5 | marko_helpers = require("marko/dist/runtime/html/helpers"), 6 | marko_escapeXml = marko_helpers.x, 7 | marko_loadTag = marko_helpers.t, 8 | component_globals_tag = marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")), 9 | marko_forEach = marko_helpers.f, 10 | marko_attr = marko_helpers.a, 11 | init_components_tag = marko_loadTag(require("marko/dist/components/taglib/init-components-tag")), 12 | await_reorderer_tag = marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag")); 13 | 14 | function render(input, out) { 15 | var data = input; 16 | 17 | out.w("" + 24 | marko_escapeXml(input.text) + 25 | "
"); 26 | 27 | marko_forEach(input.projects, function(project) { 28 | out.w("" + 31 | marko_escapeXml(project.name) + 32 | "" + 33 | marko_escapeXml(project.description) + 34 | "
"); 35 | }); 36 | 37 | if (!input.projects.length) { 38 | out.w("No projects"); 39 | } 40 | 41 | init_components_tag({}, out); 42 | 43 | await_reorderer_tag({}, out); 44 | 45 | out.w(""); 46 | } 47 | 48 | marko_template._ = render; 49 | 50 | marko_template.meta = { 51 | tags: [ 52 | "marko/dist/components/taglib/component-globals-tag", 53 | "marko/dist/components/taglib/init-components-tag", 54 | "marko/dist/taglibs/async/await-reorderer-tag" 55 | ] 56 | }; 57 | -------------------------------------------------------------------------------- /output/compiled/projects-escaped/marko.native-for.js: -------------------------------------------------------------------------------- 1 | // Compiled using marko@4.4.28 - DO NOT EDIT 2 | "use strict"; 3 | 4 | var marko_template = module.exports = require("marko/dist/html").t(__filename), 5 | marko_helpers = require("marko/dist/runtime/html/helpers"), 6 | marko_escapeXml = marko_helpers.x, 7 | marko_loadTag = marko_helpers.t, 8 | component_globals_tag = marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")), 9 | marko_attr = marko_helpers.a, 10 | init_components_tag = marko_loadTag(require("marko/dist/components/taglib/init-components-tag")), 11 | await_reorderer_tag = marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag")); 12 | 13 | function render(input, out) { 14 | var data = input; 15 | 16 | out.w("" + 23 | marko_escapeXml(data.text) + 24 | "
"); 25 | 26 | for (var i = 0, 27 | len = data.projects.length; i < len; i++) { 28 | var project = data.projects[i]; 29 | 30 | out.w("" + 33 | marko_escapeXml(project.name) + 34 | "" + 35 | marko_escapeXml(project.description) + 36 | "
"); 37 | } 38 | 39 | if (!data.projects.length) { 40 | out.w("No projects"); 41 | } 42 | 43 | init_components_tag({}, out); 44 | 45 | await_reorderer_tag({}, out); 46 | 47 | out.w(""); 48 | } 49 | 50 | marko_template._ = render; 51 | 52 | marko_template.meta = { 53 | tags: [ 54 | "marko/dist/components/taglib/component-globals-tag", 55 | "marko/dist/components/taglib/init-components-tag", 56 | "marko/dist/taglibs/async/await-reorderer-tag" 57 | ] 58 | }; 59 | -------------------------------------------------------------------------------- /output/compiled/projects-unescaped/dust.js: -------------------------------------------------------------------------------- 1 | (function(dust){dust.register("projects-unescaped",body_0);function body_0(chk,ctx){return chk.w("").f(ctx.get(["text"], false),ctx,"h",["s"]).w("
").s(ctx.get(["projects"], false),ctx,{"block":body_1},{}).nx(ctx.get(["projects"], false),ctx,{"block":body_2},{}).w("");}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("").f(ctx.get(["name"], false),ctx,"h",["s"]).w("").f(ctx.get(["description"], false),ctx,"h",["s"]).w("
");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("No projects");}body_2.__dustBody=!0;return body_0}(dust)); -------------------------------------------------------------------------------- /output/compiled/projects-unescaped/handlebars.js: -------------------------------------------------------------------------------- 1 | (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates["projects-unescaped"] = template({"1":function(container,depth0,helpers,partials,data) { 2 | var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function"; 3 | 4 | return " " 7 | + ((stack1 = ((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper))) != null ? stack1 : "") 8 | + "\n" 9 | + ((stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"description","hash":{},"data":data}) : helper))) != null ? stack1 : "") 10 | + "
\n"; 11 | },"3":function(container,depth0,helpers,partials,data) { 12 | return " No projects\n"; 13 | },"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { 14 | var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=helpers.blockHelperMissing, buffer = 15 | "\n \n" 18 | + ((stack1 = ((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"text","hash":{},"data":data}) : helper))) != null ? stack1 : "") 19 | + "
\n"; 20 | stack1 = ((helper = (helper = helpers.projects || (depth0 != null ? depth0.projects : depth0)) != null ? helper : alias2),(options={"name":"projects","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); 21 | if (!helpers.projects) { stack1 = alias4.call(depth0,stack1,options)} 22 | if (stack1 != null) { buffer += stack1; } 23 | stack1 = ((helper = (helper = helpers.projects || (depth0 != null ? depth0.projects : depth0)) != null ? helper : alias2),(options={"name":"projects","hash":{},"fn":container.noop,"inverse":container.program(3, data, 0),"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); 24 | if (!helpers.projects) { stack1 = alias4.call(depth0,stack1,options)} 25 | if (stack1 != null) { buffer += stack1; } 26 | return buffer + " \n"; 27 | },"useData":true});})(); -------------------------------------------------------------------------------- /output/compiled/projects-unescaped/marko.js: -------------------------------------------------------------------------------- 1 | // Compiled using marko@4.4.28 - DO NOT EDIT 2 | "use strict"; 3 | 4 | var marko_template = module.exports = require("marko/dist/html").t(__filename), 5 | marko_helpers = require("marko/dist/runtime/html/helpers"), 6 | marko_str = marko_helpers.s, 7 | marko_loadTag = marko_helpers.t, 8 | component_globals_tag = marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")), 9 | marko_forEach = marko_helpers.f, 10 | init_components_tag = marko_loadTag(require("marko/dist/components/taglib/init-components-tag")), 11 | await_reorderer_tag = marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag")); 12 | 13 | function render(input, out) { 14 | var data = input; 15 | 16 | out.w("" + 23 | marko_str(input.text) + 24 | "
"); 25 | 26 | marko_forEach(input.projects, function(project) { 27 | out.w("" + 30 | marko_str(project.name) + 31 | "" + 32 | marko_str(project.description) + 33 | "
"); 34 | }); 35 | 36 | if (!input.projects.length) { 37 | out.w("No projects"); 38 | } 39 | 40 | init_components_tag({}, out); 41 | 42 | await_reorderer_tag({}, out); 43 | 44 | out.w(""); 45 | } 46 | 47 | marko_template._ = render; 48 | 49 | marko_template.meta = { 50 | tags: [ 51 | "marko/dist/components/taglib/component-globals-tag", 52 | "marko/dist/components/taglib/init-components-tag", 53 | "marko/dist/taglibs/async/await-reorderer-tag" 54 | ] 55 | }; 56 | -------------------------------------------------------------------------------- /output/compiled/projects-unescaped/marko.native-for.js: -------------------------------------------------------------------------------- 1 | // Compiled using marko@4.4.28 - DO NOT EDIT 2 | "use strict"; 3 | 4 | var marko_template = module.exports = require("marko/dist/html").t(__filename), 5 | marko_helpers = require("marko/dist/runtime/html/helpers"), 6 | marko_str = marko_helpers.s, 7 | marko_loadTag = marko_helpers.t, 8 | component_globals_tag = marko_loadTag(require("marko/dist/components/taglib/component-globals-tag")), 9 | init_components_tag = marko_loadTag(require("marko/dist/components/taglib/init-components-tag")), 10 | await_reorderer_tag = marko_loadTag(require("marko/dist/taglibs/async/await-reorderer-tag")); 11 | 12 | function render(input, out) { 13 | var data = input; 14 | 15 | out.w("" + 22 | marko_str(data.text) + 23 | "
"); 24 | 25 | for (var i = 0, 26 | len = data.projects.length; i < len; i++) { 27 | var project = data.projects[i]; 28 | 29 | out.w("" + 32 | marko_str(project.name) + 33 | "" + 34 | marko_str(project.description) + 35 | "
"); 36 | } 37 | 38 | if (!data.projects.length) { 39 | out.w("No projects"); 40 | } 41 | 42 | init_components_tag({}, out); 43 | 44 | await_reorderer_tag({}, out); 45 | 46 | out.w(""); 47 | } 48 | 49 | marko_template._ = render; 50 | 51 | marko_template.meta = { 52 | tags: [ 53 | "marko/dist/components/taglib/component-globals-tag", 54 | "marko/dist/components/taglib/init-components-tag", 55 | "marko/dist/taglibs/async/await-reorderer-tag" 56 | ] 57 | }; 58 | -------------------------------------------------------------------------------- /output/compiled/reverse-helper/dust.js: -------------------------------------------------------------------------------- 1 | (function(dust){dust.register("reverse-helper",body_0);function body_0(chk,ctx){return chk.h("reverse",ctx,{},{"str":ctx.get(["A"], false)},"h").h("reverse",ctx,{},{"str":ctx.get(["B"], false)},"h").h("reverse",ctx,{},{"str":ctx.get(["C"], false)},"h").h("reverse",ctx,{},{"str":ctx.get(["D"], false)},"h").h("reverse",ctx,{},{"str":ctx.get(["E"], false)},"h");}body_0.__dustBody=!0;return body_0}(dust)); -------------------------------------------------------------------------------- /output/compiled/reverse-helper/marko.js: -------------------------------------------------------------------------------- 1 | // Compiled using marko@4.4.28 - DO NOT EDIT 2 | "use strict"; 3 | 4 | var marko_template = module.exports = require("marko/dist/html").t(__filename), 5 | module_util_module = require("../../helpers/util"), 6 | util_module = module_util_module.default || module_util_module, 7 | reverse = module_util_module.reverse, 8 | marko_helpers = require("marko/dist/runtime/html/helpers"), 9 | marko_str = marko_helpers.s; 10 | 11 | function render(input, out) { 12 | var data = input; 13 | 14 | out.w("<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.</p><p>Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.</p><p>Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.</p><p>Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.</p><p>Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.</p><p>In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.</p><p>Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.</p><p>Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.</p><p>Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.</p><p>Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.</p><p>Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.</p><p>Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.</p><p>In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.</p><p>Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.</p><p>Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.</p>
<strong>Facebook</strong>Social network
<strong>Google</strong>Search engine
<strong>Twitter</strong>Microblogging service
<strong>Amazon</strong>Online retailer
<strong>eBay</strong>Online auction
<strong>Wikipedia</strong>A free encyclopedia
<strong>LiveJournal</strong>Blogging platform
-------------------------------------------------------------------------------- /output/html/projects-unescaped/dust.html: -------------------------------------------------------------------------------- 1 |Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
FacebookSocial network
GoogleSearch engine
TwitterMicroblogging service
AmazonOnline retailer
eBayOnline auction
WikipediaA free encyclopedia
LiveJournalBlogging platform
-------------------------------------------------------------------------------- /output/html/projects-unescaped/marko.html: -------------------------------------------------------------------------------- 1 |Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
FacebookSocial network
GoogleSearch engine
TwitterMicroblogging service
AmazonOnline retailer
eBayOnline auction
WikipediaA free encyclopedia
LiveJournalBlogging platform
-------------------------------------------------------------------------------- /output/html/projects-unescaped/marko.native-for.html: -------------------------------------------------------------------------------- 1 |Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et vulputate lacus. Proin a lorem eget metus posuere tristique blandit eu magna. Mauris quis odio id augue sodales dictum. Fusce lectus eros, fermentum vitae semper vel, euismod egestas dui. Etiam vel diam quis tellus ultrices accumsan vitae at felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas eu nisl tortor, sed placerat mi. In hac habitasse platea dictumst. Praesent hendrerit commodo ligula, sit amet porttitor metus dictum sit amet. Curabitur pellentesque cursus lectus, sit amet mollis diam dictum ac. Sed eleifend, massa ut egestas viverra, ante ante interdum ligula, sed ultricies turpis arcu vel dolor. Aenean rutrum dolor ut nunc adipiscing sollicitudin. Mauris ac est metus. Suspendisse vel augue odio.
Morbi orci nulla, condimentum eu aliquam consectetur, tempus sit amet felis. Quisque quis ligula turpis. Fusce facilisis arcu massa, a tempor neque. Maecenas sodales quam eu mi interdum sit amet tincidunt turpis feugiat. Nulla quis neque non metus lacinia tempus. Fusce in neque vestibulum quam venenatis tempus vel id ipsum. Cras eget condimentum risus. Nunc pellentesque faucibus sem nec commodo. Nam eleifend lorem sit amet nulla luctus congue. Pellentesque fringilla ante turpis, non varius tellus. Nullam eget nisi odio. Mauris at dui purus, ac interdum eros.
Phasellus rhoncus massa sit amet elit molestie nec dictum risus sodales. Vivamus blandit eros id dolor euismod lacinia. Integer massa orci, tincidunt sed pulvinar et, volutpat eu felis. Aliquam placerat erat in arcu elementum ut congue dolor tempor. Nunc a nulla et metus placerat consequat. Maecenas in rhoncus urna. Vestibulum quis elit lorem, ac facilisis dui. Etiam a commodo nunc. Nam viverra dictum est eu condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vitae augue neque. In fermentum, elit vel rhoncus feugiat, felis ipsum suscipit augue, in suscipit enim elit ac lacus. Donec felis sapien, ultricies eget condimentum blandit, lobortis gravida sapien. Vestibulum pharetra, mi at varius cursus, elit est malesuada odio, sit amet sollicitudin tortor sem eget nisi.
Praesent nec massa ut quam commodo euismod ac sollicitudin lorem. Aliquam tempus molestie orci, ac egestas urna imperdiet ut. Morbi rhoncus lacus in risus mattis et elementum elit placerat. Cras eget ante sit amet turpis tincidunt interdum. Suspendisse fermentum sollicitudin hendrerit. Sed in lectus id augue vestibulum suscipit. Nulla vulputate faucibus molestie. Pellentesque et leo aliquet nisl dignissim faucibus ac a leo. Quisque aliquet egestas tellus, nec euismod urna lacinia ac. Nunc risus velit, auctor eget interdum a, rhoncus commodo leo. Praesent nec congue lectus. Donec lacinia dictum tellus quis molestie. Vestibulum nec urna risus, at pellentesque ante. Sed eget magna lectus. Praesent in tortor elit.
Aenean vulputate erat ut ligula commodo fermentum tincidunt augue rutrum. Curabitur volutpat, justo in tincidunt porttitor, enim massa bibendum mi, nec lacinia tortor ipsum non ligula. In commodo diam et ligula pharetra placerat. Donec hendrerit, nisi non fermentum pretium, leo mi elementum quam, non dictum erat ante in tortor. Fusce sagittis egestas metus a vulputate. Proin ac nisi a lacus egestas scelerisque. Morbi enim nulla, tristique vel placerat in, iaculis in turpis. Etiam lobortis, arcu et porttitor rhoncus, lorem nisl vestibulum ipsum, sed molestie felis augue ut tellus. Aenean rutrum leo vel ante tempus ultricies. Suspendisse nec eros eget lectus posuere consectetur tincidunt at tortor.
In commodo placerat dapibus. Donec nunc nisi, pharetra ultrices tincidunt et, mollis a nisl. Phasellus sed lectus et massa eleifend adipiscing id sit amet augue. Nullam semper elementum feugiat. Phasellus leo nulla, tristique nec scelerisque vel, placerat ac nunc. Etiam sit amet neque eu erat suscipit tristique vel eu libero. Cras ullamcorper ultrices tempor. Nam tellus nulla, venenatis vel semper eu, varius ut ipsum. Vestibulum varius fermentum sem non porttitor.
Nunc a risus non velit pretium faucibus. Fusce non nisi nec eros porta pharetra sed bibendum tellus. Nunc malesuada porta dolor ac dictum. Vestibulum tincidunt sodales rutrum. Quisque vel odio quam. Cras sit amet urna sed felis dictum volutpat. Sed est lectus, faucibus tempus pharetra at, mattis eu lorem. Sed vestibulum massa et nulla ultrices a cursus velit aliquam. Cras nulla libero, commodo eu faucibus vestibulum, pharetra eget lacus. Duis vehicula massa id felis ultricies eu ultrices ligula aliquet.
Curabitur congue fermentum eros non iaculis. Aliquam erat volutpat. Phasellus scelerisque, nibh vitae aliquam gravida, dolor est tristique dui, mattis iaculis ligula nibh non nisi. Quisque vel arcu metus. Aliquam at elit non lorem cursus rhoncus. Quisque quam justo, feugiat hendrerit condimentum sed, tempus a nisl. Cras ultrices placerat rhoncus. Nam convallis posuere.
FacebookSocial network
GoogleSearch engine
TwitterMicroblogging service
AmazonOnline retailer
eBayOnline auction
WikipediaA free encyclopedia
LiveJournalBlogging platform
-------------------------------------------------------------------------------- /output/html/reverse-helper/dust.html: -------------------------------------------------------------------------------- 1 | knarFeoJmoTenaJrefinneJ -------------------------------------------------------------------------------- /output/html/reverse-helper/marko.html: -------------------------------------------------------------------------------- 1 |{text}
7 | {#projects} 8 | {name} 9 |{description}
10 | {/projects} 11 | {^projects} 12 | No projects 13 | {/projects} 14 | 15 | -------------------------------------------------------------------------------- /templates/projects-escaped/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 |{{text}}
7 | {{#projects}} 8 | {{name}} 9 |{{description}}
10 | {{/projects}} 11 | {{^projects}} 12 | No projects 13 | {{/projects}} 14 | 15 | -------------------------------------------------------------------------------- /templates/projects-escaped/template.marko: -------------------------------------------------------------------------------- 1 | 2 | 3 |${input.text}
7 |${project.description}
10 |${data.text}
7 |${project.description}
11 |{text|s}
7 | {#projects} 8 | {name|s} 9 |{description|s}
10 | {/projects} 11 | {^projects} 12 | No projects 13 | {/projects} 14 | 15 | -------------------------------------------------------------------------------- /templates/projects-unescaped/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 |{{{text}}}
7 | {{#projects}} 8 | {{{name}}} 9 |{{{description}}}
10 | {{/projects}} 11 | {{^projects}} 12 | No projects 13 | {{/projects}} 14 | 15 | -------------------------------------------------------------------------------- /templates/projects-unescaped/template.marko: -------------------------------------------------------------------------------- 1 | 2 | 3 |$!{input.text}
7 |$!{project.description}
10 |$!{data.text}
7 |$!{project.description}
11 |