Skip to content

Instantly share code, notes, and snippets.

@yuya
Created September 18, 2013 05:37
Show Gist options
  • Save yuya/6604976 to your computer and use it in GitHub Desktop.
Save yuya/6604976 to your computer and use it in GitHub Desktop.
// Simple JavaScript Templating
// John Resig - http://ejohn.org/ - MIT Licensed
(function () {
var cache = {};
this.tmpl = function tmpl(str, data) {
var fn = !/\W/.test(str) ?
cache[str] = cache[str] ||
tmpl(document.getElementById(str).innerHTML) :
new Function("obj",
"var p = [], print = function () { p.push.apply(p, arguments); };" +
"with(obj) { p.push('" +
str
.replace(/[\r\t\n]/g, " ")
.split("<%").join("\t")
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%>/g, "',$1,'")
.split("\t").join("');")
.split("%>").join("p.push('")
.split("\r").join("\\'")
+ "'); } return p.join('');"
);
return data ? fn(data) : fn;
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment