JSFiddle - React, Tailwind, and code Playground
by lomatek
HTML
<script src="http://www.glicky.com/downloads/purejstemplate_jquery.js"></script>
<div id="w"></div>
JavaScript
_ = {welcome: 'welcome'};
(function() {
var doT = { version : '0.1.7' };
if (typeof module !== 'undefined' && module.exports) {
module.exports = doT;
} else {
this.doT = doT;
}
doT.templateSettings = {
//evaluate: /\{\{([\s\S]+?)\}\}/g,
//interpolate: /\{\{=([\s\S]+?)\}\}/g,
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
encode: /\{\{!([\s\S]+?)\}\}/g,
use: /\{\{#([\s\S]+?)\}\}/g, //compile time evaluation
define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g, //compile time defs
conditionalStart: /\{\{\?([\s\S]+?)\}\}/g,
conditionalEnd: /\{\{\?\}\}/g,
varname: 'it',
strip : true,
append: true
};
function resolveDefs(c, block, def) {
return ((typeof block === 'string') ? block : block.toString())
.replace(c.define, function (match, code, assign, value) {
if (code.indexOf('def.') === 0) {
code = code.substring(4);
}
if (!(code in def)) {
if (assign === ':') {
def[code]= value;
} else {
eval("def[code]=" + value);
}
}
return '';
})
.replace(c.use, function(match, code) {
var v = eval(code);
return v ? resolveDefs(c, v, def) : v;
});
}
doT.template = function(tmpl, c, def) {
c = c || doT.templateSettings;
var cstart = c.append ? "'+(" : "';out+=(", // optimal choice depends on platform/size of templates
cend = c.append ? ")+'" : ");out+='";
var str = (c.use || c.define) ? resolveDefs(c, tmpl, def || {}) : tmpl;
str = ("var out='" +
((c.strip) ? str.replace(/\s*<!\[CDATA\[\s*|\s*\]\]>\s*|[\r\n\t]|(\/\*[\s\S]*?\*\/)/g, ''): str)
.replace(/\\/g, '\\\\')
.replace(/'/g, "\\'")
...