extractHeadings function
Extract all headings from markdown text.
Implementation
List<({int level, String text, int lineNumber})> extractHeadings(
String markdown,
) {
final headings = <({int level, String text, int lineNumber})>[];
final lines = markdown.split('\n');
for (var i = 0; i < lines.length; i++) {
final match = RegExp(r'^(#{1,6})\s+(.+)$').firstMatch(lines[i]);
if (match != null) {
headings.add((
level: match.group(1)!.length,
text: match.group(2)!.trim(),
lineNumber: i + 1,
));
}
}
return headings;
}