parseTable function
Parse a markdown table into headers and rows.
Implementation
({List<String> headers, List<List<String>> rows})? parseTable(
String tableText,
) {
final lines = tableText.trim().split('\n');
if (lines.length < 2) return null;
List<String> parseRow(String line) {
return line
.split('|')
.map((c) => c.trim())
.where((c) => c.isNotEmpty)
.toList();
}
final headers = parseRow(lines[0]);
if (headers.isEmpty) return null;
// Skip separator line (line 1)
final rows = <List<String>>[];
for (var i = 2; i < lines.length; i++) {
final row = parseRow(lines[i]);
if (row.isNotEmpty) rows.add(row);
}
return (headers: headers, rows: rows);
}