var Handlebars = require('handlebars'); var _ = require('underscore'); var less = require('less'); var when = require('when'); module.exports = function (config, mongodataInstance) { var sourceHead = '\n' + '{{#if debug}}' + '\n' + '\n' + '{{else}}' + '\n' + '{{/if}}'; var sourceBody = '\n' + '\n' + '\n' + '\n' + '\n'; var getPreviewHTML = function (options, content, callback) { config.debug && console.log('getPreviewHTML',content); var html = content; var promises = replaceMarkers(options, html); when.all( promises, function onSucces (results) { console.log('getPreviewHTML replaceMakers results',results); _.forEach(results, function (result) { if (result) { html = html.replaceAll(result.regExp, result.replacement); } }); return callback(null, html); }, function onFailure(err) { return callback(err); } ) }; var replaceMarkers = function (options, html) { function replace(marker, getReplacement) { var deferred = when.defer(); var regExp = new RegExp(''); var result = html.match(regExp); if (result) { getReplacement(result, function (err, replacement) { if (err) { deferred.reject(err); } else { deferred.resolve({regExp:regExp, replacement:replacement}) } }) } else { deferred.resolve(); } return deferred.promise; } console.log('marker options',options); var promises = []; /* markers: [type]_[collection]_[name]_[attribute] script ->