Skip to content

Swift-Markdown-engine

v0.10.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 11d Editors & IDEs
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Affected surfaces

breaking_upgrade

ReleasePort's take

Moderate signal
editorial:auto 11d

In Swift‑Markdown 0.10.0 the `==highlight==` and `~~strikethrough~~` syntaxes are now opt‑in extensions, requiring explicit registration.

Why it matters: Affects Markdown parsing behavior; developers must enable HighlightExtension and StrikethroughExtension in MarkdownEditorConfiguration before upgrading to version 0.10.0.

Summary

AI summary

Highlight and strikethrough syntax are now opt‑in extensions, requiring explicit registration.

Changes in this release

Breaking High

`==highlight==` and `~~strikethrough~~` are now opt‑in extensions, not core grammar.

`==highlight==` and `~~strikethrough~~` are now opt‑in extensions, not core grammar.

Source: llm_adapter@2026-07-15

Confidence: high

Feature Low

Adds `Extension seam` allowing custom delimited spans and fenced blocks via `MarkdownEditorConfiguration.extensions`.

Adds `Extension seam` allowing custom delimited spans and fenced blocks via `MarkdownEditorConfiguration.extensions`.

Source: llm_adapter@2026-07-15

Confidence: high

Feature Low

Adds `HighlightExtension` (`==text==`) and `StrikethroughExtension` (`~~text~~`) as opt‑in extensions.

Adds `HighlightExtension` (`==text==`) and `StrikethroughExtension` (`~~text~~`) as opt‑in extensions.

Source: llm_adapter@2026-07-15

Confidence: high

Feature Low

Adds `ContainerExtension` (`::: … :::`) as the first fenced‑block extension template.

Adds `ContainerExtension` (`::: … :::`) as the first fenced‑block extension template.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Medium

Fixes incremental‑parse issue where backspace joining paragraphs could cause transient styling errors.

Fixes incremental‑parse issue where backspace joining paragraphs could cause transient styling errors.

Source: llm_adapter@2026-07-15

Confidence: high

Full changelog

The extension seam: constructs beyond CommonMark are now opt-in extensions instead of core grammar. Add your own delimited span or fenced block in one file, with no changes to the parser, styler, or renderer.

[!WARNING]
Breaking — and silent. ==highlight== and ~~strikethrough~~ are no longer built into the core grammar. Your code still compiles, but unregistered these markers now render as literal text. To keep the previous behavior:

configuration.extensions = [HighlightExtension(), StrikethroughExtension()]

Added

  • Extension seam — a MarkdownExtension contributes an inline span (==text==), a fenced block (::: … :::), or both, plus content attributes and an HTML wrapper for clean copy. Register via MarkdownEditorConfiguration.extensions. Extensions never emit ranges — the parser derives all geometry — so a misbehaving extension can at worst restyle its own construct, never a neighbor. Built-in constructs always classify first. All parse caches key on the registry fingerprint, so the registered set can change at runtime.
  • HighlightExtension (==text==) and StrikethroughExtension (~~text~~) — the former built-ins, now opt-in.
  • ContainerExtension (::: … :::) — the first fenced block extension, and the template for your own.

Changed

  • Breaking: ==highlight== / ~~strikethrough~~ moved out of the core grammar into opt-in extensions (see the warning above).

Fixed

  • A pre-existing incremental-parse gap surfaced by the seam review: backspace-joining two paragraphs could leave transiently wrong styling (extra spacing or a stray emphasis span across the join) until the next edit.

Contributors

  • Extension seam — inline + fenced-block extensions, ==highlight==/~~strikethrough~~ extracted, incremental-parse fix — by @luca-chen198

Full Changelog: https://github.com/nodes-app/swift-markdown-engine/compare/0.9.0...0.10.0

Breaking Changes

  • `==highlight==` and `~~strikethrough~~` are removed from the core grammar; they now require registration via `MarkdownEditorConfiguration.extensions`.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Swift-Markdown-engine

Get notified when new releases ship.

Sign up free

About Swift-Markdown-engine

All releases →

Related context

Earlier breaking changes

  • v0.7.0 Default `scrollView` content inset is now `0`; opt back in via `config.safeAreaInsets`.
  • v0.7.0 `scrollView.documentView` is now always an internal container view, never the `NSTextView`.

Beta — feedback welcome: [email protected]