Repository navigation
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
- chore: release v1.1.1 by @eszlamczyk in #934
- docs: add the Docusaurus documentation site by @eszlamczyk in #713
- ci(android): compare the display benchmark against main on demand by @jnowakow in #908
- docs(android): use onLinkClick in the Compose docs by @jnowakow in #949
- docs: document link pills and link menus by @hryhoriiK97 in #947
- ci(ios): verify the synced standalone tree and skip the vendor stamp by @maksg in #984
- ci(android): run Android Lint in the Kotlin lint job by @jnowakow in #978
- chore(android): bump library version to 0.3.0 by @jnowakow in #1002
- chore: bump ratex by @eszlamczyk in #1022
- docs: update documentation to be up to date by @eszlamczyk in #989
- chore: bump react native to .88 by @eszlamczyk in #1016
- chore(docs): make docs indexable by @eszlamczyk in #1047
- ci: add Argent Cloud PR review workflow by @eszlamczyk in #969
- docs(web): drop the experimental label from the web editor by @eszlamczyk in #1164
- chore: release v1.2.0 by Maksymilian Galas in
fc41835
New Contributors
- @jo-a-n made their first contribution in #938
- @dev265545 made their first contribution in #964
- @voida6 made their first contribution in #1011
- @AI091 made their first contribution in #924
- @renefitzke made their first contribution in #971
- @haithamassoli44 made their first contribution in #1058
- @adelbeke made their first contribution in #1095
- @maxlapides made their first contribution in #1008
- @ryuhzk made their first contribution in #1063
- @thisislvca made their first contribution in #1031
- @Redy144 made their first contribution in #1128
- @forzys made their first contribution in #1136
- @Cookizza made their first contribution in #1075
Full Changelog: v1.1.1...v1.2.0