react-native-nitro-markdown 0.5.5 → 0.5.6
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 +9 -4
- package/lib/commonjs/headless.js +38 -15
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/module/headless.js +38 -15
- package/lib/module/headless.js.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/headless.ts +44 -9
package/README.md
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
# react-native-nitro-markdown
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/react-native-nitro-markdown)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
[](https://reactnative.dev/)
|
|
6
|
+
[](https://github.com/mrousavy/nitro)
|
|
7
|
+
|
|
1
8
|
<p align="center">
|
|
2
|
-
<img src="
|
|
9
|
+
<img src="https://raw.githubusercontent.com/JoaoPauloCMarra/react-native-nitro-markdown/main/readme/demo.gif" alt="react-native-nitro-markdown demo" width="400" />
|
|
3
10
|
</p>
|
|
4
11
|
|
|
5
|
-
# react-native-nitro-markdown
|
|
6
|
-
|
|
7
12
|
Native Markdown parsing and rendering for React Native, powered by [md4c](https://github.com/mity/md4c) (C++) through [Nitro Modules](https://github.com/mrousavy/nitro) (JSI).
|
|
8
13
|
|
|
9
14
|
## Features
|
|
@@ -24,7 +29,7 @@ Native Markdown parsing and rendering for React Native, powered by [md4c](https:
|
|
|
24
29
|
| Dependency | Version |
|
|
25
30
|
|---|---|
|
|
26
31
|
| React Native | `>=0.75.0` |
|
|
27
|
-
| react-native-nitro-modules | `>=0.35.
|
|
32
|
+
| react-native-nitro-modules | `>=0.35.5` |
|
|
28
33
|
| react-native-mathjax-svg *(optional)* | `>=0.9.0` |
|
|
29
34
|
| react-native-svg *(optional, for math)* | `>=13.0.0` |
|
|
30
35
|
|
package/lib/commonjs/headless.js
CHANGED
|
@@ -29,6 +29,16 @@ var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
|
29
29
|
* Each node has a type and optional properties depending on the node type.
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
+
const createEmptyDocument = () => ({
|
|
33
|
+
type: "document",
|
|
34
|
+
children: []
|
|
35
|
+
});
|
|
36
|
+
function reportNativeParserFailure(methodName, error) {
|
|
37
|
+
if (__DEV__) {
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
39
|
+
console.error(`[NitroMarkdown] ${methodName}: native parser failed.`, error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
32
42
|
let MarkdownParserModule = exports.MarkdownParserModule = null;
|
|
33
43
|
try {
|
|
34
44
|
exports.MarkdownParserModule = MarkdownParserModule = _reactNativeNitroModules.NitroModules.createHybridObject("MarkdownParser");
|
|
@@ -56,17 +66,19 @@ function parseMarkdown(text, options) {
|
|
|
56
66
|
return parseMarkdownWithOptions(text, options);
|
|
57
67
|
}
|
|
58
68
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.parse === "function") {
|
|
59
|
-
|
|
60
|
-
|
|
69
|
+
try {
|
|
70
|
+
const jsonStr = MarkdownParserModule.parse(text);
|
|
71
|
+
return JSON.parse(jsonStr);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
reportNativeParserFailure("parseMarkdown", error);
|
|
74
|
+
return createEmptyDocument();
|
|
75
|
+
}
|
|
61
76
|
}
|
|
62
77
|
if (__DEV__) {
|
|
63
78
|
// eslint-disable-next-line no-console
|
|
64
79
|
console.error("[NitroMarkdown] parseMarkdown: native parser unavailable — check installation.");
|
|
65
80
|
}
|
|
66
|
-
return
|
|
67
|
-
type: "document",
|
|
68
|
-
children: []
|
|
69
|
-
};
|
|
81
|
+
return createEmptyDocument();
|
|
70
82
|
}
|
|
71
83
|
|
|
72
84
|
/**
|
|
@@ -77,17 +89,19 @@ function parseMarkdown(text, options) {
|
|
|
77
89
|
*/
|
|
78
90
|
function parseMarkdownWithOptions(text, options) {
|
|
79
91
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.parseWithOptions === "function") {
|
|
80
|
-
|
|
81
|
-
|
|
92
|
+
try {
|
|
93
|
+
const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
|
|
94
|
+
return JSON.parse(jsonStr);
|
|
95
|
+
} catch (error) {
|
|
96
|
+
reportNativeParserFailure("parseMarkdownWithOptions", error);
|
|
97
|
+
return createEmptyDocument();
|
|
98
|
+
}
|
|
82
99
|
}
|
|
83
100
|
if (__DEV__) {
|
|
84
101
|
// eslint-disable-next-line no-console
|
|
85
102
|
console.error("[NitroMarkdown] parseMarkdownWithOptions: native parser unavailable — check installation.");
|
|
86
103
|
}
|
|
87
|
-
return
|
|
88
|
-
type: "document",
|
|
89
|
-
children: []
|
|
90
|
-
};
|
|
104
|
+
return createEmptyDocument();
|
|
91
105
|
}
|
|
92
106
|
|
|
93
107
|
/**
|
|
@@ -96,7 +110,11 @@ function parseMarkdownWithOptions(text, options) {
|
|
|
96
110
|
*/
|
|
97
111
|
function extractPlainText(text) {
|
|
98
112
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainText === "function") {
|
|
99
|
-
|
|
113
|
+
try {
|
|
114
|
+
return MarkdownParserModule.extractPlainText(text);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
reportNativeParserFailure("extractPlainText", error);
|
|
117
|
+
}
|
|
100
118
|
}
|
|
101
119
|
return getFlattenedText(parseMarkdown(text));
|
|
102
120
|
}
|
|
@@ -106,7 +124,11 @@ function extractPlainText(text) {
|
|
|
106
124
|
*/
|
|
107
125
|
function extractPlainTextWithOptions(text, options) {
|
|
108
126
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainTextWithOptions === "function") {
|
|
109
|
-
|
|
127
|
+
try {
|
|
128
|
+
return MarkdownParserModule.extractPlainTextWithOptions(text, options);
|
|
129
|
+
} catch (error) {
|
|
130
|
+
reportNativeParserFailure("extractPlainTextWithOptions", error);
|
|
131
|
+
}
|
|
110
132
|
}
|
|
111
133
|
return getFlattenedText(parseMarkdownWithOptions(text, options));
|
|
112
134
|
}
|
|
@@ -130,7 +152,8 @@ const getFlattenedText = node => {
|
|
|
130
152
|
return node.content ?? "";
|
|
131
153
|
}
|
|
132
154
|
if (node.type === "code_block" || node.type === "math_block" || node.type === "html_block") {
|
|
133
|
-
|
|
155
|
+
const blockContent = node.content ?? node.children?.map(getFlattenedText).join("") ?? "";
|
|
156
|
+
return blockContent.trim() + "\n\n";
|
|
134
157
|
}
|
|
135
158
|
if (node.type === "line_break") return "\n";
|
|
136
159
|
if (node.type === "soft_break") return " ";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","createEmptyDocument","type","children","reportNativeParserFailure","methodName","error","__DEV__","console","MarkdownParserModule","exports","NitroModules","createHybridObject","e","parseMarkdown","text","options","parseMarkdownWithOptions","parse","jsonStr","JSON","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","blockContent","trim","alt","title","childrenText","stripSourceOffsets","beg","_beg","end","_end","rest"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/headless.js
CHANGED
|
@@ -19,6 +19,16 @@ import { NitroModules } from "react-native-nitro-modules";
|
|
|
19
19
|
* Each node has a type and optional properties depending on the node type.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
const createEmptyDocument = () => ({
|
|
23
|
+
type: "document",
|
|
24
|
+
children: []
|
|
25
|
+
});
|
|
26
|
+
function reportNativeParserFailure(methodName, error) {
|
|
27
|
+
if (__DEV__) {
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.error(`[NitroMarkdown] ${methodName}: native parser failed.`, error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
22
32
|
let MarkdownParserModule = null;
|
|
23
33
|
try {
|
|
24
34
|
MarkdownParserModule = NitroModules.createHybridObject("MarkdownParser");
|
|
@@ -48,17 +58,19 @@ export function parseMarkdown(text, options) {
|
|
|
48
58
|
return parseMarkdownWithOptions(text, options);
|
|
49
59
|
}
|
|
50
60
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.parse === "function") {
|
|
51
|
-
|
|
52
|
-
|
|
61
|
+
try {
|
|
62
|
+
const jsonStr = MarkdownParserModule.parse(text);
|
|
63
|
+
return JSON.parse(jsonStr);
|
|
64
|
+
} catch (error) {
|
|
65
|
+
reportNativeParserFailure("parseMarkdown", error);
|
|
66
|
+
return createEmptyDocument();
|
|
67
|
+
}
|
|
53
68
|
}
|
|
54
69
|
if (__DEV__) {
|
|
55
70
|
// eslint-disable-next-line no-console
|
|
56
71
|
console.error("[NitroMarkdown] parseMarkdown: native parser unavailable — check installation.");
|
|
57
72
|
}
|
|
58
|
-
return
|
|
59
|
-
type: "document",
|
|
60
|
-
children: []
|
|
61
|
-
};
|
|
73
|
+
return createEmptyDocument();
|
|
62
74
|
}
|
|
63
75
|
|
|
64
76
|
/**
|
|
@@ -69,17 +81,19 @@ export function parseMarkdown(text, options) {
|
|
|
69
81
|
*/
|
|
70
82
|
export function parseMarkdownWithOptions(text, options) {
|
|
71
83
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.parseWithOptions === "function") {
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
try {
|
|
85
|
+
const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
|
|
86
|
+
return JSON.parse(jsonStr);
|
|
87
|
+
} catch (error) {
|
|
88
|
+
reportNativeParserFailure("parseMarkdownWithOptions", error);
|
|
89
|
+
return createEmptyDocument();
|
|
90
|
+
}
|
|
74
91
|
}
|
|
75
92
|
if (__DEV__) {
|
|
76
93
|
// eslint-disable-next-line no-console
|
|
77
94
|
console.error("[NitroMarkdown] parseMarkdownWithOptions: native parser unavailable — check installation.");
|
|
78
95
|
}
|
|
79
|
-
return
|
|
80
|
-
type: "document",
|
|
81
|
-
children: []
|
|
82
|
-
};
|
|
96
|
+
return createEmptyDocument();
|
|
83
97
|
}
|
|
84
98
|
|
|
85
99
|
/**
|
|
@@ -88,7 +102,11 @@ export function parseMarkdownWithOptions(text, options) {
|
|
|
88
102
|
*/
|
|
89
103
|
export function extractPlainText(text) {
|
|
90
104
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainText === "function") {
|
|
91
|
-
|
|
105
|
+
try {
|
|
106
|
+
return MarkdownParserModule.extractPlainText(text);
|
|
107
|
+
} catch (error) {
|
|
108
|
+
reportNativeParserFailure("extractPlainText", error);
|
|
109
|
+
}
|
|
92
110
|
}
|
|
93
111
|
return getFlattenedText(parseMarkdown(text));
|
|
94
112
|
}
|
|
@@ -98,7 +116,11 @@ export function extractPlainText(text) {
|
|
|
98
116
|
*/
|
|
99
117
|
export function extractPlainTextWithOptions(text, options) {
|
|
100
118
|
if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainTextWithOptions === "function") {
|
|
101
|
-
|
|
119
|
+
try {
|
|
120
|
+
return MarkdownParserModule.extractPlainTextWithOptions(text, options);
|
|
121
|
+
} catch (error) {
|
|
122
|
+
reportNativeParserFailure("extractPlainTextWithOptions", error);
|
|
123
|
+
}
|
|
102
124
|
}
|
|
103
125
|
return getFlattenedText(parseMarkdownWithOptions(text, options));
|
|
104
126
|
}
|
|
@@ -121,7 +143,8 @@ export const getFlattenedText = node => {
|
|
|
121
143
|
return node.content ?? "";
|
|
122
144
|
}
|
|
123
145
|
if (node.type === "code_block" || node.type === "math_block" || node.type === "html_block") {
|
|
124
|
-
|
|
146
|
+
const blockContent = node.content ?? node.children?.map(getFlattenedText).join("") ?? "";
|
|
147
|
+
return blockContent.trim() + "\n\n";
|
|
125
148
|
}
|
|
126
149
|
if (node.type === "line_break") return "\n";
|
|
127
150
|
if (node.type === "soft_break") return " ";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","
|
|
1
|
+
{"version":3,"names":["NitroModules","createEmptyDocument","type","children","reportNativeParserFailure","methodName","error","__DEV__","console","MarkdownParserModule","createHybridObject","e","parseMarkdown","text","options","parseMarkdownWithOptions","parse","jsonStr","JSON","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","blockContent","trim","alt","title","childrenText","stripSourceOffsets","beg","_beg","end","_end","rest"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","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"}
|
|
@@ -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"}
|
package/package.json
CHANGED
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";
|