Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function (root) {
- var isDom = root === window;
- var self = isDom ? (root.Temp = {}) : root.exports;
- self.escape = function (str) {
- return str.replace(/<|>|'|"/g, function (unit) {
- return {
- '<': '<',
- '>': '>',
- '\'': ''',
- '"': '"'
- } [unit];
- });
- };
- self.compile = function (str) {
- var re = /(\$|#)\{(.*?)\}|<\?(.*?)\?>/g;
- var match;
- var start = 0;
- var end;
- var c = 'var escape=' + self.escape + ';with(context){';
- for (;;) {
- match = re.exec(str);
- end = (match ? re.lastIndex : str.length) - 1;
- c += 'out+="'
- + str.substr(start, end)
- .replace(/\\/g, '\\\\')
- .replace(/"/g, '\\"')
- + '";';
- if (!match) {
- break;
- }
- }
- while (match = re.exec(str)) {
- c += 'out+="'
- + str.substr(pos, re.lastIndex)
- .replace(/\\/g, '\\\\')
- .replace(/"/g, '\\"')
- + '";'
- if (matches[3] === undefined) {
- c += 'out+=' + (matches[1] == '$' ? 'escape(' + matches[2] + ')' : matches[2]) + ';';
- }
- else {
- c += matches[3]
- }
- }
- };
- self.parse = function (str, data) {
- //
- };
- self.render = isDom
- ? function (id) {
- var el = root.document.getElementById(id);
- return function (data) {
- return self.parse(el.innerHTML, data);
- };
- }
- : (function () {
- var fs = require('fs');
- var data = fs.readFileSync(filename, 'utf8');
- var view = self.parse(data);
- fs.watchFile(filename, function (curr, prev) {
- fs.readFile(filename, 'utf8', function (err, data) {
- if (err) {
- throw err;
- }
- content = data;
- });
- });
- return function (data) {
- return self.parse(content, data);
- };
- })();
- })(window || module);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement