code: function captureSection($, $el, keyword, meta) {
    var nodes = [];
  
    var doCapture = false;
  
    $($el).parent().contents('*').each(function(i, $node) {
  
      // detect comments
      if ($node.type === 'comment') {
  
        // get its contents
        var src = $node.data.trim();
  
        // check if it's a component
        if(isComponentComment(src, keyword)){
  
          // remove @component keyword
          src = src.substring(keyword.length);
  
          // parse to json
          var obj = YAML.safeLoad(src);
          
          // check if it's the same object
          if (deepEqual(obj, meta)) {
  
            // start capture
            doCapture = true;
  
          // if it's not the same object
          } else {
  
            // stop capture
            doCapture = false;
          }
        }
      }
  
      // capturing mode
      if (doCapture) {
  
        // all tags
        if ($node.type === 'tag' || $node.type === 'style' || $node.type === 'script') {
          nodes.push($.html($node))
        }
      }
    });
  
    return nodes;
  }
docs: Capture section
  
  This should return all nodes between the
  start-component and the next one.
  
  This one is a bit more complicated because
  cheerio doesn't put comment nodes inside
  nextUntil(), nextAll() etc. So we need to
  get the elements parent nodes contents
  (including comments) and scan to the point where
  the capturing of the section should start.