See also API changes.


The Litedown plugin now supports automatic links and creates an EMAIL tag.


The data-s9e-livepreview-postprocess attribute has been renamed to data-s9e-livepreview-onrender. The old attribute name remains as an alias but will be removed in 3.0.0. See the list of live preview attributes.

The Escaper plugin now escapes ~ by default.

The backtick character ` is now considered unsafe when user input is used in a JavaScript context.


The Litedown behaviour has changed:

  • Block spoilers and inline spoilers have been added.
  • A forced line break forces the next newline character (U+000A) to be output verbatim. This ensures that only one line break occurs even if automatic line breaks are enabled.


The Autolink behaviour has changed:

  • A low-priority verbatim tag is used to protect the linked URL from partial replacements. This prevents markup from being interpreted inside of URLs while allowing whole replacements.

The Emoji configurator has changed:

  • The attribute name is now hardcoded.
  • The default template uses Twemoji's assets.


$configurator->asConfig() does not implicitly call $configurator->plugins->finalize() anymore. The latter remains available and can be called explicitly if necessary, before the configuration is generated.

AVTHelper::parse() now silently converts invalid XPath expressions to literals instead of throwing an exception.