React Native Enriched Markdown 1.0.0

v1.​0.​0Major Release

react-native-enriched-markdown is now stable!

This is our first stable release. After a long run of pre-1.0 versions, the rendering behaviour is consistent for Android and iOS

New Features

Fixes & Improvements

  • fix: include README, LICENSE, and docs in npm package by @hryhoriiK97 in #483
  • fix(expo): build config plugin separately from main lib by @huextrat in #488
  • fix(ios): dedupe RaTeX XCFramework signature for Xcode 26 archive (#491) by @hryhoriiK97 in #492
  • fix(android): adjust blockStore on all text mutations for iOS parity by @hryhoriiK97 in #500
  • fix(input): handle zero-length heading anchors in formatter and serializer (#505) by @hryhoriiK97 in #505
  • fix(ios): sync typing attributes after text edit to fix heading cursor on Enter (#506) by @hryhoriiK97 in #506
  • fix(android): sync cursor height with heading block on empty lines by @hryhoriiK97 in #507
  • fix(android): exclude block spans from inline formatting pass by @hryhoriiK97 in #508
  • fix(input): hide placeholder when heading is toggled on empty text by @hryhoriiK97 in #515
  • fix(ios): include all layout-affecting props in measurement cache key by @hryhoriiK97 in #494
  • fix: better list children rendering logic by @eszlamczyk in #478
  • fix: remove extra markers from text input by @eszlamczyk in #520
  • fix: honor ordered list start number by @yyq1025 in #525
  • fix(build): fix x86_64 simulator build and spm_dependency guard by @eszlamczyk in #531
  • fix(android): strong italic font family by @eszlamczyk in #530
  • fix: autolink detection while working with ref by @eszlamczyk in #535
  • fix(android): prevent false link hit detection for taps outside text bounds by @hryhoriiK97 in #523
  • fix(ios): lists inside blockquotes lose their indent by @eszlamczyk in #534
  • fix(ios): inline math height calculations by @eszlamczyk in #522
  • fix(iOS): replace racy RaTeXFFI modulemap-strip script with an explicit-modules opt-out by @chrfalch in #546
  • fix: reset cached style state in Fabric prepareForRecycle to stop stale-markdown flicker by @mvanhorn in #482
  • fix: preserve Select All (and other system items) in the selection edit menu by @slavaluka in #549
  • fix(ios): visible source fallback when RaTeX cannot parse a math span by @EthanCai9568 in #536
  • fix: block images overflow their line box by @eszlamczyk in #579
  • fix(input/ios): show trailing empty-line bullet marker immediately by @hryhoriiK97 in #595
  • fix(ios): reset typing attributes when input is cleared to remove stale list indent by @hryhoriiK97 in #596
  • fix: soft markdown line breaks by @eszlamczyk in #585
  • fix(android): crash indexoutofboundsexecption set span by @eszlamczyk in #583
  • fix(web): disable growable ArrayBuffers in WASM build by @hryhoriiK97 in #598
  • fix(input): align bullet marker shapes with EnrichedMarkdownText by @hryhoriiK97 in #604
  • fix(input): support macOS text input with correct typing attributes and list markers by @hryhoriiK97 in #605
  • fix(iOS): main-thread deadlock in markdown measurement under locked ShadowTree commits by @eszlamczyk in #582
  • fix(android): codeblock drawing range calculations by @eszlamczyk in #611
  • fix(iOS): apply formatting when setting text via ref setValue by @hryhoriiK97 in #617
  • fix(ios): codeblock measurement in shadow node by @eszlamczyk in #623
  • fix(input): keep styles and list block when typing over a leading selection; stop iOS edit-menu jitter by @wildseansy in #612
  • fix(android): commit font scaling settings to measurement store by @hryhoriiK97 in #631
  • fix(ios): render soft line breaks as spaces in standalone package by @maksg in #637
  • fix: inline inherited grammar highlights when vendoring (TypeScript/TSX) by @eszlamczyk in #640
  • fix: list marker dropped when inserting character by @eszlamczyk in #641
  • fix(ios): vendor RaTeX as a prebuilt static XCFramework (drop spm_dependency) by @eszlamczyk in #652
  • fix(android): font scaling measurement and bullet rendering by @hryhoriiK97 in #644

Refactors

  • refactor(input): update sync method for typing attributes to use cursor block by @hryhoriiK97 in #501
  • refactor(input): remove unused blockRangeContaining API from both platforms by @hryhoriiK97 in #502
  • refactor(input): deduplicate helpers shared between BlockStore and FormattingStore (#503) by @hryhoriiK97 in #503
  • refactor(input): narrow heading level to a union type and export HeadingStyle (#504) by @hryhoriiK97 in #504
  • refactor: deduplicate post-edit store adjustment pipeline by @hryhoriiK97 in #519
  • refactor(input): extract EditPipeline from input views (iOS & Android) by @hryhoriiK97 in #589
  • refactor(input): consolidate reentrancy flags into EditSession (iOS & Android) by @hryhoriiK97 in #590
  • refactor(input): extract BlockEditCoordinator (iOS & Android) by @hryhoriiK97 in #591
  • refactor(input): push inline style toggle logic into FormattingStore (iOS & Android) by @hryhoriiK97 in #592
  • refactor(input): extract Link, Mention, and Clipboard coordinators (iOS & Android) by @hryhoriiK97 in #593
  • refactor(input): extract list marker drawing into decorator pattern by @hryhoriiK97 in #594
  • refactor(input): extract ENRMInputEventEmitter from EnrichedMarkdownTextInput (iOS) by @hryhoriiK97 in #599
  • refactor(input): extract ENRMInputStyleStateBuilder from ENRMInputEventEmitter by @hryhoriiK97 in #600
  • refactor(input): extract ENRMInputTypingAttributesController from EnrichedMarkdownTextInput by @hryhoriiK97 in #602
  • refactor(input): move ENRMInputFormatterStyle to its own file by @hryhoriiK97 in #603

Docs & Chores

New Contributors

Full Changelog: https://github.com/software-mansion/react-native-enriched-markdown/compare/v0.7.0...main

Release card
React Native Enriched Markdown 1.0.0 release card