react-native-nitro-markdown 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +68 -5
  2. package/android/src/main/cpp/cpp-adapter.cpp +4 -1
  3. package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +19 -0
  4. package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +4 -3
  5. package/ios/HybridMarkdownSession.swift +18 -0
  6. package/lib/commonjs/MarkdownContext.js.map +1 -1
  7. package/lib/commonjs/headless.js +20 -0
  8. package/lib/commonjs/headless.js.map +1 -1
  9. package/lib/commonjs/index.js +9 -1
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/markdown.js +21 -11
  12. package/lib/commonjs/markdown.js.map +1 -1
  13. package/lib/commonjs/renderers/code.js +20 -2
  14. package/lib/commonjs/renderers/code.js.map +1 -1
  15. package/lib/commonjs/renderers/table/cell-content.js +32 -0
  16. package/lib/commonjs/renderers/table/cell-content.js.map +1 -0
  17. package/lib/commonjs/renderers/table/index.js +310 -0
  18. package/lib/commonjs/renderers/table/index.js.map +1 -0
  19. package/lib/commonjs/renderers/table/table-reducer.js +29 -0
  20. package/lib/commonjs/renderers/table/table-reducer.js.map +1 -0
  21. package/lib/commonjs/renderers/table/table-utils.js +68 -0
  22. package/lib/commonjs/renderers/table/table-utils.js.map +1 -0
  23. package/lib/commonjs/renderers/table/types.js +6 -0
  24. package/lib/commonjs/renderers/table/types.js.map +1 -0
  25. package/lib/commonjs/renderers/table.js +6 -398
  26. package/lib/commonjs/renderers/table.js.map +1 -1
  27. package/lib/commonjs/theme.js +10 -1
  28. package/lib/commonjs/theme.js.map +1 -1
  29. package/lib/commonjs/use-markdown-stream.js +9 -1
  30. package/lib/commonjs/use-markdown-stream.js.map +1 -1
  31. package/lib/commonjs/utils/code-highlight.js +101 -0
  32. package/lib/commonjs/utils/code-highlight.js.map +1 -0
  33. package/lib/module/MarkdownContext.js.map +1 -1
  34. package/lib/module/headless.js +19 -0
  35. package/lib/module/headless.js.map +1 -1
  36. package/lib/module/index.js +1 -0
  37. package/lib/module/index.js.map +1 -1
  38. package/lib/module/markdown.js +21 -11
  39. package/lib/module/markdown.js.map +1 -1
  40. package/lib/module/renderers/code.js +20 -2
  41. package/lib/module/renderers/code.js.map +1 -1
  42. package/lib/module/renderers/table/cell-content.js +27 -0
  43. package/lib/module/renderers/table/cell-content.js.map +1 -0
  44. package/lib/module/renderers/table/index.js +305 -0
  45. package/lib/module/renderers/table/index.js.map +1 -0
  46. package/lib/module/renderers/table/table-reducer.js +24 -0
  47. package/lib/module/renderers/table/table-reducer.js.map +1 -0
  48. package/lib/module/renderers/table/table-utils.js +62 -0
  49. package/lib/module/renderers/table/table-utils.js.map +1 -0
  50. package/lib/module/renderers/table/types.js +4 -0
  51. package/lib/module/renderers/table/types.js.map +1 -0
  52. package/lib/module/renderers/table.js +1 -397
  53. package/lib/module/renderers/table.js.map +1 -1
  54. package/lib/module/theme.js +10 -1
  55. package/lib/module/theme.js.map +1 -1
  56. package/lib/module/use-markdown-stream.js +9 -1
  57. package/lib/module/use-markdown-stream.js.map +1 -1
  58. package/lib/module/utils/code-highlight.js +97 -0
  59. package/lib/module/utils/code-highlight.js.map +1 -0
  60. package/lib/typescript/commonjs/MarkdownContext.d.ts +6 -0
  61. package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/headless.d.ts +5 -0
  63. package/lib/typescript/commonjs/headless.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/index.d.ts +2 -0
  65. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/markdown.d.ts +24 -0
  67. package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/renderers/table/cell-content.d.ts +15 -0
  70. package/lib/typescript/commonjs/renderers/table/cell-content.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/renderers/table/index.d.ts +11 -0
  72. package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts +5 -0
  74. package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/renderers/table/table-utils.d.ts +10 -0
  76. package/lib/typescript/commonjs/renderers/table/table-utils.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/renderers/table/types.d.ts +24 -0
  78. package/lib/typescript/commonjs/renderers/table/types.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/renderers/table.d.ts +1 -11
  80. package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +9 -0
  82. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/theme.d.ts +18 -2
  84. package/lib/typescript/commonjs/theme.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/use-markdown-stream.d.ts +4 -0
  86. package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/utils/code-highlight.d.ts +8 -0
  88. package/lib/typescript/commonjs/utils/code-highlight.d.ts.map +1 -0
  89. package/lib/typescript/module/MarkdownContext.d.ts +6 -0
  90. package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
  91. package/lib/typescript/module/headless.d.ts +5 -0
  92. package/lib/typescript/module/headless.d.ts.map +1 -1
  93. package/lib/typescript/module/index.d.ts +2 -0
  94. package/lib/typescript/module/index.d.ts.map +1 -1
  95. package/lib/typescript/module/markdown.d.ts +24 -0
  96. package/lib/typescript/module/markdown.d.ts.map +1 -1
  97. package/lib/typescript/module/renderers/code.d.ts.map +1 -1
  98. package/lib/typescript/module/renderers/table/cell-content.d.ts +15 -0
  99. package/lib/typescript/module/renderers/table/cell-content.d.ts.map +1 -0
  100. package/lib/typescript/module/renderers/table/index.d.ts +11 -0
  101. package/lib/typescript/module/renderers/table/index.d.ts.map +1 -0
  102. package/lib/typescript/module/renderers/table/table-reducer.d.ts +5 -0
  103. package/lib/typescript/module/renderers/table/table-reducer.d.ts.map +1 -0
  104. package/lib/typescript/module/renderers/table/table-utils.d.ts +10 -0
  105. package/lib/typescript/module/renderers/table/table-utils.d.ts.map +1 -0
  106. package/lib/typescript/module/renderers/table/types.d.ts +24 -0
  107. package/lib/typescript/module/renderers/table/types.d.ts.map +1 -0
  108. package/lib/typescript/module/renderers/table.d.ts +1 -11
  109. package/lib/typescript/module/renderers/table.d.ts.map +1 -1
  110. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +9 -0
  111. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
  112. package/lib/typescript/module/theme.d.ts +18 -2
  113. package/lib/typescript/module/theme.d.ts.map +1 -1
  114. package/lib/typescript/module/use-markdown-stream.d.ts +4 -0
  115. package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
  116. package/lib/typescript/module/utils/code-highlight.d.ts +8 -0
  117. package/lib/typescript/module/utils/code-highlight.d.ts.map +1 -0
  118. package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +37 -27
  119. package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +13 -4
  120. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +35 -32
  121. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +21 -22
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +23 -18
  123. package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +14 -0
  124. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +2 -0
  125. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +23 -0
  126. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +2 -0
  127. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +2 -0
  128. package/package.json +6 -3
  129. package/react-native-nitro-markdown.podspec +1 -1
  130. package/src/MarkdownContext.ts +6 -0
  131. package/src/headless.ts +12 -0
  132. package/src/index.ts +3 -0
  133. package/src/markdown.tsx +47 -7
  134. package/src/renderers/code.tsx +27 -2
  135. package/src/renderers/table/cell-content.tsx +38 -0
  136. package/src/renderers/table/index.tsx +419 -0
  137. package/src/renderers/table/table-reducer.ts +36 -0
  138. package/src/renderers/table/table-utils.ts +81 -0
  139. package/src/renderers/table/types.ts +24 -0
  140. package/src/renderers/table.tsx +1 -547
  141. package/src/specs/MarkdownSession.nitro.ts +10 -0
  142. package/src/theme.ts +29 -1
  143. package/src/use-markdown-stream.ts +10 -0
  144. package/src/utils/code-highlight.ts +102 -0
package/README.md CHANGED
@@ -19,7 +19,7 @@ Native Markdown parsing and rendering for React Native.
19
19
  ## Requirements
20
20
 
21
21
  - React Native `>=0.75.0`
22
- - `react-native-nitro-modules`
22
+ - `react-native-nitro-modules >=0.35.0`
23
23
 
24
24
  Optional for math rendering:
25
25
 
@@ -113,6 +113,11 @@ This table maps each runtime API to where it is demonstrated.
113
113
  | `useMarkdownContext` / `MarkdownContext` | Access theme/renderer/link handlers inside custom trees | README examples |
114
114
  | Built-in renderer components (`CodeBlock`, `TableRenderer`, etc.) | Compose renderer overrides with built-ins | `apps/example/app/render-custom.tsx` |
115
115
  | `onLinkPress`, `onParsingInProgress`, `onParseComplete`, `plugins`, `sourceAst` | Advanced lifecycle/link/pipeline control | README examples |
116
+ | `onError` | Structured error reporting for parse and plugin failures | README examples |
117
+ | `highlightCode` / `defaultHighlighter` | Opt-in syntax highlighting for code blocks | README examples |
118
+ | `tableOptions` | Per-instance table column and measurement tuning | README examples |
119
+ | `stripSourceOffsets` | Remove source position data from parsed AST | README examples |
120
+ | `MarkdownSession.reset` / `MarkdownSession.replace` | Full and partial buffer mutation | README examples |
116
121
 
117
122
  ## Feature Index
118
123
 
@@ -133,6 +138,12 @@ Use this table as a quick map from feature -> API -> demo usage.
133
138
  | Headless parsing | `parseMarkdown`, `parseMarkdownWithOptions` | Parse markdown without built-in UI | `app/index.tsx` + README examples |
134
139
  | Custom node rendering | `renderers` + built-in renderer components | Replace specific node UI while preserving parser behavior | `app/render-custom.tsx` |
135
140
  | Styling and theme | `theme`, `styles`, `stylingStrategy`, `mergeThemes` | Control visual tokens and per-node styles | `app/render-default-styles.tsx` |
141
+ | Syntax highlighting | `highlightCode`, `defaultHighlighter`, `codeTokenColors` | Opt-in token-colored code block rendering | README examples |
142
+ | Plugin priority | `MarkdownPlugin.priority` | Control plugin execution order | README examples |
143
+ | Error reporting | `onError` | Observe parse and plugin failures without crashing | README examples |
144
+ | Table tuning | `tableOptions` | Configure column width and measurement debounce | README examples |
145
+ | AST cleanup | `stripSourceOffsets` | Remove source positions from AST for compact storage | README examples |
146
+ | Session mutation | `MarkdownSession.reset`, `MarkdownSession.replace` | Replace or partially edit the session text buffer | README examples |
136
147
  | Low-level parser access | `MarkdownParserModule` | Direct access to Nitro parser methods | README examples |
