code: function getBlocks(body) {
          'use strict';
  
          var lines = body.replace(/\r\n/g, '\n').split(/\n/),
              block = false,
              sections = {},
              last;
  
          lines.forEach(function (l) {
              var build = l.match(regbuild),
                  endbuild = regend.test(l);
  
              if (build) {
                  block = true;
                  // Run the build block file through the template engine
                  sections[[build[1], grunt.template.process(build[2].trim())].join(':')] = last = [];
              }
  
              // switch back block flag when endbuild
              if (block && endbuild) {
                  last.push(l);
                  block = false;
              }
  
              if (block && last) {
                  last.push(l);
              }
          });
  
          // sections is an array of lines starting with the build block comment opener,
          // including all the references and including the build block comment closer.
          return sections;
      }
docs: Returns a hash object of all the directives for the given html. Results is of the following form:  { 'css/site.css ':[ '  <!-- build:css css/site.css -->', '  <link rel="stylesheet" href="css/style.css">', '  <!-- endbuild -->' ], 'js/head.js ': [ '  <!-- build:js js/head.js -->', '  <script src="js/libs/modernizr-2.5.3.min.js"></script>', '  <!-- endbuild -->' ], 'js/site.js ': [ '  <!-- build:js js/site.js -->', '  <script src="js/plugins.js"></script>', '  <script src="js/script.js"></script>', '  <!-- endbuild -->' ] }