code: function render_file(locals, cb) {
      // cached?
      var template = cache[filename];
      if (template) {
        return cb(null, template(locals, handlebarsOpts));
      }
  
      fs.readFile(filename, 'utf8', function(err, str){
        if (err) {
          return cb(err);
        }
  
        var template = handlebars.compile(str);
        if (locals.cache) {
          cache[filename] = template;
        }
  
        try {
          var res = template(locals, handlebarsOpts);
          self.async.done(function(values) {
            Object.keys(values).forEach(function(id) {
              res = res.replace(id, values[id]);
            });
  
            cb(null, res);
          });
        } catch (err) {
          err.message = filename + ': ' + err.message;
          cb(err);
        }
      });
    }
docs: render the original file cb(err, str)