137
148
 
138
149
  ## Package Exports
@@ -164,6 +175,9 @@ Use this table as a quick map from feature -> API -> demo usage.
164
175
  - `CodeBlock`, `InlineCode`
165
176
  - `List`, `ListItem`, `TaskListItem`
166
177
  - `TableRenderer`, `Image`, `MathInline`, `MathBlock`
178
+ - Syntax highlighting:
179
+ - `defaultHighlighter`
180
+ - `CodeHighlighter`, `HighlightedToken`, `TokenType`
167
181
  - Types:
168
182
  - `MarkdownNode`, `ParserOptions`, `MarkdownParser`
169
183
  - `MarkdownProps`, `AstTransform`, `MarkdownPlugin`, `MarkdownStreamProps`, `MarkdownVirtualizationOptions`
@@ -178,7 +192,7 @@ Use this table as a quick map from feature -> API -> demo usage.
178
192
 
179
193
  ### Headless Entry (`react-native-nitro-markdown/headless`)
180
194
 
181
- Exports only parser-related API (`parseMarkdown`, `parseMarkdownWithOptions`, `extractPlainText`, `extractPlainTextWithOptions`, `getTextContent`, `getFlattenedText`, types). Use this when you do not need built-in UI rendering.
195
+ Exports only parser-related API (`parseMarkdown`, `parseMarkdownWithOptions`, `extractPlainText`, `extractPlainTextWithOptions`, `getTextContent`, `getFlattenedText`, `stripSourceOffsets`, types). Use this when you do not need built-in UI rendering.
182
196
 
183
197
  ## Component API
184
198
 
@@ -209,6 +223,9 @@ Demo usage:
209
223
  | `onParsingInProgress` | `() => void` | `undefined` | Called when parse inputs change. |
210
224
  | `onParseComplete` | `(result) => void` | `undefined` | Called with `{ raw, ast, text }` after successful parse. |
211
225
  | `onLinkPress` | `LinkPressHandler` | `undefined` | Intercepts link press before default open behavior. Return `false` to block default open. |
226
+ | `onError` | `(error, phase, pluginName?) => void` | `undefined` | Called when a parse or plugin error occurs. `phase` is `'parse'`, `'before-plugin'`, or `'after-plugin'`. |
227
+ | `highlightCode` | `boolean \| CodeHighlighter` | `undefined` | Enables syntax highlighting for code blocks. Pass `true` for the built-in highlighter or a custom `CodeHighlighter` function. |
228
+ | `tableOptions` | `{ minColumnWidth?: number; measurementStabilizeMs?: number }` | `undefined` | Table layout tuning. `minColumnWidth` defaults to `60`; `measurementStabilizeMs` defaults to `140`. |
212
229
  | `virtualize` | `boolean \| "auto"` | `false` | Enables top-level block virtualization. Use `"auto"` to activate by block threshold. |
213
230
  | `virtualizationMinBlocks` | `number` | `40` | Minimum top-level block count before virtualization activates. |
214
231
  | `virtualization` | `MarkdownVirtualizationOptions` | `undefined` | Optional FlatList tuning (`windowSize`, `initialNumToRender`, batching, clipping). |
@@ -219,7 +236,8 @@ Notes:
219
236
  - `text` in `onParseComplete` is produced by `getFlattenedText(ast)`.
220
237
  - `astTransform` should be wrapped with `useCallback` to avoid unnecessary re-parses.
221
238
  - `astTransform` is a post-parse AST rewrite hook. It does not add parser syntax support and is not a markdown-it plugin API.
222
- - Plugin pipeline order is: `beforeParse` -> parse/sourceAst -> `afterParse` -> `astTransform` -> render.
239
+ - Plugin pipeline order is: `beforeParse` plugins (sorted by `priority` desc) -> parse/sourceAst -> `afterParse` plugins (sorted by `priority` desc) -> `astTransform` -> render.
240
+ - `onError` is called per-failure; individual plugin failures do not abort the full pipeline.
223
241
  - Tables render immediately with estimated column widths, then refine widths after layout measurement to improve reliability on slower layout cycles.
224
242
  - For very large markdown content, enable `virtualize` to avoid mounting all top-level blocks at once.
225
243
  - `virtualize="auto"` enables threshold-driven virtualization while keeping small markdown renders on plain `View` trees.
