|
- var toString = function (value, type) {
-
- if (typeof value !== 'string') {
-
- type = typeof value;
- if (type === 'number') {
- value += '';
- } else if (type === 'function') {
- value = toString(value.call(value));
- } else {
- value = '';
- }
- }
-
- return value;
-
- };
-
-
- var escapeMap = {
- "<": "<",
- ">": ">",
- '"': """,
- "'": "'",
- "&": "&"
- };
-
-
- var escapeFn = function (s) {
- return escapeMap[s];
- };
-
- var escapeHTML = function (content) {
- return toString(content)
- .replace(/&(?![\w#]+;)|[<>"']/g, escapeFn);
- };
-
-
- var isArray = Array.isArray || function (obj) {
- return ({}).toString.call(obj) === '[object Array]';
- };
-
-
- var each = function (data, callback) {
- var i, len;
- if (isArray(data)) {
- for (i = 0, len = data.length; i < len; i++) {
- callback.call(data, data[i], i, data);
- }
- } else {
- for (i in data) {
- callback.call(data, data[i], i);
- }
- }
- };
-
-
- var utils = template.utils = {
-
- $helpers: {},
-
- $include: renderFile,
-
- $string: toString,
-
- $escape: escapeHTML,
-
- $each: each
-
- };
|