code: function processFile(sourcePath, templates, customPartialName, files) {
    return (file, callback) => {
      const layout = templates.layouts[file.meta.layout];
      const fns = wrapFunctions(templates.fns, file, files);
      const context = Object.assign({}, file.meta, fns);
      async.waterfall([
        cb => getPartials(file, sourcePath, templates, customPartialName, cb),
        (partials, cb) => render(file, layout, context, partials, cb),
      ], (error, result) => {
        const data = result;
        async.nextTick(callback, error, Object.assign({}, file, { data }));
      });
    };
  }
docs: Process a single file.