parse method

  1. @override
Node parse(
  1. BlockParser parser
)
override

Implementation

@override
Node parse(BlockParser parser) {
  final lines = <String>[];
  late HeaderLevel headerLevel;

  while (!parser.isDone) {
    final match = setextPattern.firstMatch(parser.current);
    if (match == null) {
      // More text.
      lines.add(parser.current);
      parser.advance();
      continue;
    } else {
      // The underline.
      headerLevel =
          (match[1]![0] == '=') ? HeaderLevel.header1 : HeaderLevel.header2;
      parser.advance();
      break;
    }
  }

  final contents = UnparsedContent(lines.join('\n').trimRight());

  return Header([contents], headerLevel);
}