@@ -277,6 +295,7 @@ import { Markdown, type MarkdownPlugin } from "react-native-nitro-markdown";
277
295
  const plugins: MarkdownPlugin[] = [
278
296
  {
279
297
  name: "rewrite-before-parse",
298
+ priority: 10, // runs before lower-priority plugins
280
299
  beforeParse: (input) => input.replace(/:rocket:/g, "ROCKET_TOKEN"),
281
300
  },
282
301
  {
@@ -298,6 +317,40 @@ const plugins: MarkdownPlugin[] = [
298
317
  <Markdown plugins={plugins}>{"Launch :rocket:"}</Markdown>;
299
318
  ```
300
319
 
320
+ ### `onError` example
321
+
322
+ ```tsx
323
+ import { Markdown } from "react-native-nitro-markdown";
324
+
325
+ <Markdown
326
+ onError={(error, phase, pluginName) => {
327
+ console.warn(`[markdown] ${phase} error`, { error, pluginName });
328
+ }}
329
+ plugins={plugins}
330
+ >
331
+ {content}
332
+ </Markdown>;
333
+ ```
334
+
335
+ ### Syntax highlighting example
336
+
337
+ ```tsx
338
+ import { Markdown } from "react-native-nitro-markdown";
339
+
340
+ // Built-in highlighter (JS/TS, Python, Bash)
341
+ <Markdown highlightCode>{"```typescript\nconst x: number = 42;\n```"}</Markdown>;
342
+
343
+ // Custom highlighter
344
+ import type { CodeHighlighter } from "react-native-nitro-markdown";
345
+
346
+ const myHighlighter: CodeHighlighter = (language, code) => {
347
+ // return an array of { text, type } tokens
348
+ return [{ text: code, type: "default" }];
349
+ };
350
+
351
+ <Markdown highlightCode={myHighlighter}>{content}</Markdown>;
352
+ ```
353
+
301
354
  ### `sourceAst` example (skip parsing in render)
302
355
 
303
356
  ```tsx
@@ -406,6 +459,8 @@ session.append("hello");
406
459
  | --- | --- | --- |
407
460
  | `append` | `(chunk: string) => number` | Appends text and returns new UTF-16 length. |
408
461
  | `clear` | `() => void` | Clears buffer and emits a reset range event (`0, 0`). |
462
+ | `reset` | `(text: string) => void` | Replaces full buffer content and emits a full-range change event. |
463
+ | `replace` | `(from: number, to: number, text: string) => number` | Partial buffer mutation; returns new total UTF-16 length. |
409
464
  | `getAllText` | `() => string` | Returns full session text. |
410
465
  | `getLength` | `() => number` | Returns current UTF-16 text length without materializing a copy. |
411
466
  | `getTextRange` | `(from: number, to: number) => string` | Returns a substring range for delta-driven streaming updates. |
@@ -495,6 +550,7 @@ import {
495
550
  extractPlainTextWithOptions,
496
551
  getTextContent,
497
552
  getFlattenedText,
553
+ stripSourceOffsets,
498
554
  } from "react-native-nitro-markdown/headless";
499
555
  ```
500
556
 
@@ -506,6 +562,7 @@ import {
506
562
  | `extractPlainTextWithOptions` | `(text: string, options: ParserOptions) => string` | Same as above with parser flags. |
507
563
  | `getTextContent` | `(node: MarkdownNode) => string` | Concatenates text recursively without layout normalization. |
508
564
  | `getFlattenedText` | `(node: MarkdownNode) => string` | Returns normalized plain text with paragraph and block separators. |
565
+ | `stripSourceOffsets` | `(node: MarkdownNode) => MarkdownNode` | Recursively removes `beg`/`end` source position fields. Useful for compact serialization or snapshot testing. |
509
566
 
510
567
  ### Parser Options
511
568
 
@@ -656,6 +713,7 @@ import type {
656
713
  - `text`, `textMuted`, `heading`, `link`, `code`, `codeBackground`, `codeLanguage`
657
714
  - `blockquote`, `border`, `surface`, `surfaceLight`, `accent`
658
715
  - `tableBorder`, `tableHeader`, `tableHeaderText`, `tableRowEven`, `tableRowOdd`
716
+ - `codeTokenColors?`: `{ keyword?, string?, comment?, number?, operator?, punctuation?, type?, default? }` — per-token colors used by `highlightCode`
659
717
  - `spacing`: `xs`, `s`, `m`, `l`, `xl`
660
718
  - `fontSizes`: `xs`, `s`, `m`, `l`, `xl`, `h1`, `h2`, `h3`, `h4`, `h5`, `h6`
661
719
  - `fontFamilies`: `regular`, `heading`, `mono`
@@ -669,11 +727,16 @@ Helpers:
669
727
  - `minimalMarkdownTheme`
670
728
  - `mergeThemes(base, partial)`
671
729
 
672
- `NodeStyleOverrides` lets you override per-node styles:
730
+ `NodeStyleOverrides` lets you override per-node styles with type-safe shape checking:
673
731
 
674
732
  ```ts
733
+ // Text-type nodes accept TextStyle; view-type nodes accept ViewStyle.
734
+ // TypeScript will catch mismatched style shapes at compile time.
675
735
  type NodeStyleOverrides = Partial<
676
- Record<MarkdownNode["type"], ViewStyle | TextStyle>
736
+ {
737
+ text: TextStyle; bold: TextStyle; italic: TextStyle; /* ... */
738
+ document: ViewStyle; blockquote: ViewStyle; code_block: ViewStyle; /* ... */
739
+ }
677
740
  >;
678
741
  ```
679
742
 
@@ -1,7 +1,10 @@
1
1
  #include <jni.h>
2
+ #include <fbjni/fbjni.h>
2
3
  #include "NitroMarkdownOnLoad.hpp"
3
4
 
4
5
  JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
5
- return margelo::nitro::Markdown::initialize(vm);
6
+ return facebook::jni::initialize(vm, []() {
7
+ margelo::nitro::Markdown::registerAllNatives();
8
+ });
6
9
  }
7
10
 
@@ -70,6 +70,25 @@ class HybridMarkdownSession : HybridMarkdownSessionSpec() {
70
70
  }
71
71
  }
72
72
 
73
+ override fun reset(text: String) {
74
+ synchronized(lock) {
75
+ buffer.replace(0, buffer.length, text)
76
+ }
77
+ notifyListeners(0.0, text.length.toDouble())
78
+ }
79
+
80
+ override fun replace(from: Double, to: Double, text: String): Double {
81
+ val newLength: Double
82
+ synchronized(lock) {
83
+ val start = from.toInt().coerceIn(0, buffer.length)
84
+ val end = to.toInt().coerceIn(start, buffer.length)
85
+ buffer.replace(start, end, text)
86
+ newLength = buffer.length.toDouble()
87
+ }
88
+ notifyListeners(from, from + text.length.toDouble())
89
+ return newLength
90
+ }
91
+
73
92
  private fun notifyListeners(from: Double, to: Double) {
74
93
  val currentListeners: Collection<(Double, Double) -> Unit>
75
94
  synchronized(lock) {
@@ -1,15 +1,16 @@
1
1
  package com.nitromarkdown
2
2
 
3
- import com.facebook.react.TurboReactPackage
3
+ import com.facebook.react.BaseReactPackage
4
4
  import com.facebook.react.bridge.NativeModule
5
5
  import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.module.model.ReactModuleInfoProvider
7
7
  import com.facebook.react.uimanager.ViewManager
8
+ import com.margelo.nitro.com.nitromarkdown.NitroMarkdownOnLoad
8
9
 
9
- class NitroMarkdownPackage : TurboReactPackage() {
10
+ class NitroMarkdownPackage : BaseReactPackage() {
10
11
  companion object {
11
12
  init {
12
- System.loadLibrary("NitroMarkdown")
13
+ NitroMarkdownOnLoad.initializeNative()
13
14
  }
14
15
  }
15
16
 
@@ -78,6 +78,24 @@ class HybridMarkdownSession: HybridMarkdownSessionSpec {
78
78
  }
79
79
  }
80
80
 
81
+ func reset(text: String) -> Void {
82
+ lock.lock()
83
+ buffer = text
84
+ lock.unlock()
85
+ notifyListeners(from: 0, to: Double((text as NSString).length))
86
+ }
87
+
88
+ func replace(from: Double, to: Double, text: String) -> Double {
89
+ lock.lock()
90
+ let startIdx = buffer.index(buffer.startIndex, offsetBy: Int(from), limitedBy: buffer.endIndex) ?? buffer.endIndex
91
+ let endIdx = buffer.index(buffer.startIndex, offsetBy: Int(to), limitedBy: buffer.endIndex) ?? buffer.endIndex
92
+ buffer.replaceSubrange(startIdx..<endIdx, with: text)
93
+ let newLength = Double((buffer as NSString).length)
94
+ lock.unlock()
95
+ notifyListeners(from: from, to: from + Double((text as NSString).length))
96
+ return newLength
97
+ }
98
+
81
99
  private func notifyListeners(from: Double, to: Double) {
82
100
  lock.lock()
83
101
  let currentListeners = Array(listeners.values)
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_theme","MarkdownContext","exports","createContext","renderers","theme","defaultMarkdownTheme","styles","undefined","stylingStrategy","onLinkPress","useMarkdownContext","useContext"],"sourceRoot":"../../src","sources":["MarkdownContext.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAD,OAAA;AAwFO,MAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAG,IAAAE,oBAAa,EAAuB;EACjEC,SAAS,EAAE,CAAC,CAAC;EACbC,KAAK,EAAEC,2BAAoB;EAC3BC,MAAM,EAAEC,SAAS;EACjBC,eAAe,EAAE,aAAa;EAC9BC,WAAW,EAAEF;AACf,CAAC,CAAC;AAEK,MAAMG,kBAAkB,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACX,eAAe,CAAC;AAACC,OAAA,CAAAS,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_theme","MarkdownContext","exports","createContext","renderers","theme","defaultMarkdownTheme","styles","undefined","stylingStrategy","onLinkPress","useMarkdownContext","useContext"],"sourceRoot":"../../src","sources":["MarkdownContext.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAD,OAAA;AA8FO,MAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAG,IAAAE,oBAAa,EAAuB;EACjEC,SAAS,EAAE,CAAC,CAAC;EACbC,KAAK,EAAEC,2BAAoB;EAC3BC,MAAM,EAAEC,SAAS;EACjBC,eAAe,EAAE,aAAa;EAC9BC,WAAW,EAAEF;AACf,CAAC,CAAC;AAEK,MAAMG,kBAAkB,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACX,eAAe,CAAC;AAACC,OAAA,CAAAS,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -9,6 +9,7 @@ exports.extractPlainTextWithOptions = extractPlainTextWithOptions;
9
9
  exports.getTextContent = exports.getFlattenedText = void 0;
10
10
  exports.parseMarkdown = parseMarkdown;
11
11
  exports.parseMarkdownWithOptions = parseMarkdownWithOptions;
12
+ exports.stripSourceOffsets = stripSourceOffsets;
12
13
  var _reactNativeNitroModules = require("react-native-nitro-modules");
13
14
  /**
14
15
  * Headless entry point for react-native-nitro-markdown.
@@ -130,5 +131,24 @@ const getFlattenedText = node => {
130
131
  return childrenText;
131
132
  }
132
133
  };
134
+
135
+ /**
136
+ * Recursively removes `beg`/`end` source offset fields from an AST.
137
+ * Useful to reduce memory in environments that don't need source mapping.
138
+ */
133
139
  exports.getFlattenedText = getFlattenedText;
140
+ function stripSourceOffsets(node) {
141
+ const {
142
+ beg: _beg,
143
+ end: _end,
144
+ children,
145
+ ...rest
146
+ } = node;
147
+ return {
148
+ ...rest,
149
+ ...(children ? {
150
+ children: children.map(stripSourceOffsets)
151
+ } : {})
152
+ };
153
+ }
134
154
  //# sourceMappingURL=headless.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","MarkdownParserModule","exports","NitroModules","createHybridObject","parseMarkdown","text","parse","jsonStr","JSON","type","children","parseMarkdownWithOptions","options","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","trim","alt","title","childrenText"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","MarkdownParserModule","exports","NitroModules","createHybridObject","parseMarkdown","text","parse","jsonStr","JSON","type","children","parseMarkdownWithOptions","options","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","trim","alt","title","childrenText","stripSourceOffsets","beg","_beg","end","_end","rest"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,8 @@ var _exportNames = {
27
27
  MathBlock: true,
28
28
  createMarkdownSession: true,
29
29
  useMarkdownSession: true,
30
- useStream: true
30
+ useStream: true,
31
+ defaultHighlighter: true
31
32
  };
32
33
  Object.defineProperty(exports, "Blockquote", {
33
34
  enumerable: true,
@@ -137,6 +138,12 @@ Object.defineProperty(exports, "createMarkdownSession", {
137
138
  return _MarkdownSession.createMarkdownSession;
138
139
  }
139
140
  });
141
+ Object.defineProperty(exports, "defaultHighlighter", {
142
+ enumerable: true,
143
+ get: function () {
144
+ return _codeHighlight.defaultHighlighter;
145
+ }
146
+ });
140
147
  Object.defineProperty(exports, "defaultMarkdownTheme", {
141
148
  enumerable: true,
142
149
  get: function () {
@@ -201,4 +208,5 @@ var _image = require("./renderers/image.js");
201
208
  var _math = require("./renderers/math.js");
202
209
  var _MarkdownSession = require("./MarkdownSession.js");
203
210
  var _useMarkdownStream = require("./use-markdown-stream.js");
211
+ var _codeHighlight = require("./utils/code-highlight.js");
204
212
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_headless","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_markdown","_markdownStream","_MarkdownContext","_theme","_heading","_paragraph","_link","_blockquote","_horizontalRule","_code","_list","_table","_image","_math","_MarkdownSession","_useMarkdownStream"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,SAAA,GAAAb,OAAA;AAOA,IAAAc,eAAA,GAAAd,OAAA;AAGA,IAAAe,gBAAA,GAAAf,OAAA;AAmBA,IAAAgB,MAAA,GAAAhB,OAAA;AAYA,IAAAiB,QAAA,GAAAjB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,KAAA,GAAAnB,OAAA;AACA,IAAAoB,WAAA,GAAApB,OAAA;AACA,IAAAqB,eAAA,GAAArB,OAAA;AACA,IAAAsB,KAAA,GAAAtB,OAAA;AACA,IAAAuB,KAAA,GAAAvB,OAAA;AACA,IAAAwB,MAAA,GAAAxB,OAAA;AACA,IAAAyB,MAAA,GAAAzB,OAAA;AACA,IAAA0B,KAAA,GAAA1B,OAAA;AAEA,IAAA2B,gBAAA,GAAA3B,OAAA;AAEA,IAAA4B,kBAAA,GAAA5B,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_headless","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_markdown","_markdownStream","_MarkdownContext","_theme","_heading","_paragraph","_link","_blockquote","_horizontalRule","_code","_list","_table","_image","_math","_MarkdownSession","_useMarkdownStream","_codeHighlight"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,SAAA,GAAAb,OAAA;AAOA,IAAAc,eAAA,GAAAd,OAAA;AAGA,IAAAe,gBAAA,GAAAf,OAAA;AAmBA,IAAAgB,MAAA,GAAAhB,OAAA;AAYA,IAAAiB,QAAA,GAAAjB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,KAAA,GAAAnB,OAAA;AACA,IAAAoB,WAAA,GAAApB,OAAA;AACA,IAAAqB,eAAA,GAAArB,OAAA;AACA,IAAAsB,KAAA,GAAAtB,OAAA;AACA,IAAAuB,KAAA,GAAAvB,OAAA;AACA,IAAAwB,MAAA,GAAAxB,OAAA;AACA,IAAAyB,MAAA,GAAAzB,OAAA;AACA,IAAA0B,KAAA,GAAA1B,OAAA;AAEA,IAAA2B,gBAAA,GAAA3B,OAAA;AAEA,IAAA4B,kBAAA,GAAA5B,OAAA;AAGA,IAAA6B,cAAA,GAAA7B,OAAA","ignoreList":[]}
@@ -86,12 +86,13 @@ const getCachedParsedAst = (text, options) => {
86
86
  }
87
87
  return cloneMarkdownNode(parsedNode);
88
88
  };
89
- const applyBeforeParsePlugins = (markdown, plugins) => {
89
+ const applyBeforeParsePlugins = (markdown, plugins, onError) => {
90
90
  if (!plugins || plugins.length === 0) {
91
91
  return markdown;
92
92
  }
93
+ const sorted = [...plugins].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
93
94
  let nextMarkdown = markdown;
94
- for (const plugin of plugins) {
95
+ for (const plugin of sorted) {
95
96
  if (!plugin.beforeParse) continue;
96
97
  try {
97
98
  const transformed = plugin.beforeParse(nextMarkdown);
@@ -101,16 +102,18 @@ const applyBeforeParsePlugins = (markdown, plugins) => {
101
102
  } catch (error) {
102
103
  const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
103
104
  warnInDev(`[react-native-nitro-markdown] plugin beforeParse${pluginLabel} threw; using previous markdown.`, error);
105
+ onError?.(error instanceof Error ? error : new Error(String(error)), 'before-plugin', plugin.name);
104
106
  }
105
107
  }
106
108
  return nextMarkdown;
107
109
  };
108
- const applyAfterParsePlugins = (ast, plugins) => {
110
+ const applyAfterParsePlugins = (ast, plugins, onError) => {
109
111
  if (!plugins || plugins.length === 0) {
110
112
  return ast;
111
113
  }
114
+ const sorted = [...plugins].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
112
115
  let nextAst = ast;
113
- for (const plugin of plugins) {
116
+ for (const plugin of sorted) {
114
117
  if (!plugin.afterParse) continue;
115
118
  try {
116
119
  const transformed = plugin.afterParse(nextAst);
@@ -120,6 +123,7 @@ const applyAfterParsePlugins = (ast, plugins) => {
120
123
  } catch (error) {
121
124
  const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
122
125
  warnInDev(`[react-native-nitro-markdown] plugin afterParse${pluginLabel} threw; using previous AST.`, error);
126
+ onError?.(error instanceof Error ? error : new Error(String(error)), 'after-plugin', plugin.name);
123
127
  }
124
128
  }
125
129
  return nextAst;
@@ -138,21 +142,24 @@ const Markdown = ({
138
142
  onParsingInProgress,
139
143
  onParseComplete,
140
144
  onLinkPress,
145
+ onError,
141
146
  virtualize = false,
142
147
  virtualizationMinBlocks = 40,
143
- virtualization
148
+ virtualization,
149
+ tableOptions,
150
+ highlightCode
144
151
  }) => {
145
152
  const parserOptionGfm = options?.gfm;
146
153
  const parserOptionMath = options?.math;
147
154
  const parseResult = (0, _react.useMemo)(() => {
148
155
  try {
149
- const markdownToParse = applyBeforeParsePlugins(children, plugins);
156
+ const markdownToParse = applyBeforeParsePlugins(children, plugins, onError ? (e, phase, name) => onError(e, phase, name) : undefined);
150
157
  const parserOptions = normalizeParserOptions({
151
158
  gfm: parserOptionGfm,
152
159
  math: parserOptionMath
153
160
  });
154
161
  let parsedAst = sourceAst ? cloneMarkdownNode(sourceAst) : getCachedParsedAst(markdownToParse, parserOptions);
155
- parsedAst = applyAfterParsePlugins(parsedAst, plugins);
162
+ parsedAst = applyAfterParsePlugins(parsedAst, plugins, onError ? (e, phase, name) => onError(e, phase, name) : undefined);
156
163
  let ast = parsedAst;
157
164
  if (astTransform) {
158
165
  try {
@@ -168,12 +175,13 @@ const Markdown = ({
168
175
  return {
169
176
  ast
170
177
  };
171
- } catch {
178
+ } catch (parseError) {
179
+ onError?.(parseError instanceof Error ? parseError : new Error(String(parseError)), 'parse');
172
180
  return {
173
181
  ast: null
174
182
  };
175
183
  }
176
- }, [children, parserOptionGfm, parserOptionMath, plugins, sourceAst, astTransform]);
184
+ }, [children, parserOptionGfm, parserOptionMath, plugins, sourceAst, astTransform, onError]);
177
185
  (0, _react.useEffect)(() => {
178
186
  onParsingInProgress?.();
179
187
  }, [children, parserOptionGfm, parserOptionMath, plugins, onParsingInProgress]);
@@ -195,8 +203,10 @@ const Markdown = ({
195
203
  theme,
196
204
  styles: nodeStyles,
197
205
  stylingStrategy,
198
- onLinkPress
199
- }), [renderers, theme, nodeStyles, stylingStrategy, onLinkPress]);
206
+ onLinkPress,
207
+ tableOptions,
208
+ highlightCode
209
+ }), [renderers, theme, nodeStyles, stylingStrategy, onLinkPress, tableOptions, highlightCode]);
200
210
  const topLevelBlocks = parseResult.ast?.type === "document" ? parseResult.ast.children ?? [] : parseResult.ast ? [parseResult.ast] : [];
201
211
  const shouldVirtualizeBySetting = virtualize === true || virtualize === "auto" && topLevelBlocks.length >= virtualizationMinBlocks;
202
212
  const shouldVirtualize = parseResult.ast !== null && shouldVirtualizeBySetting;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_blockquote","_code","_heading","_horizontalRule","_image","_link","_list","_math","_paragraph","_table","_theme","_jsxRuntime","baseStylesCache","WeakMap","parseAstCache","Map","MAX_PARSE_CACHE_ENTRIES","MAX_CACHEABLE_TEXT_LENGTH","isMarkdownNode","value","Reflect","get","warnInDev","message","error","__DEV__","runtimeConsole","globalThis","warn","cloneMarkdownNode","node","children","map","getParserOptionsKey","options","gfm","undefined","math","normalizeParserOptions","parseWithNativeParser","text","parseMarkdownWithOptions","parseMarkdown","getCachedParsedAst","length","cacheKey","cachedNode","delete","set","parsedNode","size","oldestCacheKey","keys","next","applyBeforeParsePlugins","markdown","plugins","nextMarkdown","plugin","beforeParse","transformed","pluginLabel","name","applyAfterParsePlugins","ast","nextAst","afterParse","Markdown","sourceAst","astTransform","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","onLinkPress","virtualize","virtualizationMinBlocks","virtualization","parserOptionGfm","parserOptionMath","parseResult","useMemo","markdownToParse","parserOptions","parsedAst","useEffect","raw","getFlattenedText","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","getBaseStyles","contextValue","topLevelBlocks","type","shouldVirtualizeBySetting","shouldVirtualize","keyExtractor","useCallback","index","beg","end","renderVirtualizedItem","item","jsx","NodeRenderer","depth","inListItem","View","container","Text","errorText","MarkdownContext","Provider","FlatList","data","renderItem","virtualizedList","initialNumToRender","maxToRenderPerBatch","windowSize","updateCellsBatchingPeriod","removeClippedSubviews","showsVerticalScrollIndicator","exports","isInline","NodeRendererComponent","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","n","idx","Wrapper","Fragment","wrapperProps","forEach","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","result","nodeStyleOverride","document","Heading","Paragraph","bold","italic","strikethrough","Link","Image","InlineCode","CodeBlock","Blockquote","HorizontalRule","mathContent","replace","trim","MathInline","MathBlock","List","ListItem","TaskListItem","TableRenderer","memo","previousProps","nextProps","cached","created","createBaseStyles","StyleSheet","create","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_blockquote","_code","_heading","_horizontalRule","_image","_link","_list","_math","_paragraph","_table","_theme","_jsxRuntime","baseStylesCache","WeakMap","parseAstCache","Map","MAX_PARSE_CACHE_ENTRIES","MAX_CACHEABLE_TEXT_LENGTH","isMarkdownNode","value","Reflect","get","warnInDev","message","error","__DEV__","runtimeConsole","globalThis","warn","cloneMarkdownNode","node","children","map","getParserOptionsKey","options","gfm","undefined","math","normalizeParserOptions","parseWithNativeParser","text","parseMarkdownWithOptions","parseMarkdown","getCachedParsedAst","length","cacheKey","cachedNode","delete","set","parsedNode","size","oldestCacheKey","keys","next","applyBeforeParsePlugins","markdown","plugins","onError","sorted","sort","a","b","priority","nextMarkdown","plugin","beforeParse","transformed","pluginLabel","name","Error","String","applyAfterParsePlugins","ast","nextAst","afterParse","Markdown","sourceAst","astTransform","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","onLinkPress","virtualize","virtualizationMinBlocks","virtualization","tableOptions","highlightCode","parserOptionGfm","parserOptionMath","parseResult","useMemo","markdownToParse","e","phase","parserOptions","parsedAst","parseError","useEffect","raw","getFlattenedText","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","getBaseStyles","contextValue","topLevelBlocks","type","shouldVirtualizeBySetting","shouldVirtualize","keyExtractor","useCallback","index","beg","end","renderVirtualizedItem","item","jsx","NodeRenderer","depth","inListItem","View","container","Text","errorText","MarkdownContext","Provider","FlatList","data","renderItem","virtualizedList","initialNumToRender","maxToRenderPerBatch","windowSize","updateCellsBatchingPeriod","removeClippedSubviews","showsVerticalScrollIndicator","exports","isInline","NodeRendererComponent","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","n","idx","Wrapper","Fragment","wrapperProps","forEach","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","result","nodeStyleOverride","document","Heading","Paragraph","bold","italic","strikethrough","Link","Image","InlineCode","CodeBlock","Blockquote","HorizontalRule","mathContent","replace","trim","MathInline","MathBlock","List","ListItem","TaskListItem","TableRenderer","memo","previousProps","nextProps","cached","created","createBaseStyles","StyleSheet","create","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _headless = require("../headless.js");
10
10
  var _MarkdownContext = require("../MarkdownContext.js");
11
+ var _codeHighlight = require("../utils/code-highlight.js");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  const CodeBlock = ({
13
14
  language,
@@ -15,9 +16,11 @@ const CodeBlock = ({
15
16
  node,
16
17
  style
17
18
  }) => {
19
+ const ctx = (0, _MarkdownContext.useMarkdownContext)();
18
20
  const {
19
21
  theme
20
- } = (0, _MarkdownContext.useMarkdownContext)();
22
+ } = ctx;
23
+ const highlighter = ctx.highlightCode === true ? _codeHighlight.defaultHighlighter : typeof ctx.highlightCode === 'function' ? ctx.highlightCode : null;
21
24
  const displayContent = content ?? (node ? (0, _headless.getTextContent)(node) : "");
22
25
  const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
23
26
  codeBlock: {
@@ -63,8 +66,23 @@ const CodeBlock = ({
63
66
  horizontal: true,
64
67
  showsHorizontalScrollIndicator: false,
65
68
  bounces: false,
66
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
69
+ children: highlighter && language ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
70
+ style: styles.codeBlockText,
71
+ selectable: true,
72
+ children: highlighter(language, displayContent).map((token, i) => {
73
+ const tokenColor = ctx.theme.colors.codeTokenColors?.[token.type];
74
+ return tokenColor ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
75
+ style: {
76
+ color: tokenColor
77
+ },
78
+ children: token.text
79
+ }, i) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
80
+ children: token.text
81
+ }, i);
82
+ })
83
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
84
  style: styles.codeBlockText,
85
+ selectable: true,
68
86
  children: displayContent
69
87
  })
70
88
  })]