this.files.forEach(function(f) { // Concat specified files. var src = f.src.filter(function(filepath) { // Warn on and remove invalid source files (if nonull was set). if (!grunt.file.exists(filepath)) { grunt.log.warn('Source file "' + filepath + '" not found.'); return false; } else { return true; } }).map(function(filepath) { // Read file source. fp = filepath; return grunt.file.read(filepath, { encoding : 'utf8'}); }).join(''); fp = fp.substr(fp.lastIndexOf('/') + 1, (fp.indexOf('.hbs') - fp.lastIndexOf('/') - 1)); // convert length to size src = convert.hbsSize(src); // convert blocks src = convert.hbsBlocks(src); // convert special body block src = convert.hbsBody(src); // convert includes src = convert.hbsIncludes(src); // convert comments src = convert.hbsComments(src); // convert if/else src = convert.hbsIf(src); // wrap with required macro tag src = convert.injectMacroHandle(src, fp); // substitute tokens src = convert.hbsTokens(src); src = convert.ftlTrim(src); // add version tag src = '<#-- grunt-hbs2ftl v.' + pkg.version + ' -->\n' + src; grunt.file.write(f.dest, src, { encoding : 'utf8'}); // Print a success message. // grunt.log.writeln('File "' + f.dest + '" created.'); });
this.files.forEach(function(f) { var src = f.src.filter(function(filepath) { // Warn on and remove invalid source files (if nonull was set). if (!grunt.file.exists(filepath)) { grunt.log.warn('Source file "' + filepath + '" not found.'); return false; } else { return true; } }).map(function(filepath) { // Read file source. // console.log('generating [ ' + filepath + ' ]'); return grunt.file.read(filepath, { encoding : 'utf8'}); }).join(''); src = convert.hbsStripHTMLComments(src); // console.log('--------- hbsArrayNotation'); src = convert.hbsArrayNotation(src); // convert .length to [namespace]_index src = convert.hbsSize(src); // convert contentFor src = convert.hbsContentFor(src); // convert blocks src = convert.hbsBlocks(src); // convert each to list - high in order execution as it changes variable context internally src = convert.hbsWith(src); src = convert.hbsEach(src); // convert special body block src = convert.hbsBody(src); // convert includes src = convert.hbsIncludes(src); // convert explicitly set layouts src = convert.hbsExplicitLayout(src); // convert comments src = convert.hbsComments(src); // convert if/else src = convert.hbsIf(src); // convert eq to if clause src = convert.hbsEq(src); // convert unless to !if src = convert.hbsUnless(src); // convert default into string interpolator src = convert.hbsDefault(src); // handle html literals - also in hbstokens for namespacing src = convert.hbsNoEscape(src); // handle {{#join }} src = convert.hbsJoin(src); // convert handlebars helpers in user-directives // console.log('--------- hbsHelpers'); src = convert.hbsHelpers(src); // must be run AFTER convert.hbsBlocks() // lastly, convert standard hbs tokens into ftl-versions // console.log('--------- hbsTokens'); src = convert.hbsTokens(src); // html minify src = convert.ftlTrim(src); src = globals.versionHeader + src; src = src.trim(); src = convert.ftlCompress(src); // add version tag grunt.file.write(f.dest, src, { encoding : 'utf8'}); // Print a success message. grunt.log.writeln('Generating [ ' + f.dest + ' ]'); });