Skip to content

v1.2.0

Latest

Choose a tag to compare

@maksg maksg released this 12 Nov 14:20
· 4 commits to main since this release

What's Changed

New Features

  • feat(android): let apps supply custom spoiler overlays by @jnowakow in #903
  • feat(android): add LaTeX math rendering as an optional plugin by @jnowakow in #873
  • feat: add native link pills by @hryhoriiK97 in #920
  • feat(link-pill): add optional icon tint by @hryhoriiK97 in #921
  • feat(ios): add long-press menus for links by @hryhoriiK97 in #923
  • feat(input): expose link destination in StyleState so apps can display link target by @hsource in #883
  • feat(android): support last-block margin in enriched-markdown-android by @jnowakow in #945
  • feat(ios): highlight fenced code blocks with tree-sitter by @maksg in #928
  • feat: add opt-in native text and inline code link recognition by @juliusmarminge in #855
  • feat(android): provide markdown plugins through composable scopes by @jnowakow in #935
  • feat(ios): add scrollable code block panels with a header and copy button by @hryhoriiK97 in #972
  • feat(ios): add markdownBottomMarginEnabled and end the text at its content by @maksg in #970
  • feat(android): add opt-in syntax highlighting for code blocks by @jnowakow in #940
  • feat(android)!: enable LaTeX math through LatexMathPlugin only by @jnowakow in #980
  • feat(android): scroll root-level code blocks horizontally instead of wrapping by @jnowakow in #983
  • feat(android): add a header with language name and copy button to code blocks by @jnowakow in #985
  • feat(android): add a Material 3 markdown style that follows the color scheme by @jnowakow in #968
  • feat: add a per-block line wrap toggle to code block headers by @eszlamczyk in #1021
  • feat(web): add EnrichedMarkdownTextInput for the web by @eszlamczyk in #965
  • feat(core): collect replaceable blocks and share the streaming filter by @hryhoriiK97 in #1026
  • feat(native): host React block renderers in the segmented markdown views by @hryhoriiK97 in #1027
  • feat: add renderers and resolveImageSource to EnrichedMarkdownText by @hryhoriiK97 in #1028
  • feat(native): grow arriving block slots into place while streaming by @hryhoriiK97 in #1034
  • feat(web): resolve text direction per paragraph for RTL and bidi content by @haithamassoli44 in #1058
  • feat(core): C++ markdown repair module for streaming by @hryhoriiK97 in #830
  • feat(core): withhold half-written syntax at the end of a streamed prefix by @maksg in #1092
  • feat(ios): style links per URL pattern with Link(matching:) by @maksg in #1085
  • feat: speak LaTeX formulas in English from one shared C++ engine by @maksg in #979
  • feat: add onTextPress to EnrichedMarkdownText by @thisislvca in #1031
  • feat: report the document's links through onLinksChange by @juliusmarminge in #1088
  • feat(core): collect code blocks as block slots by @eszlamczyk in #1068
  • feat(native): place code block slots in the iOS and Android hosts by @eszlamczyk in #1069
  • feat: add code block renderers to EnrichedMarkdownText by @eszlamczyk in #1070
  • feat: report selection copies through onSelectionCopy by @jnowakow in #1125

