react-native-marked 6.0.3 → 6.0.5
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 +2 -1
- package/dist/commonjs/components/MDImage.js +19 -25
- package/dist/commonjs/components/MDImage.js.map +1 -1
- package/dist/commonjs/components/MDSvg.js +25 -39
- package/dist/commonjs/components/MDSvg.js.map +1 -1
- package/dist/commonjs/hooks/useMarkdown.js +7 -16
- package/dist/commonjs/hooks/useMarkdown.js.map +1 -1
- package/dist/commonjs/index.js +1 -7
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/Markdown.js +20 -32
- package/dist/commonjs/lib/Markdown.js.map +1 -1
- package/dist/commonjs/lib/Parser.js +39 -85
- package/dist/commonjs/lib/Parser.js.map +1 -1
- package/dist/commonjs/lib/Renderer.js +71 -115
- package/dist/commonjs/lib/Renderer.js.map +1 -1
- package/dist/commonjs/lib/types.js.map +1 -1
- package/dist/commonjs/package.json +1 -0
- package/dist/commonjs/theme/colors.js.map +1 -1
- package/dist/commonjs/theme/spacing.js.map +1 -1
- package/dist/commonjs/theme/styles.js +28 -33
- package/dist/commonjs/theme/styles.js.map +1 -1
- package/dist/commonjs/theme/types.js.map +1 -1
- package/dist/commonjs/utils/handlers.js +0 -3
- package/dist/commonjs/utils/handlers.js.map +1 -1
- package/dist/commonjs/utils/svg.js +3 -8
- package/dist/commonjs/utils/svg.js.map +1 -1
- package/dist/commonjs/utils/table.js +0 -8
- package/dist/commonjs/utils/table.js.map +1 -1
- package/dist/commonjs/utils/url.js +9 -12
- package/dist/commonjs/utils/url.js.map +1 -1
- package/dist/module/components/MDImage.js +19 -18
- package/dist/module/components/MDImage.js.map +1 -1
- package/dist/module/components/MDSvg.js +25 -30
- package/dist/module/components/MDSvg.js.map +1 -1
- package/dist/module/hooks/useMarkdown.js +8 -8
- package/dist/module/hooks/useMarkdown.js.map +1 -1
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/Markdown.js +18 -21
- package/dist/module/lib/Markdown.js.map +1 -1
- package/dist/module/lib/Parser.js +41 -83
- package/dist/module/lib/Parser.js.map +1 -1
- package/dist/module/lib/Renderer.js +72 -100
- package/dist/module/lib/Renderer.js.map +1 -1
- package/dist/module/lib/types.js +2 -0
- package/dist/module/lib/types.js.map +1 -1
- package/dist/module/package.json +1 -0
- package/dist/module/theme/colors.js +2 -0
- package/dist/module/theme/colors.js.map +1 -1
- package/dist/module/theme/spacing.js +2 -0
- package/dist/module/theme/spacing.js.map +1 -1
- package/dist/module/theme/styles.js +29 -28
- package/dist/module/theme/styles.js.map +1 -1
- package/dist/module/theme/types.js +2 -0
- package/dist/module/theme/types.js.map +1 -1
- package/dist/module/utils/handlers.js +2 -0
- package/dist/module/utils/handlers.js.map +1 -1
- package/dist/module/utils/svg.js +5 -5
- package/dist/module/utils/svg.js.map +1 -1
- package/dist/module/utils/table.js +2 -4
- package/dist/module/utils/table.js.map +1 -1
- package/dist/module/utils/url.js +11 -10
- package/dist/module/utils/url.js.map +1 -1
- package/dist/typescript/hooks/useMarkdown.d.ts +2 -2
- package/dist/typescript/hooks/useMarkdown.d.ts.map +1 -1
- package/dist/typescript/lib/Markdown.d.ts.map +1 -1
- package/dist/typescript/lib/Parser.d.ts +1 -1
- package/dist/typescript/lib/Parser.d.ts.map +1 -1
- package/dist/typescript/lib/Renderer.d.ts.map +1 -1
- package/dist/typescript/lib/types.d.ts +1 -1
- package/dist/typescript/lib/types.d.ts.map +1 -1
- package/package.json +178 -175
- package/src/hooks/useMarkdown.ts +2 -2
- package/src/lib/Parser.tsx +3 -2
- package/src/lib/Renderer.tsx +10 -14
- package/src/lib/types.ts +1 -1
- package/src/utils/svg.ts +2 -2
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { decode } from "html-entities";
|
|
1
4
|
import { getValidURL } from "./../utils/url";
|
|
2
5
|
import { getTableColAlignmentStyle } from "./../utils/table";
|
|
3
|
-
|
|
4
6
|
class Parser {
|
|
5
7
|
constructor(options) {
|
|
6
|
-
this.styles = {
|
|
8
|
+
this.styles = {
|
|
9
|
+
...options.styles
|
|
7
10
|
};
|
|
8
11
|
this.baseUrl = options.baseUrl ?? "";
|
|
9
12
|
this.renderer = options.renderer;
|
|
@@ -16,18 +19,15 @@ class Parser {
|
|
|
16
19
|
6: this.styles.h6
|
|
17
20
|
};
|
|
18
21
|
}
|
|
19
|
-
|
|
20
22
|
parse(tokens) {
|
|
21
23
|
return this._parse(tokens);
|
|
22
24
|
}
|
|
23
|
-
|
|
24
25
|
_parse(tokens, styles) {
|
|
25
26
|
const elements = tokens.map(token => {
|
|
26
27
|
return this._parseToken(token, styles);
|
|
27
28
|
});
|
|
28
29
|
return elements.filter(element => element !== null);
|
|
29
30
|
}
|
|
30
|
-
|
|
31
31
|
_parseToken(token, styles) {
|
|
32
32
|
switch (token.type) {
|
|
33
33
|
case "paragraph":
|
|
@@ -35,200 +35,169 @@ class Parser {
|
|
|
35
35
|
const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
|
|
36
36
|
return this.renderer.paragraph(children, this.styles.paragraph);
|
|
37
37
|
}
|
|
38
|
-
|
|
39
38
|
case "blockquote":
|
|
40
39
|
{
|
|
41
40
|
const children = this.parse(token.tokens);
|
|
42
41
|
return this.renderer.blockquote(children, this.styles.blockquote);
|
|
43
42
|
}
|
|
44
|
-
|
|
45
43
|
case "heading":
|
|
46
44
|
{
|
|
47
45
|
const styles = this.headingStylesMap[token.depth];
|
|
48
|
-
|
|
49
46
|
if (this.hasDuplicateTextChildToken(token)) {
|
|
50
47
|
return this.renderer.heading(token.text, styles, token.depth);
|
|
51
48
|
}
|
|
52
|
-
|
|
53
49
|
const children = this._parse(token.tokens, styles);
|
|
54
|
-
|
|
55
50
|
return this.renderer.heading(children, styles, token.depth);
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
case "code":
|
|
59
53
|
{
|
|
60
54
|
return this.renderer.code(token.text, token.lang, this.styles.code, this.styles.em);
|
|
61
55
|
}
|
|
62
|
-
|
|
63
56
|
case "hr":
|
|
64
57
|
{
|
|
65
58
|
return this.renderer.hr(this.styles.hr);
|
|
66
59
|
}
|
|
67
|
-
|
|
68
60
|
case "list":
|
|
69
61
|
{
|
|
70
|
-
let startIndex = parseInt(token.start.toString());
|
|
71
|
-
|
|
62
|
+
let startIndex = Number.parseInt(token.start.toString());
|
|
72
63
|
if (Number.isNaN(startIndex)) {
|
|
73
64
|
startIndex = 1;
|
|
74
65
|
}
|
|
75
|
-
|
|
76
66
|
const li = token.items.map(item => {
|
|
77
67
|
const children = item.tokens.flatMap(cItem => {
|
|
78
68
|
if (cItem.type === "text") {
|
|
79
69
|
/* getViewNode since tokens could contain a block like elements (i.e. img) */
|
|
80
70
|
const childTokens = cItem.tokens || [];
|
|
81
|
-
const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
|
|
82
|
-
|
|
71
|
+
const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
|
|
72
|
+
// return this.renderer.listItem(listChildren, this.styles.li);
|
|
83
73
|
return listChildren;
|
|
84
74
|
}
|
|
85
|
-
/* Parse the nested token */
|
|
86
|
-
|
|
87
75
|
|
|
76
|
+
/* Parse the nested token */
|
|
88
77
|
return this._parseToken(cItem);
|
|
89
78
|
});
|
|
90
79
|
return this.renderer.listItem(children, this.styles.li);
|
|
91
80
|
});
|
|
92
81
|
return this.renderer.list(token.ordered, li, this.styles.list, this.styles.li, startIndex);
|
|
93
82
|
}
|
|
94
|
-
|
|
95
83
|
case "escape":
|
|
96
84
|
{
|
|
97
|
-
return this.renderer.escape(token.text, {
|
|
85
|
+
return this.renderer.escape(token.text, {
|
|
86
|
+
...this.styles.text,
|
|
98
87
|
...styles
|
|
99
88
|
});
|
|
100
89
|
}
|
|
101
|
-
|
|
102
90
|
case "link":
|
|
103
91
|
{
|
|
104
|
-
var _this$styles$link, _this$styles$link2;
|
|
105
|
-
|
|
106
92
|
// Don't render anchors without text and children
|
|
107
93
|
if (token.text.trim.length < 1 && token.tokens.length < 1) {
|
|
108
94
|
return null;
|
|
109
|
-
}
|
|
110
|
-
// in paragraph token, so will be handled via `getNormalizedSiblingNodesForBlockAndInlineTokens`
|
|
111
|
-
|
|
95
|
+
}
|
|
112
96
|
|
|
113
|
-
|
|
97
|
+
// Note: Linking Images (https://www.markdownguide.org/basic-syntax/#linking-images) are wrapped
|
|
98
|
+
// in paragraph token, so will be handled via `getNormalizedSiblingNodesForBlockAndInlineTokens`
|
|
99
|
+
const linkStyle = {
|
|
100
|
+
...this.styles.link,
|
|
114
101
|
...styles,
|
|
115
102
|
// To override color and fontStyle properties
|
|
116
|
-
color:
|
|
117
|
-
fontStyle:
|
|
103
|
+
color: this.styles.link?.color,
|
|
104
|
+
fontStyle: this.styles.link?.fontStyle
|
|
118
105
|
};
|
|
119
106
|
const href = getValidURL(this.baseUrl, token.href);
|
|
120
|
-
|
|
121
107
|
if (this.hasDuplicateTextChildToken(token)) {
|
|
122
108
|
return this.renderer.link(token.text, href, linkStyle);
|
|
123
109
|
}
|
|
124
|
-
|
|
125
110
|
const children = this._parse(token.tokens, linkStyle);
|
|
126
|
-
|
|
127
111
|
return this.renderer.link(children, href, linkStyle);
|
|
128
112
|
}
|
|
129
|
-
|
|
130
113
|
case "image":
|
|
131
114
|
{
|
|
132
115
|
return this.renderer.image(token.href, token.text || token.title, this.styles.image);
|
|
133
116
|
}
|
|
134
|
-
|
|
135
117
|
case "strong":
|
|
136
118
|
{
|
|
137
|
-
const boldStyle = {
|
|
119
|
+
const boldStyle = {
|
|
120
|
+
...this.styles.strong,
|
|
138
121
|
...styles
|
|
139
122
|
};
|
|
140
|
-
|
|
141
123
|
if (this.hasDuplicateTextChildToken(token)) {
|
|
142
124
|
return this.renderer.strong(token.text, boldStyle);
|
|
143
125
|
}
|
|
144
|
-
|
|
145
126
|
const children = this._parse(token.tokens, boldStyle);
|
|
146
|
-
|
|
147
127
|
return this.renderer.strong(children, boldStyle);
|
|
148
128
|
}
|
|
149
|
-
|
|
150
129
|
case "em":
|
|
151
130
|
{
|
|
152
|
-
const italicStyle = {
|
|
131
|
+
const italicStyle = {
|
|
132
|
+
...this.styles.em,
|
|
153
133
|
...styles
|
|
154
134
|
};
|
|
155
|
-
|
|
156
135
|
if (this.hasDuplicateTextChildToken(token)) {
|
|
157
136
|
return this.renderer.em(token.text, italicStyle);
|
|
158
137
|
}
|
|
159
|
-
|
|
160
138
|
const children = this._parse(token.tokens, italicStyle);
|
|
161
|
-
|
|
162
139
|
return this.renderer.em(children, italicStyle);
|
|
163
140
|
}
|
|
164
|
-
|
|
165
141
|
case "codespan":
|
|
166
142
|
{
|
|
167
|
-
return this.renderer.codespan(token.text, {
|
|
143
|
+
return this.renderer.codespan(decode(token.text), {
|
|
144
|
+
...this.styles.codespan,
|
|
168
145
|
...styles
|
|
169
146
|
});
|
|
170
147
|
}
|
|
171
|
-
|
|
172
148
|
case "br":
|
|
173
149
|
{
|
|
174
150
|
return this.renderer.br();
|
|
175
151
|
}
|
|
176
|
-
|
|
177
152
|
case "del":
|
|
178
153
|
{
|
|
179
|
-
const strikethroughStyle = {
|
|
154
|
+
const strikethroughStyle = {
|
|
155
|
+
...this.styles.strikethrough,
|
|
180
156
|
...styles
|
|
181
157
|
};
|
|
182
|
-
|
|
183
158
|
if (this.hasDuplicateTextChildToken(token)) {
|
|
184
159
|
return this.renderer.del(token.text, strikethroughStyle);
|
|
185
160
|
}
|
|
186
|
-
|
|
187
161
|
const children = this._parse(token.tokens, strikethroughStyle);
|
|
188
|
-
|
|
189
162
|
return this.renderer.del(children, strikethroughStyle);
|
|
190
163
|
}
|
|
191
|
-
|
|
192
164
|
case "text":
|
|
193
|
-
return this.renderer.text(token.raw, {
|
|
165
|
+
return this.renderer.text(token.raw, {
|
|
166
|
+
...this.styles.text,
|
|
194
167
|
...styles
|
|
195
168
|
});
|
|
196
|
-
|
|
197
169
|
case "html":
|
|
198
170
|
{
|
|
199
171
|
console.warn("react-native-marked: rendering html from markdown is not supported");
|
|
200
|
-
return this.renderer.html(token.raw, {
|
|
172
|
+
return this.renderer.html(token.raw, {
|
|
173
|
+
...this.styles.text,
|
|
201
174
|
...styles
|
|
202
175
|
});
|
|
203
176
|
}
|
|
204
|
-
|
|
205
177
|
case "table":
|
|
206
178
|
{
|
|
207
|
-
const header = token.header.map((row, i) => this._parse(row.tokens, {
|
|
179
|
+
const header = token.header.map((row, i) => this._parse(row.tokens, {
|
|
180
|
+
...getTableColAlignmentStyle(token.align[i])
|
|
208
181
|
}));
|
|
209
|
-
const rows = token.rows.map(cols => cols.map((col, i) => this._parse(col.tokens, {
|
|
182
|
+
const rows = token.rows.map(cols => cols.map((col, i) => this._parse(col.tokens, {
|
|
183
|
+
...getTableColAlignmentStyle(token.align[i])
|
|
210
184
|
})));
|
|
211
185
|
return this.renderer.table(header, rows, this.styles.table, this.styles.tableRow, this.styles.tableCell);
|
|
212
186
|
}
|
|
213
|
-
|
|
214
187
|
case "custom":
|
|
215
188
|
{
|
|
216
189
|
const children = this._parse(token.tokens ?? []);
|
|
217
|
-
|
|
218
190
|
return this.renderer.custom(token.identifier, token.raw, children, token.args);
|
|
219
191
|
}
|
|
220
|
-
|
|
221
192
|
default:
|
|
222
193
|
{
|
|
223
194
|
return null;
|
|
224
195
|
}
|
|
225
196
|
}
|
|
226
197
|
}
|
|
227
|
-
|
|
228
198
|
getNormalizedSiblingNodesForBlockAndInlineTokens(tokens, textStyle) {
|
|
229
199
|
let tokenRenderQueue = [];
|
|
230
200
|
const siblingNodes = [];
|
|
231
|
-
|
|
232
201
|
for (const t of tokens) {
|
|
233
202
|
/**
|
|
234
203
|
* To avoid inlining images
|
|
@@ -238,12 +207,11 @@ class Parser {
|
|
|
238
207
|
if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
|
|
239
208
|
// Render existing inline tokens in the queue
|
|
240
209
|
const parsed = this._parse(tokenRenderQueue);
|
|
241
|
-
|
|
242
210
|
if (parsed.length > 0) {
|
|
243
211
|
siblingNodes.push(this.renderer.text(parsed, textStyle));
|
|
244
|
-
}
|
|
245
|
-
|
|
212
|
+
}
|
|
246
213
|
|
|
214
|
+
// Render the current block token
|
|
247
215
|
if (t.type === "image") {
|
|
248
216
|
siblingNodes.push(this._parseToken(t));
|
|
249
217
|
} else if (t.type === "link") {
|
|
@@ -251,40 +219,30 @@ class Parser {
|
|
|
251
219
|
const href = getValidURL(this.baseUrl, t.href);
|
|
252
220
|
siblingNodes.push(this.renderer.linkImage(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
|
|
253
221
|
}
|
|
254
|
-
|
|
255
222
|
tokenRenderQueue = [];
|
|
256
223
|
continue;
|
|
257
224
|
}
|
|
258
|
-
|
|
259
225
|
tokenRenderQueue = [...tokenRenderQueue, t];
|
|
260
226
|
}
|
|
261
|
-
/* Remaining temp tokens if any */
|
|
262
|
-
|
|
263
227
|
|
|
228
|
+
/* Remaining temp tokens if any */
|
|
264
229
|
if (tokenRenderQueue.length > 0) {
|
|
265
230
|
siblingNodes.push(this.renderer.text(this.parse(tokenRenderQueue), {}));
|
|
266
231
|
}
|
|
267
|
-
|
|
268
232
|
return siblingNodes;
|
|
269
|
-
}
|
|
270
|
-
// ref: https://github.com/gmsgowtham/react-native-marked/issues/522
|
|
271
|
-
|
|
233
|
+
}
|
|
272
234
|
|
|
235
|
+
// To avoid duplicate text node nesting when there are no child tokens with text emphasis (i.e., italic)
|
|
236
|
+
// ref: https://github.com/gmsgowtham/react-native-marked/issues/522
|
|
273
237
|
hasDuplicateTextChildToken(token) {
|
|
274
|
-
var _token$tokens$;
|
|
275
|
-
|
|
276
238
|
if (!("tokens" in token)) {
|
|
277
239
|
return false;
|
|
278
240
|
}
|
|
279
|
-
|
|
280
|
-
if (token.tokens && token.tokens.length === 1 && ((_token$tokens$ = token.tokens[0]) === null || _token$tokens$ === void 0 ? void 0 : _token$tokens$.type) === "text") {
|
|
241
|
+
if (token.tokens && token.tokens.length === 1 && token.tokens[0]?.type === "text") {
|
|
281
242
|
return true;
|
|
282
243
|
}
|
|
283
|
-
|
|
284
244
|
return false;
|
|
285
245
|
}
|
|
286
|
-
|
|
287
246
|
}
|
|
288
|
-
|
|
289
247
|
export default Parser;
|
|
290
248
|
//# sourceMappingURL=Parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getValidURL","getTableColAlignmentStyle","Parser","constructor","options","styles","baseUrl","renderer","headingStylesMap","h1","h2","h3","h4","h5","h6","parse","tokens","_parse","elements","map","token","_parseToken","filter","element","type","children","getNormalizedSiblingNodesForBlockAndInlineTokens","text","paragraph","blockquote","depth","hasDuplicateTextChildToken","heading","code","lang","em","hr","startIndex","parseInt","start","toString","
|
|
1
|
+
{"version":3,"names":["decode","getValidURL","getTableColAlignmentStyle","Parser","constructor","options","styles","baseUrl","renderer","headingStylesMap","h1","h2","h3","h4","h5","h6","parse","tokens","_parse","elements","map","token","_parseToken","filter","element","type","children","getNormalizedSiblingNodesForBlockAndInlineTokens","text","paragraph","blockquote","depth","hasDuplicateTextChildToken","heading","code","lang","em","hr","startIndex","Number","parseInt","start","toString","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","color","fontStyle","href","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","header","row","i","align","rows","cols","col","table","tableRow","tableCell","custom","identifier","args","textStyle","tokenRenderQueue","siblingNodes","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"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","ignoreList":[]}
|