Partials
@param  {[type]}   assemble [description]
@param  {Function} next     [description]
@return {[type]}            [description]
function(assemble, next) {
      grunt.verbose.writeln('Assembling partials'.cyan);

      // load partials if specified
      var partials = assemble.partials;
      if (partials && partials.length > 0) {
        grunt.verbose.write(('\n' + 'Processing partials...\n').grey);

        partials.forEach(function(filepath) {
          var filename = path.basename(filepath, path.extname(filepath));
          grunt.verbose.ok(('Processing ' + filename.cyan + ' partial'));

          var partial = grunt.file.read(filepath);

          // If the partial is empty, pass a placeholder string to get around
          // handlebars limitations
          if (partial === '') {
            partial = '{{!}}';
          }

          // get the data
          var parsedPartial = matter(partial, assemble.options.matter);
          assemble.options.data[filename] = _.extend({}, parsedPartial.data || {}, assemble.options.data[filename] || {});

          // register the partial
          assemble.options.registerPartial(assemble.engine, filename, parsedPartial.content);
        });
      }

      next(assemble);
    }