code: function(ln, offset) {
    var rest = ln.slice(offset);
    var match;
    var spaces_after_marker;
    var data = {};
    if (rest.match(reHrule)) {
      return null;
    }
    if ((match = rest.match(/^[*+-]( +|$)/))) {
      spaces_after_marker = match[1].length;
      data.type = 'Bullet';
      data.bullet_char = match[0].charAt(0);
  
    } else if ((match = rest.match(/^(\d+)([.)])( +|$)/))) {
      spaces_after_marker = match[3].length;
      data.type = 'Ordered';
      data.start = parseInt(match[1]);
      data.delimiter = match[2];
    } else {
      return null;
    }
    var blank_item = match[0].length === rest.length;
    if (spaces_after_marker >= 5 ||
        spaces_after_marker < 1 ||
        blank_item) {
          data.padding = match[0].length - spaces_after_marker + 1;
    } else {
          data.padding = match[0].length;
    }
    return data;
  }
docs: Parse a list marker and return data on the marker (type, start, delimiter, bullet character, padding) or null.