readReleaseNotes method

Future<Map<String, String>> readReleaseNotes()

Implementation

Future<Map<String, String>> readReleaseNotes() async {
  final changeLog = await File('CHANGELOG.md').readAsString();

  final versions = <String, List<String>>{};
  String version = '';
  for (var line in changeLog.split('\n')) {
    line = line.trim();
    if (line.isEmpty) continue;

    final versionMatch = RegExp(r'## (\d+\.\d+\.\d+.*)').firstMatch(line);
    if (versionMatch != null) {
      version = versionMatch.group(1)!;
      versions[version] = [];
    }

    versions[version]?.add(line);
  }

  return versions.map((key, value) => MapEntry(key, value.join('\n')));
}