jsQuery = (function(){ if(!window || !window.jQuery){ console.log("jQuery Required!"); } var $ = window.jQuery; function jsQuery(js){ if(typeof js === 'string'){ js = jsQuery.dom(js); } return js; } var jsq = jsQuery; jsq.dom = function(text, env){ return (function recurse(tree, dom, prev){ dom = dom || $('
'); prev = ''; $.each(tree, function(i, code){ if($.isArray(code)){ var div = recurse(code); if(0 <= prev.indexOf('function')){ div.addClass('function'); } else if(0 <= prev.indexOf('if') || 0 <= prev.indexOf('else')){ div.addClass('if'); } dom.append(div); } else if(code){ dom.append($("").text(code)); } prev = code; }); return dom; })(nestrecurse(text || "", ['{','}'])); } function nestrecurse(text){ text = text || ""; var args = Array.prototype.slice.call(arguments, 1); var env = {i: -1, text: text, at: [], start: {}, end: {}, count: {}}; var i = -1, l = text.length; while(++i < l){ env.c = env.text[++env.i]; var ii = -1, ll = args.length, s = '', e = ''; while(!(s || e) && ++ii < ll){ var nest = args[ii], s = (typeof nest === "string"); var start = s? nest : nest[0], end = s? nest : nest[1]; var c = (start.length === 1? env.c : env.text.slice(env.i, start.length)); if(start === c){ if(env.count[start] == env.count[end] || 0){ s = start; } env.count[start] = (env.count[start] || 0) + 1; } else if(end === c){ env.count[end] = (env.count[end] || 0) + 1; if(env.count[end] == env.count[start] || 0){ e = end; } } } if(s){ env.at.push(env.text.slice(0, env.i + s.length)); env.text = env.text.slice(env.i + s.length); env.i = -1; } if(e){ env.at.push(nestrecurse.apply(nestrecurse, [env.text.slice(0, env.i)].concat(args))); env.text = env.text.slice(env.i); env.i = e.length -1; } } if(env.text){ env.at.push(env.text); } return env.at; } return jsQuery }());