react-native-nitro-markdown 0.5.5 → 0.5.7
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 +32 -8
- package/android/src/main/AndroidManifest.xml +1 -4
- package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +2 -0
- package/lib/commonjs/headless.js +38 -15
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/commonjs/markdown-stream.js.map +1 -1
- package/lib/commonjs/markdown.js +4 -0
- package/lib/commonjs/markdown.js.map +1 -1
- package/lib/commonjs/renderers/math.js +175 -15
- package/lib/commonjs/renderers/math.js.map +1 -1
- package/lib/commonjs/renderers/paragraph.js +3 -0
- package/lib/commonjs/renderers/paragraph.js.map +1 -1
- package/lib/module/headless.js +38 -15
- package/lib/module/headless.js.map +1 -1
- package/lib/module/markdown-stream.js.map +1 -1
- package/lib/module/markdown.js +4 -0
- package/lib/module/markdown.js.map +1 -1
- package/lib/module/renderers/math.js +176 -16
- package/lib/module/renderers/math.js.map +1 -1
- package/lib/module/renderers/paragraph.js +3 -0
- package/lib/module/renderers/paragraph.js.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts +2 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/lib/typescript/module/markdown-stream.d.ts +2 -1
- package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/renderers/math.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/headless.ts +44 -9
- package/src/markdown-stream.tsx +2 -1
- package/src/markdown.tsx +4 -0
- package/src/renderers/math.tsx +232 -11
- package/src/renderers/paragraph.tsx +3 -0
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { View, Text, PanResponder, StyleSheet, Platform } from "react-native";
|
|
4
5
|
import { getCachedStyles } from "./style-cache.js";
|
|
5
6
|
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
8
|
let MathJaxComponent = null;
|
|
9
|
+
let SvgFromXmlComponent = null;
|
|
10
|
+
let texToSvg = null;
|
|
8
11
|
try {
|
|
9
12
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
10
13
|
const mathJaxModule = require("react-native-mathjax-svg");
|
|
11
14
|
MathJaxComponent = mathJaxModule.default || mathJaxModule;
|
|
15
|
+
texToSvg = mathJaxModule.texToSvg ?? null;
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
17
|
+
SvgFromXmlComponent = require("react-native-svg").SvgFromXml;
|
|
12
18
|
} catch {
|
|
13
19
|
if (__DEV__) {
|
|
14
20
|
// eslint-disable-next-line no-console
|
|
@@ -16,6 +22,104 @@ try {
|
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
24
|
const mathStylesCache = new WeakMap();
|
|
25
|
+
const SVG_WIDTH_PATTERN = /<svg[^>]*\bwidth="([\d.]+)(?:ex|px)"/i;
|
|
26
|
+
const SVG_HEIGHT_PATTERN = /<svg[^>]*\bheight="([\d.]+)(?:ex|px)"/i;
|
|
27
|
+
function colorizeSvg(svg, color) {
|
|
28
|
+
return color ? svg.replace(/currentColor/gim, color) : svg;
|
|
29
|
+
}
|
|
30
|
+
function createMathSvg(content, fontSize, color) {
|
|
31
|
+
if (!texToSvg) return null;
|
|
32
|
+
try {
|
|
33
|
+
const xml = colorizeSvg(texToSvg(content, fontSize / 2), color);
|
|
34
|
+
const widthMatch = SVG_WIDTH_PATTERN.exec(xml);
|
|
35
|
+
const heightMatch = SVG_HEIGHT_PATTERN.exec(xml);
|
|
36
|
+
if (!widthMatch || !heightMatch) return null;
|
|
37
|
+
const width = Number.parseFloat(widthMatch[1]);
|
|
38
|
+
const height = Number.parseFloat(heightMatch[1]);
|
|
39
|
+
if (!Number.isFinite(width) || !Number.isFinite(height)) return null;
|
|
40
|
+
return {
|
|
41
|
+
xml,
|
|
42
|
+
width,
|
|
43
|
+
height
|
|
44
|
+
};
|
|
45
|
+
} catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const HorizontalMathViewport = ({
|
|
50
|
+
children,
|
|
51
|
+
contentWidth,
|
|
52
|
+
style,
|
|
53
|
+
contentStyle
|
|
54
|
+
}) => {
|
|
55
|
+
const [viewportWidth, setViewportWidth] = useState(0);
|
|
56
|
+
const [measuredContentWidth, setMeasuredContentWidth] = useState(contentWidth ?? 0);
|
|
57
|
+
const [offset, setOffset] = useState(0);
|
|
58
|
+
const viewportWidthRef = useRef(0);
|
|
59
|
+
const contentWidthRef = useRef(contentWidth ?? 0);
|
|
60
|
+
const offsetRef = useRef(0);
|
|
61
|
+
const gestureStartOffsetRef = useRef(0);
|
|
62
|
+
const [panHandlers, setPanHandlers] = useState(null);
|
|
63
|
+
const setClampedOffset = useCallback(nextOffset => {
|
|
64
|
+
const maxOffset = Math.max(0, contentWidthRef.current - viewportWidthRef.current);
|
|
65
|
+
const clampedOffset = Math.min(0, Math.max(-maxOffset, nextOffset));
|
|
66
|
+
offsetRef.current = clampedOffset;
|
|
67
|
+
setOffset(clampedOffset);
|
|
68
|
+
}, []);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (typeof contentWidth !== "number") return;
|
|
71
|
+
contentWidthRef.current = contentWidth;
|
|
72
|
+
setMeasuredContentWidth(contentWidth);
|
|
73
|
+
setClampedOffset(offsetRef.current);
|
|
74
|
+
}, [contentWidth, setClampedOffset]);
|
|
75
|
+
const handleViewportLayout = useCallback(event => {
|
|
76
|
+
viewportWidthRef.current = event.nativeEvent.layout.width;
|
|
77
|
+
setViewportWidth(viewportWidthRef.current);
|
|
78
|
+
setClampedOffset(offsetRef.current);
|
|
79
|
+
}, [setClampedOffset]);
|
|
80
|
+
const handleContentLayout = useCallback(event => {
|
|
81
|
+
if (typeof contentWidth === "number") return;
|
|
82
|
+
contentWidthRef.current = event.nativeEvent.layout.width;
|
|
83
|
+
setMeasuredContentWidth(contentWidthRef.current);
|
|
84
|
+
setClampedOffset(offsetRef.current);
|
|
85
|
+
}, [contentWidth, setClampedOffset]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
const responder = PanResponder.create({
|
|
88
|
+
onMoveShouldSetPanResponder: (_event, gestureState) => {
|
|
89
|
+
const hasOverflow = contentWidthRef.current > viewportWidthRef.current + 1;
|
|
90
|
+
const isHorizontal = Math.abs(gestureState.dx) > Math.abs(gestureState.dy) + 4;
|
|
91
|
+
return hasOverflow && isHorizontal;
|
|
92
|
+
},
|
|
93
|
+
onPanResponderGrant: () => {
|
|
94
|
+
gestureStartOffsetRef.current = offsetRef.current;
|
|
95
|
+
},
|
|
96
|
+
onPanResponderMove: (_event, gestureState) => {
|
|
97
|
+
setClampedOffset(gestureStartOffsetRef.current + gestureState.dx);
|
|
98
|
+
},
|
|
99
|
+
onPanResponderTerminationRequest: () => false
|
|
100
|
+
});
|
|
101
|
+
setPanHandlers(responder.panHandlers);
|
|
102
|
+
}, [setClampedOffset]);
|
|
103
|
+
const centeredOffset = measuredContentWidth > 0 && viewportWidth > measuredContentWidth ? (viewportWidth - measuredContentWidth) / 2 : 0;
|
|
104
|
+
return /*#__PURE__*/_jsx(View, {
|
|
105
|
+
style: style,
|
|
106
|
+
onLayout: handleViewportLayout,
|
|
107
|
+
pointerEvents: "box-only",
|
|
108
|
+
...(panHandlers ?? {}),
|
|
109
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
110
|
+
style: [contentStyle, typeof contentWidth === "number" && {
|
|
111
|
+
width: contentWidth
|
|
112
|
+
}, {
|
|
113
|
+
transform: [{
|
|
114
|
+
translateX: centeredOffset + offset
|
|
115
|
+
}]
|
|
116
|
+
}],
|
|
117
|
+
onLayout: handleContentLayout,
|
|
118
|
+
pointerEvents: "none",
|
|
119
|
+
children: children
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
};
|
|
19
123
|
const createMathStyles = theme => StyleSheet.create({
|
|
20
124
|
mathInlineContainer: {
|
|
21
125
|
marginHorizontal: 2,
|
|
@@ -40,26 +144,49 @@ const createMathStyles = theme => StyleSheet.create({
|
|
|
40
144
|
})
|
|
41
145
|
},
|
|
42
146
|
mathBlockContainer: {
|
|
147
|
+
width: "100%",
|
|
148
|
+
maxWidth: "100%",
|
|
149
|
+
alignSelf: "stretch",
|
|
43
150
|
marginVertical: theme.spacing.m,
|
|
44
151
|
paddingVertical: theme.spacing.l,
|
|
45
152
|
paddingHorizontal: theme.spacing.l,
|
|
46
153
|
backgroundColor: theme.colors.surface,
|
|
47
154
|
borderRadius: theme.borderRadius.l,
|
|
48
|
-
alignItems: "center",
|
|
49
155
|
borderWidth: 1,
|
|
50
156
|
borderColor: theme.colors.border,
|
|
51
157
|
// Ensure we don't collapse if MathJax fails to report size immediately
|
|
52
|
-
minHeight: 48
|
|
158
|
+
minHeight: 48,
|
|
159
|
+
overflow: "hidden"
|
|
160
|
+
},
|
|
161
|
+
mathBlockScroll: {
|
|
162
|
+
width: "100%",
|
|
163
|
+
alignSelf: "stretch",
|
|
164
|
+
maxWidth: "100%",
|
|
165
|
+
overflow: "hidden"
|
|
166
|
+
},
|
|
167
|
+
mathBlockScrollContent: {
|
|
168
|
+
alignSelf: "flex-start",
|
|
169
|
+
alignItems: "center",
|
|
170
|
+
justifyContent: "center"
|
|
171
|
+
},
|
|
172
|
+
mathBlockSvg: {
|
|
173
|
+
backgroundColor: "transparent"
|
|
174
|
+
},
|
|
175
|
+
mathBlockSvgFrame: {
|
|
176
|
+
flexShrink: 0
|
|
53
177
|
},
|
|
54
178
|
mathBlockFallbackContainer: {
|
|
179
|
+
width: "100%",
|
|
180
|
+
maxWidth: "100%",
|
|
181
|
+
alignSelf: "stretch",
|
|
55
182
|
marginVertical: theme.spacing.m,
|
|
56
183
|
paddingVertical: theme.spacing.m,
|
|
57
184
|
paddingHorizontal: theme.spacing.l,
|
|
58
185
|
backgroundColor: theme.colors.codeBackground,
|
|
59
186
|
borderRadius: theme.borderRadius.m,
|
|
60
|
-
alignItems: "center",
|
|
61
187
|
borderWidth: 1,
|
|
62
|
-
borderColor: theme.colors.border
|
|
188
|
+
borderColor: theme.colors.border,
|
|
189
|
+
overflow: "hidden"
|
|
63
190
|
},
|
|
64
191
|
mathBlockFallback: {
|
|
65
192
|
fontFamily: theme.fontFamilies.mono ?? Platform.select({
|
|
@@ -69,6 +196,7 @@ const createMathStyles = theme => StyleSheet.create({
|
|
|
69
196
|
fontSize: theme.fontSizes.m,
|
|
70
197
|
color: theme.colors.code,
|
|
71
198
|
textAlign: "center",
|
|
199
|
+
flexShrink: 0,
|
|
72
200
|
...(Platform.OS === "android" && {
|
|
73
201
|
includeFontPadding: false
|
|
74
202
|
})
|
|
@@ -115,25 +243,57 @@ export const MathBlock = ({
|
|
|
115
243
|
} = useMarkdownContext();
|
|
116
244
|
const styles = getCachedStyles(mathStylesCache, theme, createMathStyles);
|
|
117
245
|
if (!content) return null;
|
|
246
|
+
const displayContent = `\\displaystyle ${content}`;
|
|
247
|
+
const blockSvg = SvgFromXmlComponent && createMathSvg(displayContent, theme.fontSizes.l, theme.colors.text);
|
|
248
|
+
if (blockSvg && SvgFromXmlComponent) {
|
|
249
|
+
return /*#__PURE__*/_jsx(View, {
|
|
250
|
+
style: [styles.mathBlockContainer, style],
|
|
251
|
+
children: /*#__PURE__*/_jsx(HorizontalMathViewport, {
|
|
252
|
+
style: styles.mathBlockScroll,
|
|
253
|
+
contentStyle: styles.mathBlockScrollContent,
|
|
254
|
+
contentWidth: blockSvg.width,
|
|
255
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
256
|
+
style: [styles.mathBlockSvgFrame, {
|
|
257
|
+
width: blockSvg.width,
|
|
258
|
+
height: blockSvg.height
|
|
259
|
+
}],
|
|
260
|
+
children: /*#__PURE__*/_jsx(SvgFromXmlComponent, {
|
|
261
|
+
xml: blockSvg.xml,
|
|
262
|
+
width: blockSvg.width,
|
|
263
|
+
height: blockSvg.height,
|
|
264
|
+
style: styles.mathBlockSvg
|
|
265
|
+
})
|
|
266
|
+
})
|
|
267
|
+
})
|
|
268
|
+
});
|
|
269
|
+
}
|
|
118
270
|
if (MathJaxComponent) {
|
|
119
271
|
return /*#__PURE__*/_jsx(View, {
|
|
120
272
|
style: [styles.mathBlockContainer, style],
|
|
121
|
-
children: /*#__PURE__*/_jsx(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
273
|
+
children: /*#__PURE__*/_jsx(HorizontalMathViewport, {
|
|
274
|
+
style: styles.mathBlockScroll,
|
|
275
|
+
contentStyle: styles.mathBlockScrollContent,
|
|
276
|
+
children: /*#__PURE__*/_jsx(MathJaxComponent, {
|
|
277
|
+
fontSize: theme.fontSizes.l,
|
|
278
|
+
color: theme.colors.text,
|
|
279
|
+
fontCache: false,
|
|
280
|
+
style: {
|
|
281
|
+
backgroundColor: "transparent"
|
|
282
|
+
},
|
|
283
|
+
children: displayContent
|
|
284
|
+
})
|
|
129
285
|
})
|
|
130
286
|
});
|
|
131
287
|
}
|
|
132
288
|
return /*#__PURE__*/_jsx(View, {
|
|
133
289
|
style: [styles.mathBlockFallbackContainer, style],
|
|
134
|
-
children: /*#__PURE__*/_jsx(
|
|
135
|
-
style: styles.
|
|
136
|
-
|
|
290
|
+
children: /*#__PURE__*/_jsx(HorizontalMathViewport, {
|
|
291
|
+
style: styles.mathBlockScroll,
|
|
292
|
+
contentStyle: styles.mathBlockScrollContent,
|
|
293
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
294
|
+
style: styles.mathBlockFallback,
|
|
295
|
+
children: content
|
|
296
|
+
})
|
|
137
297
|
})
|
|
138
298
|
});
|
|
139
299
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","Text","StyleSheet","Platform","getCachedStyles","useMarkdownContext","jsx","_jsx","MathJaxComponent","mathJaxModule","require","default","__DEV__","console","warn","mathStylesCache","WeakMap","createMathStyles","theme","create","mathInlineContainer","marginHorizontal","justifyContent","mathInlineFallbackContainer","backgroundColor","colors","codeBackground","paddingHorizontal","spacing","xs","paddingVertical","borderRadius","s","mathInlineFallback","fontFamily","fontFamilies","mono","select","ios","android","fontSize","fontSizes","color","code","OS","includeFontPadding","mathBlockContainer","marginVertical","m","l","surface","alignItems","borderWidth","borderColor","border","minHeight","mathBlockFallbackContainer","mathBlockFallback","textAlign","MathInline","content","style","styles","children","text","fontCache","MathBlock"],"sourceRoot":"../../../src","sources":["renderers/math.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","View","Text","PanResponder","StyleSheet","Platform","getCachedStyles","useMarkdownContext","jsx","_jsx","MathJaxComponent","SvgFromXmlComponent","texToSvg","mathJaxModule","require","default","SvgFromXml","__DEV__","console","warn","mathStylesCache","WeakMap","SVG_WIDTH_PATTERN","SVG_HEIGHT_PATTERN","colorizeSvg","svg","color","replace","createMathSvg","content","fontSize","xml","widthMatch","exec","heightMatch","width","Number","parseFloat","height","isFinite","HorizontalMathViewport","children","contentWidth","style","contentStyle","viewportWidth","setViewportWidth","measuredContentWidth","setMeasuredContentWidth","offset","setOffset","viewportWidthRef","contentWidthRef","offsetRef","gestureStartOffsetRef","panHandlers","setPanHandlers","setClampedOffset","nextOffset","maxOffset","Math","max","current","clampedOffset","min","handleViewportLayout","event","nativeEvent","layout","handleContentLayout","responder","create","onMoveShouldSetPanResponder","_event","gestureState","hasOverflow","isHorizontal","abs","dx","dy","onPanResponderGrant","onPanResponderMove","onPanResponderTerminationRequest","centeredOffset","onLayout","pointerEvents","transform","translateX","createMathStyles","theme","mathInlineContainer","marginHorizontal","justifyContent","mathInlineFallbackContainer","backgroundColor","colors","codeBackground","paddingHorizontal","spacing","xs","paddingVertical","borderRadius","s","mathInlineFallback","fontFamily","fontFamilies","mono","select","ios","android","fontSizes","code","OS","includeFontPadding","mathBlockContainer","maxWidth","alignSelf","marginVertical","m","l","surface","borderWidth","borderColor","border","minHeight","overflow","mathBlockScroll","mathBlockScrollContent","alignItems","mathBlockSvg","mathBlockSvgFrame","flexShrink","mathBlockFallbackContainer","mathBlockFallback","textAlign","MathInline","styles","text","fontCache","MathBlock","displayContent","blockSvg"],"sourceRoot":"../../../src","sources":["renderers/math.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,8 +21,11 @@ export const Paragraph = ({
|
|
|
21
21
|
const stylesCache = new WeakMap();
|
|
22
22
|
const createStyles = theme => StyleSheet.create({
|
|
23
23
|
paragraph: {
|
|
24
|
+
width: "100%",
|
|
25
|
+
maxWidth: "100%",
|
|
24
26
|
flexDirection: "row",
|
|
25
27
|
flexWrap: "wrap",
|
|
28
|
+
flexShrink: 1,
|
|
26
29
|
marginBottom: theme.spacing.l,
|
|
27
30
|
gap: 0
|
|
28
31
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","StyleSheet","getCachedStyles","useMarkdownContext","jsx","_jsx","Paragraph","children","inListItem","style","theme","styles","stylesCache","createStyles","paragraph","paragraphInListItem","WeakMap","create","flexDirection","flexWrap","marginBottom","spacing","l","gap","marginTop"],"sourceRoot":"../../../src","sources":["renderers/paragraph.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,SAASC,eAAe,QAAQ,kBAAe;AAC/C,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASxD,OAAO,MAAMC,SAA6B,GAAGA,CAAC;EAC5CC,QAAQ;EACRC,UAAU;EACVC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAGP,kBAAkB,CAAC,CAAC;EACtC,MAAMQ,MAAM,GAAGT,eAAe,CAACU,WAAW,EAAEF,KAAK,EAAEG,YAAY,CAAC;EAEhE,oBACER,IAAA,CAACL,IAAI;IACHS,KAAK,EAAE,CACLE,MAAM,CAACG,SAAS,EAChBN,UAAU,IAAIG,MAAM,CAACI,mBAAmB,EACxCN,KAAK,CACL;IAAAF,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC;AAID,MAAMK,WAAW,GAAG,IAAII,OAAO,CAAiC,CAAC;AAEjE,MAAMH,YAAY,GAAIH,KAAoB,IACxCT,UAAU,CAACgB,MAAM,CAAC;EAChBH,SAAS,EAAE;IACTI,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBC,YAAY,
|
|
1
|
+
{"version":3,"names":["View","StyleSheet","getCachedStyles","useMarkdownContext","jsx","_jsx","Paragraph","children","inListItem","style","theme","styles","stylesCache","createStyles","paragraph","paragraphInListItem","WeakMap","create","width","maxWidth","flexDirection","flexWrap","flexShrink","marginBottom","spacing","l","gap","marginTop"],"sourceRoot":"../../../src","sources":["renderers/paragraph.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,SAASC,eAAe,QAAQ,kBAAe;AAC/C,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASxD,OAAO,MAAMC,SAA6B,GAAGA,CAAC;EAC5CC,QAAQ;EACRC,UAAU;EACVC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAGP,kBAAkB,CAAC,CAAC;EACtC,MAAMQ,MAAM,GAAGT,eAAe,CAACU,WAAW,EAAEF,KAAK,EAAEG,YAAY,CAAC;EAEhE,oBACER,IAAA,CAACL,IAAI;IACHS,KAAK,EAAE,CACLE,MAAM,CAACG,SAAS,EAChBN,UAAU,IAAIG,MAAM,CAACI,mBAAmB,EACxCN,KAAK,CACL;IAAAF,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC;AAID,MAAMK,WAAW,GAAG,IAAII,OAAO,CAAiC,CAAC;AAEjE,MAAMH,YAAY,GAAIH,KAAoB,IACxCT,UAAU,CAACgB,MAAM,CAAC;EAChBH,SAAS,EAAE;IACTI,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,MAAM;IAChBC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBC,UAAU,EAAE,CAAC;IACbC,YAAY,EAAEb,KAAK,CAACc,OAAO,CAACC,CAAC;IAC7BC,GAAG,EAAE;EACP,CAAC;EACDX,mBAAmB,EAAE;IACnBQ,YAAY,EAAE,CAAC;IACfI,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/headless.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gGAAgG;IAChG,IAAI,EACA,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,MAAM,GACN,OAAO,GACP,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,MAAM,GACN,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/headless.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gGAAgG;IAChG,IAAI,EACA,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,MAAM,GACN,OAAO,GACP,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,MAAM,GACN,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAiBF,QAAA,IAAI,oBAAoB,EAAE,cAAc,GAAG,IAAW,CAAC;AAUvD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;AAC1D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAAC;AA8BhB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAqBd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAarD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,MAAM,CAaR;AAED,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,YAAY,KAAG,MAGnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,YAAY,KAAG,MAoDrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAMnE"}
|
|
@@ -7,7 +7,8 @@ export type MarkdownStreamProps = {
|
|
|
7
7
|
*/
|
|
8
8
|
session: MarkdownSession;
|
|
9
9
|
/**
|
|
10
|
-
* Throttle UI updates
|
|
10
|
+
* Throttle UI updates when updateStrategy is "interval".
|
|
11
|
+
* Ignored when updateStrategy is "raf".
|
|
11
12
|
* Defaults to 50ms, which keeps UI responsive while streaming.
|
|
12
13
|
*/
|
|
13
14
|
updateIntervalMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA0CrE,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA0CrE,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyKlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../src/renderers/math.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../src/renderers/math.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAE1D,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAsCtB,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAiOF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA2B1C,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAmExC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/headless.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gGAAgG;IAChG,IAAI,EACA,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,MAAM,GACN,OAAO,GACP,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,MAAM,GACN,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/headless.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gGAAgG;IAChG,IAAI,EACA,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,MAAM,GACN,OAAO,GACP,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,MAAM,GACN,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAiBF,QAAA,IAAI,oBAAoB,EAAE,cAAc,GAAG,IAAW,CAAC;AAUvD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;AAC1D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAAC;AA8BhB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAqBd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAarD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,MAAM,CAaR;AAED,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,YAAY,KAAG,MAGnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,YAAY,KAAG,MAoDrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAMnE"}
|
|
@@ -7,7 +7,8 @@ export type MarkdownStreamProps = {
|
|
|
7
7
|
*/
|
|
8
8
|
session: MarkdownSession;
|
|
9
9
|
/**
|
|
10
|
-
* Throttle UI updates
|
|
10
|
+
* Throttle UI updates when updateStrategy is "interval".
|
|
11
|
+
* Ignored when updateStrategy is "raf".
|
|
11
12
|
* Defaults to 50ms, which keeps UI responsive while streaming.
|
|
12
13
|
*/
|
|
13
14
|
updateIntervalMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA0CrE,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA0CrE,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyKlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../src/renderers/math.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../src/renderers/math.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAE1D,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAsCtB,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAiOF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA2B1C,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAmExC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-markdown",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7",
|
|
4
4
|
"description": "High-performance Markdown parser for React Native using Nitro Modules and md4c",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -136,7 +136,12 @@
|
|
|
136
136
|
"esm": true
|
|
137
137
|
}
|
|
138
138
|
],
|
|
139
|
-
|
|
139
|
+
[
|
|
140
|
+
"typescript",
|
|
141
|
+
{
|
|
142
|
+
"tsc": "../../node_modules/.bin/tsc"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
140
145
|
]
|
|
141
146
|
}
|
|
142
147
|
}
|
package/src/headless.ts
CHANGED
|
@@ -79,6 +79,21 @@ export type MarkdownNode = {
|
|
|
79
79
|
children?: MarkdownNode[];
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
+
const createEmptyDocument = (): MarkdownNode => ({
|
|
83
|
+
type: "document",
|
|
84
|
+
children: [],
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
function reportNativeParserFailure(methodName: string, error?: unknown): void {
|
|
88
|
+
if (__DEV__) {
|
|
89
|
+
// eslint-disable-next-line no-console
|
|
90
|
+
console.error(
|
|
91
|
+
`[NitroMarkdown] ${methodName}: native parser failed.`,
|
|
92
|
+
error,
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
82
97
|
let MarkdownParserModule: MarkdownParser | null = null;
|
|
83
98
|
try {
|
|
84
99
|
MarkdownParserModule =
|
|
@@ -118,8 +133,13 @@ export function parseMarkdown(
|
|
|
118
133
|
MarkdownParserModule != null &&
|
|
119
134
|
typeof MarkdownParserModule.parse === "function"
|
|
120
135
|
) {
|
|
121
|
-
|
|
122
|
-
|
|
136
|
+
try {
|
|
137
|
+
const jsonStr = MarkdownParserModule.parse(text);
|
|
138
|
+
return JSON.parse(jsonStr) as MarkdownNode;
|
|
139
|
+
} catch (error) {
|
|
140
|
+
reportNativeParserFailure("parseMarkdown", error);
|
|
141
|
+
return createEmptyDocument();
|
|
142
|
+
}
|
|
123
143
|
}
|
|
124
144
|
|
|
125
145
|
if (__DEV__) {
|
|
@@ -128,7 +148,7 @@ export function parseMarkdown(
|
|
|
128
148
|
"[NitroMarkdown] parseMarkdown: native parser unavailable — check installation.",
|
|
129
149
|
);
|
|
130
150
|
}
|
|
131
|
-
return
|
|
151
|
+
return createEmptyDocument();
|
|
132
152
|
}
|
|
133
153
|
|
|
134
154
|
/**
|
|
@@ -145,8 +165,13 @@ export function parseMarkdownWithOptions(
|
|
|
145
165
|
MarkdownParserModule != null &&
|
|
146
166
|
typeof MarkdownParserModule.parseWithOptions === "function"
|
|
147
167
|
) {
|
|
148
|
-
|
|
149
|
-
|
|
168
|
+
try {
|
|
169
|
+
const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
|
|
170
|
+
return JSON.parse(jsonStr) as MarkdownNode;
|
|
171
|
+
} catch (error) {
|
|
172
|
+
reportNativeParserFailure("parseMarkdownWithOptions", error);
|
|
173
|
+
return createEmptyDocument();
|
|
174
|
+
}
|
|
150
175
|
}
|
|
151
176
|
|
|
152
177
|
if (__DEV__) {
|
|
@@ -155,7 +180,7 @@ export function parseMarkdownWithOptions(
|
|
|
155
180
|
"[NitroMarkdown] parseMarkdownWithOptions: native parser unavailable — check installation.",
|
|
156
181
|
);
|
|
157
182
|
}
|
|
158
|
-
return
|
|
183
|
+
return createEmptyDocument();
|
|
159
184
|
}
|
|
160
185
|
|
|
161
186
|
/**
|
|
@@ -167,7 +192,11 @@ export function extractPlainText(text: string): string {
|
|
|
167
192
|
MarkdownParserModule != null &&
|
|
168
193
|
typeof MarkdownParserModule.extractPlainText === "function"
|
|
169
194
|
) {
|
|
170
|
-
|
|
195
|
+
try {
|
|
196
|
+
return MarkdownParserModule.extractPlainText(text);
|
|
197
|
+
} catch (error) {
|
|
198
|
+
reportNativeParserFailure("extractPlainText", error);
|
|
199
|
+
}
|
|
171
200
|
}
|
|
172
201
|
|
|
173
202
|
return getFlattenedText(parseMarkdown(text));
|
|
@@ -184,7 +213,11 @@ export function extractPlainTextWithOptions(
|
|
|
184
213
|
MarkdownParserModule != null &&
|
|
185
214
|
typeof MarkdownParserModule.extractPlainTextWithOptions === "function"
|
|
186
215
|
) {
|
|
187
|
-
|
|
216
|
+
try {
|
|
217
|
+
return MarkdownParserModule.extractPlainTextWithOptions(text, options);
|
|
218
|
+
} catch (error) {
|
|
219
|
+
reportNativeParserFailure("extractPlainTextWithOptions", error);
|
|
220
|
+
}
|
|
188
221
|
}
|
|
189
222
|
|
|
190
223
|
return getFlattenedText(parseMarkdownWithOptions(text, options));
|
|
@@ -221,7 +254,9 @@ export const getFlattenedText = (node: MarkdownNode): string => {
|
|
|
221
254
|
node.type === "math_block" ||
|
|
222
255
|
node.type === "html_block"
|
|
223
256
|
) {
|
|
224
|
-
|
|
257
|
+
const blockContent =
|
|
258
|
+
node.content ?? node.children?.map(getFlattenedText).join("") ?? "";
|
|
259
|
+
return blockContent.trim() + "\n\n";
|
|
225
260
|
}
|
|
226
261
|
|
|
227
262
|
if (node.type === "line_break") return "\n";
|
package/src/markdown-stream.tsx
CHANGED
|
@@ -56,7 +56,8 @@ export type MarkdownStreamProps = {
|
|
|
56
56
|
*/
|
|
57
57
|
session: MarkdownSession;
|
|
58
58
|
/**
|
|
59
|
-
* Throttle UI updates
|
|
59
|
+
* Throttle UI updates when updateStrategy is "interval".
|
|
60
|
+
* Ignored when updateStrategy is "raf".
|
|
60
61
|
* Defaults to 50ms, which keeps UI responsive while streaming.
|
|
61
62
|
*/
|
|
62
63
|
updateIntervalMs?: number;
|
package/src/markdown.tsx
CHANGED
|
@@ -998,12 +998,16 @@ const getBaseStyles = (theme: MarkdownTheme): BaseStyles => {
|
|
|
998
998
|
const createBaseStyles = (theme: MarkdownTheme) =>
|
|
999
999
|
StyleSheet.create({
|
|
1000
1000
|
container: {
|
|
1001
|
+
width: "100%",
|
|
1002
|
+
maxWidth: "100%",
|
|
1001
1003
|
flexShrink: 1,
|
|
1002
1004
|
},
|
|
1003
1005
|
virtualizedList: {
|
|
1004
1006
|
flex: 1,
|
|
1005
1007
|
},
|
|
1006
1008
|
document: {
|
|
1009
|
+
width: "100%",
|
|
1010
|
+
maxWidth: "100%",
|
|
1007
1011
|
flexShrink: 1,
|
|
1008
1012
|
},
|
|
1009
1013
|
errorText: {
|