Changelog manipulation in Dart. For the command-line tool, see Cider.
- Supports basic Markdown syntax, such as bold, italic, links, etc.
- CRUD operations on releases and changes.
- Works with changelogs following keepachangelog format only.
- Semantic versioning is implied.
- Dates must be in ISO 8601 (YYYY-MM-DD) format.
- Complex Markdown (e.g. tables, nested lists, HTML, etc) will not work. For better markdown support consider opening a PR to marker.
import 'dart:io';
import 'package:change/change.dart';
/// This example shows how to parse a changelog.
/// Run it from the project root folder: `dart example/main.dart`
void main() {
final file = File('CHANGELOG.md');
final log = parseChangelog(file.readAsStringSync());
final latest = log.history().last;
print('Changelog contains ${log.history().length} releases.');
print('The latest version is ${latest.version}');
print('released on ${latest.date}');
print('and containing ${latest.changes().length} change(s).');
}