react-native-nitro-markdown 0.5.0 → 0.5.1
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.
- package/README.md +68 -5
- package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +19 -0
- package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +2 -1
- package/ios/HybridMarkdownSession.swift +18 -0
- package/lib/commonjs/MarkdownContext.js.map +1 -1
- package/lib/commonjs/headless.js +20 -0
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown.js +21 -11
- package/lib/commonjs/markdown.js.map +1 -1
- package/lib/commonjs/renderers/code.js +20 -2
- package/lib/commonjs/renderers/code.js.map +1 -1
- package/lib/commonjs/renderers/table/cell-content.js +32 -0
- package/lib/commonjs/renderers/table/cell-content.js.map +1 -0
- package/lib/commonjs/renderers/table/index.js +310 -0
- package/lib/commonjs/renderers/table/index.js.map +1 -0
- package/lib/commonjs/renderers/table/table-reducer.js +29 -0
- package/lib/commonjs/renderers/table/table-reducer.js.map +1 -0
- package/lib/commonjs/renderers/table/table-utils.js +68 -0
- package/lib/commonjs/renderers/table/table-utils.js.map +1 -0
- package/lib/commonjs/renderers/table/types.js +6 -0
- package/lib/commonjs/renderers/table/types.js.map +1 -0
- package/lib/commonjs/renderers/table.js +6 -398
- package/lib/commonjs/renderers/table.js.map +1 -1
- package/lib/commonjs/theme.js +10 -1
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/use-markdown-stream.js +9 -1
- package/lib/commonjs/use-markdown-stream.js.map +1 -1
- package/lib/commonjs/utils/code-highlight.js +101 -0
- package/lib/commonjs/utils/code-highlight.js.map +1 -0
- package/lib/module/MarkdownContext.js.map +1 -1
- package/lib/module/headless.js +19 -0
- package/lib/module/headless.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown.js +21 -11
- package/lib/module/markdown.js.map +1 -1
- package/lib/module/renderers/code.js +20 -2
- package/lib/module/renderers/code.js.map +1 -1
- package/lib/module/renderers/table/cell-content.js +27 -0
- package/lib/module/renderers/table/cell-content.js.map +1 -0
- package/lib/module/renderers/table/index.js +305 -0
- package/lib/module/renderers/table/index.js.map +1 -0
- package/lib/module/renderers/table/table-reducer.js +24 -0
- package/lib/module/renderers/table/table-reducer.js.map +1 -0
- package/lib/module/renderers/table/table-utils.js +62 -0
- package/lib/module/renderers/table/table-utils.js.map +1 -0
- package/lib/module/renderers/table/types.js +4 -0
- package/lib/module/renderers/table/types.js.map +1 -0
- package/lib/module/renderers/table.js +1 -397
- package/lib/module/renderers/table.js.map +1 -1
- package/lib/module/theme.js +10 -1
- package/lib/module/theme.js.map +1 -1
- package/lib/module/use-markdown-stream.js +9 -1
- package/lib/module/use-markdown-stream.js.map +1 -1
- package/lib/module/utils/code-highlight.js +97 -0
- package/lib/module/utils/code-highlight.js.map +1 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts +6 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts +5 -0
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown.d.ts +24 -0
- package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts +11 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts +24 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table.d.ts +1 -11
- package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +9 -0
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme.d.ts +18 -2
- package/lib/typescript/commonjs/theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/commonjs/utils/code-highlight.d.ts.map +1 -0
- package/lib/typescript/module/MarkdownContext.d.ts +6 -0
- package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts +5 -0
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/markdown.d.ts +24 -0
- package/lib/typescript/module/markdown.d.ts.map +1 -1
- package/lib/typescript/module/renderers/code.d.ts.map +1 -1
- package/lib/typescript/module/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/module/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/index.d.ts +11 -0
- package/lib/typescript/module/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/types.d.ts +24 -0
- package/lib/typescript/module/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table.d.ts +1 -11
- package/lib/typescript/module/renderers/table.d.ts.map +1 -1
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +9 -0
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/module/theme.d.ts +18 -2
- package/lib/typescript/module/theme.d.ts.map +1 -1
- package/lib/typescript/module/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/module/utils/code-highlight.d.ts.map +1 -0
- package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +37 -27
- package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +13 -4
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +35 -32
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +21 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +23 -18
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +14 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +2 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +23 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +2 -0
- package/package.json +6 -3
- package/react-native-nitro-markdown.podspec +1 -1
- package/src/MarkdownContext.ts +6 -0
- package/src/headless.ts +12 -0
- package/src/index.ts +3 -0
- package/src/markdown.tsx +47 -7
- package/src/renderers/code.tsx +27 -2
- package/src/renderers/table/cell-content.tsx +38 -0
- package/src/renderers/table/index.tsx +419 -0
- package/src/renderers/table/table-reducer.ts +36 -0
- package/src/renderers/table/table-utils.ts +81 -0
- package/src/renderers/table/types.ts +24 -0
- package/src/renderers/table.tsx +1 -547
- package/src/specs/MarkdownSession.nitro.ts +10 -0
- package/src/theme.ts +29 -1
- package/src/use-markdown-stream.ts +10 -0
- 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
|
-
|
|
736
|
+
{
|
|
737
|
+
text: TextStyle; bold: TextStyle; italic: TextStyle; /* ... */
|
|
738
|
+
document: ViewStyle; blockquote: ViewStyle; code_block: ViewStyle; /* ... */
|
|
739
|
+
}
|
|
677
740
|
>;
|
|
678
741
|
```
|
|
679
742
|
|
|
@@ -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) {
|
|
@@ -5,11 +5,12 @@ 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
10
|
class NitroMarkdownPackage : TurboReactPackage() {
|
|
10
11
|
companion object {
|
|
11
12
|
init {
|
|
12
|
-
|
|
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;
|
|
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":[]}
|
package/lib/commonjs/headless.js
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/lib/commonjs/markdown.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
-
} =
|
|
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
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_jsxRuntime","CodeBlock","language","content","node","style","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_codeHighlight","_jsxRuntime","CodeBlock","language","content","node","style","ctx","useMarkdownContext","theme","highlighter","highlightCode","defaultHighlighter","displayContent","getTextContent","styles","useMemo","StyleSheet","create","codeBlock","backgroundColor","colors","codeBackground","borderRadius","m","padding","spacing","l","marginVertical","borderWidth","borderColor","border","codeLanguage","color","fontSize","fontSizes","xs","fontWeight","marginBottom","s","textTransform","letterSpacing","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","codeBlockText","select","ios","android","text","lineHeight","showLanguage","showCodeLanguage","jsxs","View","children","jsx","Text","ScrollView","horizontal","showsHorizontalScrollIndicator","bounces","selectable","map","token","i","tokenColor","codeTokenColors","type","exports","InlineCode","codeInline","code","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["renderers/code.tsx"],"mappings":"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","ignoreList":[]}
|