Notus Changelog


  • Added support for checklists (#578)

  • Added support for text alignment (#565)

  • Fixed: Updated heuristic rules to ensure the last newline character is always preserved (#572)

  • Fixed: Inserting space in the beginning of a document resulted in an AssertionError in debug mode (#574)


  • Improved auto-formatting of code blocks from Markdown shortcuts (#560)


  • Activated the new Markdown block style shortcuts rule.


  • Added inlineCode style (#534), by @Amir-P

  • Added text direction style for controlling RTL layouts (#438), by @Amir-P

  • Added Markdown block style shortcuts (#558), by @cgestes

  • Various internal linter fixes


  • Fixed an issue with composing unset attributes with null-safety (#514)


  • Fixed remaining usage of annotations from the meta package


  • Removed dependency on meta package


  • Added support for null-safety (#510)


  • Added support for underline and strikethrough inline styles (#429).


  • Encapsulated handling of EmbeddableObjects in Deltas.Deltas produced by Notus documents will now always have embeds stored as Maps, instead of instances of EmbeddableObject.

  • NotusDocument.fromDelta constructor is no longer deprecated.


  • Improved block-level heuristics to not exit when adding empty lines in the middle of a block.


This is the first dev version of the notus package for the upcoming 1.0.0 release. The major version bump indicates that there are going to be breaking changes in this package. Each such change will be documented in this changelog as well as in the upgrading guide. This release introduces the first breaking change described below, but there is at least one more breaking change planned in one of upcoming 1.0.0-dev.x.y releases.

Breaking change: Handling of embeds changed from using a style attribute NotusAttribute.embed to actually placing embedded objects as data payload of insert operations. This functionality relies on the 2.0.0 version of quill_delta package.

Breaking API changes include:

  • NotusAttribute.embed is removed together with EmbedAttribute.

If your code relies on this attribute you can migrate your code to use the new BlockEmbed type. Inserting an embed now means inserting an instance of BlockEmbed instead of formatting with the embed style. For example,

void main() {
  // OLD:
  final doc = NotusDocument();
  doc.format(7, 0, NotusAttribute.embed.horizontalRule);
  // NEW:
  doc.insert(7, BlockEmbed.horizontalRule);

Non-breaking API changes:

  • NotusDocument.insert, NotusDocument.replace as well as Node.insert changed the inserted data type from String to Object in order to support insertion of embeds.

Deprecated APIs:

  • NotusDocument.fromDelta is deprecated and will be removed prior to stable 1.0.0 release. If you're relying on this method consider switching to NotusDocument.fromJson.

Backward compatibility for existing documents

Existing documents which use NotusAttribute.embed will automatically get converted to the new format upon loading into a NotusDocument instance, so no extra work is necessary to migrate your existing data. The same applies to composing old-style change Deltas using NotusDocument.compose.

New functionality

It is now possible to embed any user-defined object as well as override the built-in embed types (horizontal rule and image).


  • Bumped minimum Dart SDK version to 2.2

  • Upgraded dependencies and resolved analyzer errors


  • Fixed insertion of embeds when selection is not empty (#115)


  • Fixed handling of user input around embeds

  • Added new heuristic rule to preserve block style on paste


  • Upgraded dependency on quiver_hashcode to 2.0.0


  • Added meta package to dependencies

  • Fixed analysis warnings

  • Added example


  • Initial release

Last updated