|
|
|
|
@ -323,36 +323,6 @@
|
|
|
|
|
template = '';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var d in data) {
|
|
|
|
|
if (data.hasOwnProperty(d)) {
|
|
|
|
|
if (typeof data[d] === 'undefined') {
|
|
|
|
|
continue;
|
|
|
|
|
} else if (data[d] === null) {
|
|
|
|
|
template = replace(namespace + d, '', template);
|
|
|
|
|
} else if (data[d].constructor == Array) {
|
|
|
|
|
namespace += d + '.';
|
|
|
|
|
|
|
|
|
|
var regex = makeRegex(d),
|
|
|
|
|
block = getBlock(regex, namespace.substring(0, namespace.length - 1), template);
|
|
|
|
|
|
|
|
|
|
if (block == null) {
|
|
|
|
|
namespace = namespace.replace(d + '.', '');
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var numblocks = data[d].length - 1,
|
|
|
|
|
i = 0,
|
|
|
|
|
result = "";
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
result += parse(data[d][i], namespace, block, {iterator: i, total: numblocks});
|
|
|
|
|
} while (i++ < numblocks);
|
|
|
|
|
|
|
|
|
|
namespace = namespace.replace(d + '.', '');
|
|
|
|
|
template = setBlock(regex, result, template);
|
|
|
|
|
} else if (data[d] instanceof Object) {
|
|
|
|
|
template = parse(data[d], d + '.', template);
|
|
|
|
|
} else {
|
|
|
|
|
function checkConditional(key, value) {
|
|
|
|
|
var conditional = makeConditionalRegex(key),
|
|
|
|
|
matches = template.match(conditional);
|
|
|
|
|
@ -380,6 +350,38 @@
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var d in data) {
|
|
|
|
|
if (data.hasOwnProperty(d)) {
|
|
|
|
|
if (typeof data[d] === 'undefined') {
|
|
|
|
|
continue;
|
|
|
|
|
} else if (data[d] === null) {
|
|
|
|
|
template = replace(namespace + d, '', template);
|
|
|
|
|
} else if (data[d].constructor == Array) {
|
|
|
|
|
checkConditional(namespace + d + '.length', data[d].length);
|
|
|
|
|
|
|
|
|
|
namespace += d + '.';
|
|
|
|
|
|
|
|
|
|
var regex = makeRegex(d),
|
|
|
|
|
block = getBlock(regex, namespace.substring(0, namespace.length - 1), template);
|
|
|
|
|
|
|
|
|
|
if (block == null) {
|
|
|
|
|
namespace = namespace.replace(d + '.', '');
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var numblocks = data[d].length - 1,
|
|
|
|
|
i = 0,
|
|
|
|
|
result = "";
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
result += parse(data[d][i], namespace, block, {iterator: i, total: numblocks});
|
|
|
|
|
} while (i++ < numblocks);
|
|
|
|
|
|
|
|
|
|
namespace = namespace.replace(d + '.', '');
|
|
|
|
|
template = setBlock(regex, result, template);
|
|
|
|
|
} else if (data[d] instanceof Object) {
|
|
|
|
|
template = parse(data[d], d + '.', template);
|
|
|
|
|
} else {
|
|
|
|
|
checkConditional(namespace + d, data[d]);
|
|
|
|
|
checkConditional('!' + namespace + d, !data[d]);
|
|
|
|
|
|
|
|
|
|
|