Fixes & Improvements

  • fix(ios): classify writing direction beyond the BMP with CoreText by @maksg in #907
  • perf(android): position inline code backgrounds from the drawing layout by @jnowakow in #899
  • fix(ios): lay out concealed spoiler slices with TextKit 2 by @maksg in #911
  • fix: make lineHeight work for both normal lines and headings on iOS and Android; sync measurements by @hsource in #885
  • fix(ios): yield settled horizontal block pans to back navigation by @juliusmarminge in #958
  • fix: dispatch image presses from iOS table cells by @juliusmarminge in #959
  • fix: center code-block header controls above the divider by @juliusmarminge in #960
  • fix: isolate header-bearing iOS images from URL-only HTTP caching by @juliusmarminge in #963
  • fix: stop copying the docs site into the npm package by @hryhoriiK97 in #973
  • fix(android): keep the inline code style inside headings and list items by @jo-a-n in #938
  • fix(postinstall): read the download opt-out from workspace apps in monorepos by @hryhoriiK97 in #977
  • fix(android): guard APIs newer than minSdk by @jnowakow in #967
  • fix(android): keep inline styles in place when the empty list anchor changes by @dev265545 in #964
  • fix: size ordered list markers to their widest number by @hryhoriiK97 in #1015
  • fix(clipboard): preserve table cell line breaks and math by @hryhoriiK97 in #1019
  • fix(ios): retain intrinsic width for explicit line breaks by @hryhoriiK97 in #1017
  • fix: isolate the embedded parser behind an ENRMRKD_ prefix by @eszlamczyk in #922
  • fix(parser): preserve named and numeric character references by @hryhoriiK97 in #1018
  • fix(android): align mixed nested list indents with iOS by @hryhoriiK97 in #1023
  • fix(android): a long-press on a link no longer also opens selection or block menus by @voida6 in #1011
  • fix(android): a long-press drag selection is no longer stolen by a scrolling parent by @voida6 in #1012
  • fix: stop the input flickering bottom-aligned while it grows by @eszlamczyk in #1035
  • fix(android): re-measure markdown only when its props change by @AI091 in #924
  • fix(android): resync the hint after setValueFromJS so a long press doesn't crash by @renefitzke in #971
  • fix(ios): reset numberOfLines and ellipsizeMode when a text view is recycled by @dev265545 in #986
  • fix: argent cloud build issues by @eszlamczyk in #1056
  • fix(ios): classify RN writing direction beyond the BMP by @maksg in #975
  • fix(ios): build without video support again by @juliusmarminge in #1086
  • fix(android): include the slot's generated shadow node by its codegen path by @juliusmarminge in #1087
  • fix(android): center inline images on the cap height like iOS by @juliusmarminge in #1089
  • fix(android): keep MathContainerView under its real package for R8 by @dev265545 in #1101
  • fix(android): center bullets on the list font, not the view's base font by @jnowakow in #1054
  • fix(android): honor ordered list start number by @jnowakow in #1055
  • fix(android): toggle the tapped task item after a table, code block or quote by @jnowakow in #1077
  • fix(macos): restore the macOS build by @adelbeke in #1095
  • fix(android): re-render when streamingAnimation changes by @maxlapides in #1008
  • fix(ios): build the segmented view's rotors from its leaf elements by @dev265545 in #1099
  • fix(android): ignore late render and image work after the view is dropped by @ryuhzk in #1063
  • fix(android): keep a list's line height off the code blocks in its items by @jnowakow in #1057
  • fix(android): measure spacer lines inside lists as tall as they are drawn by @jnowakow in #1102
  • fix(android): build against RN nightly's deprecated invokeJavaMethod overload by @hryhoriiK97 in #1119
  • fix: allow explicit CommonMark strikethrough parsing by @mvanhorn in #1090
  • fix(android): draw the first frame of EnrichedMarkdownText in its style by @hryhoriiK97 in #1115
  • fix(android): insert an empty list item on Return at the start of an item by @jnowakow in #1113
  • fix(android): stop cutting off the last line of content-sized text by @jnowakow in #1107
  • fix(web): render the markdown in the commit that receives it by @jnowakow in #1111
  • fix: close inline styles at the end of each line in the input's markdown by @jnowakow in #1109
  • fix(android): stop table cells losing a line ending in italic by @jnowakow in #1124
  • fix(android): rebuild text layout when a block image's height changes by @Redy144 in #1128
  • fix(ios): hide placeholder while IME is composing by @forzys in #1136
  • fix(ios): draw the rounded corners of table borders by @Cookizza in #1075
  • perf(ios): bound the measurement cache and coalesce pending renders by @juliusmarminge in #1138
  • fix(ios): show a newly mounted view's content in its first frame by @hryhoriiK97 in #1139
  • fix(android): keep the block context menu from crashing when it is wider than the screen by @jnowakow in #1076
  • fix(android): keep a code block's box inside a list item by @jnowakow in #1065
  • fix(android): keep text selectable when laid out before it is attached by @jnowakow in #1135
  • fix(android): draw words after an image that opens a line by @jnowakow in #1129
  • fix(ios): scale inline images with the font by @jnowakow in #1155
  • fix: show alt text when an image fails to load by @jnowakow in #1148
  • fix: fit inline images in their square and centre them on the cap height by @Redy144 in #1157

Refactors

  • refactor(android): split compose style patches into one file per element by @jnowakow in #900
  • refactor(android): require a style in MarkdownTheme by @jnowakow in #948
  • refactor(android): rename spoiler segments to spoiler slices by @jnowakow in #930
  • refactor(android)!: register spans through TextViewAwareSpan and position highlights from the layout by @jnowakow in #926
  • refactor(android): reuse one flag for top-priority exclusive spans by @jnowakow in #981
  • refactor: generate codegen in the app instead of shipping it by @hryhoriiK97 in #1121

Tests

  • test(ios): run the RN library XCTest suites, not just the placeholder by @eszlamczyk in #890
  • test(android): pass plugins to applyTableNode in the below-API-28 table test by @jnowakow in #982
  • test(ios): benchmark the memory a rendered and a displayed document takes by @maksg in #976
  • test(core): pin video parsing next to text before the md4c sync by @hryhoriiK97 in #1116

Docs & Chores

New Contributors

Full Changelog: v1.1.1...v1.2.0