misskey_mfm_parser 2.0.1
misskey_mfm_parser: ^2.0.1 copied to clipboard
A library for parsing MFM rewritten in Dart. Developed with the aim of conducting tests as expected by mfm.js and obtaining equivalent parsing results.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
2.0.1 - 2026-09-15 #
Added #
- Unicode Emoji 17.0 RGI sequence support and a reproducible generator for the emoji regular expression
- AST golden fixtures and serialization-based compatibility tests for detecting unintended parser changes
Fixed #
- Aligned quote, fenced code block, search, italic, hashtag, URL, and link parsing more closely with mfm.js
- Preserved input and continued parsing after invalid or incomplete syntax fallbacks, including unclosed MFM functions
- Supported CRLF and standalone CR newlines consistently across block parsers
- Rejected empty code nodes and invalid mentions while preserving subsequent valid syntax
- Recognized custom emoji codes that immediately follow alphanumeric characters
2.0.1-beta.1 - 2026-08-24 #
Included in [2.0.1].
2.0.0 - 2026-01-23 #
Changed #
- BREAKING: Minimum Dart SDK version raised to
^3.8.0(from^3.0.0) - BREAKING: All AST classes migrated to freezed sealed class union pattern
- BREAKING: Added
freezed_annotation: ^3.1.0as a runtime dependency
Added #
- Value equality (
==andhashCode) for all MfmNode types copyWith()method for immutable updates on all nodes- Enhanced
toString()output for debugging - Dart 3 pattern matching support with exhaustiveness checking
Removed #
custom_lintdev dependency (incompatible with newer analyzer version)
1.0.1 - 2026-01-21 #
The reason for the PUB POINTS being 150 on pub.dev was due to exceeding the 180-character limit in the description. I shortened part of the explanation to fit within the base character count. There are no changes to the library's functionality with this update.