extractSectionByHeading function

String? extractSectionByHeading(
  1. String markdown,
  2. RegExp headingPattern
)

Extracts text under first heading matching headingPattern (e.g. r'^#\s+Install').

Implementation

String? extractSectionByHeading(String markdown, RegExp headingPattern) {
  final List<String> lines = markdown.split('\n');
  int start = -1;
  for (int i = 0; i < lines.length; i++) {
    if (headingPattern.hasMatch(lines[i])) {
      start = i + 1;
      break;
    }
  }
  if (start < 0) return null;
  final List<String> out = [];
  for (int i = start; i < lines.length; i++) {
    if (lines[i].trimLeft().startsWith('#')) break;
    out.add(lines[i]);
  }
  return out.join('\n').trim().isEmpty ? null : out.join('\n').trim();
}