https://github.com/f3ath/change
Changelog manipulation for Dart
https://github.com/f3ath/change
changelog changelog-generator changelog-parser dart dart-library dartlang keepachangelog
Last synced: about 1 year ago
JSON representation
Changelog manipulation for Dart
- Host: GitHub
- URL: https://github.com/f3ath/change
- Owner: f3ath
- License: mit
- Created: 2018-10-18T07:09:35.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-12-18T19:40:14.000Z (over 1 year ago)
- Last Synced: 2025-04-23T20:13:30.557Z (about 1 year ago)
- Topics: changelog, changelog-generator, changelog-parser, dart, dart-library, dartlang, keepachangelog
- Language: Dart
- Homepage:
- Size: 94.7 KB
- Stars: 14
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# change
Changelog manipulation in Dart. For the command-line tool, see [Cider](https://pub.dev/packages/cider).
## Features
- Supports basic Markdown syntax, such as bold, italic, links, etc.
- CRUD operations on releases and changes.
## Limitations
- Works with changelogs following [keepachangelog](https://keepachangelog.com/en/1.0.0/) format only.
- [Semantic versioning](https://semver.org/) 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](https://github.com/f3ath/marker).
## Example
```dart
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).');
}
```