react-native-marked 4.1.1 → 5.0.0-rc.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 +93 -62
- package/dist/commonjs/hooks/useMarkdown.js +2 -1
- package/dist/commonjs/hooks/useMarkdown.js.map +1 -1
- package/dist/commonjs/index.js +11 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/Markdown.js +4 -2
- package/dist/commonjs/lib/Markdown.js.map +1 -1
- package/dist/commonjs/lib/Parser.js +8 -7
- package/dist/commonjs/lib/Parser.js.map +1 -1
- package/dist/commonjs/lib/Renderer.js +5 -4
- package/dist/commonjs/lib/Renderer.js.map +1 -1
- package/dist/module/hooks/useMarkdown.js +2 -1
- package/dist/module/hooks/useMarkdown.js.map +1 -1
- package/dist/module/index.js +3 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/Markdown.js +4 -2
- package/dist/module/lib/Markdown.js.map +1 -1
- package/dist/module/lib/Parser.js +8 -7
- package/dist/module/lib/Parser.js.map +1 -1
- package/dist/module/lib/Renderer.js +5 -4
- package/dist/module/lib/Renderer.js.map +1 -1
- package/dist/typescript/hooks/useMarkdown.d.ts +3 -1
- package/dist/typescript/hooks/useMarkdown.d.ts.map +1 -1
- package/dist/typescript/index.d.ts +5 -3
- package/dist/typescript/index.d.ts.map +1 -1
- package/dist/typescript/lib/Markdown.d.ts +1 -1
- package/dist/typescript/lib/Markdown.d.ts.map +1 -1
- package/dist/typescript/lib/Parser.d.ts +2 -3
- package/dist/typescript/lib/Parser.d.ts.map +1 -1
- package/dist/typescript/lib/Renderer.d.ts +1 -0
- package/dist/typescript/lib/Renderer.d.ts.map +1 -1
- package/dist/typescript/lib/types.d.ts +12 -0
- package/dist/typescript/lib/types.d.ts.map +1 -1
- package/package.json +7 -8
- package/src/hooks/useMarkdown.ts +8 -3
- package/src/index.ts +7 -1
- package/src/lib/Markdown.tsx +2 -0
- package/src/lib/Parser.tsx +17 -16
- package/src/lib/Renderer.tsx +16 -3
- package/src/lib/types.ts +42 -0
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ const ExampleComponent = () => {
|
|
|
37
37
|
export default ExampleComponent;
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
#### [Props](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#
|
|
40
|
+
#### [Props](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L17)
|
|
41
41
|
|
|
42
42
|
| Prop | Description | Type | Optional? |
|
|
43
43
|
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- |
|
|
@@ -76,13 +76,15 @@ const CustomComponent = () => {
|
|
|
76
76
|
|
|
77
77
|
#### Options
|
|
78
78
|
|
|
79
|
-
| Option | Description | Type
|
|
80
|
-
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
81
|
-
| colorScheme | Device color scheme ("dark" or "light") | ColorSchemeName
|
|
82
|
-
| styles | Styles for parsed components | [MarkedStyles](https://github.com/gmsgowtham/react-native-marked/blob/main/src/theme/types.ts#L5)
|
|
83
|
-
| theme | Props for customizing colors and spacing for all components,and it will get overridden with custom component style applied via 'styles' prop | [UserTheme](https://github.com/gmsgowtham/react-native-marked/blob/main/src/theme/types.ts#L28)
|
|
84
|
-
| baseUrl | A prefix url for any relative link | string
|
|
85
|
-
| renderer | Custom component Renderer | [RendererInterface](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#
|
|
79
|
+
| Option | Description | Type | Optional? |
|
|
80
|
+
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------- |
|
|
81
|
+
| colorScheme | Device color scheme ("dark" or "light") | ColorSchemeName | false |
|
|
82
|
+
| styles | Styles for parsed components | [MarkedStyles](https://github.com/gmsgowtham/react-native-marked/blob/main/src/theme/types.ts#L5) | true |
|
|
83
|
+
| theme | Props for customizing colors and spacing for all components,and it will get overridden with custom component style applied via 'styles' prop | [UserTheme](https://github.com/gmsgowtham/react-native-marked/blob/main/src/theme/types.ts#L28) | true |
|
|
84
|
+
| baseUrl | A prefix url for any relative link | string | true |
|
|
85
|
+
| renderer | Custom component Renderer | [RendererInterface](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L29) | true |
|
|
86
|
+
| tokenizer | Generate custom tokens | [MarkedTokenizer<CustomToken>](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L24) | true |
|
|
87
|
+
|
|
86
88
|
|
|
87
89
|
## Examples
|
|
88
90
|
|
|
@@ -108,7 +110,12 @@ Ref: [CommonMark](https://commonmark.org/help/)
|
|
|
108
110
|
|
|
109
111
|
> HTML will be treated as plain text. Please refer [issue#290](https://github.com/gmsgowtham/react-native-marked/issues/290) for a potential solution
|
|
110
112
|
|
|
111
|
-
##
|
|
113
|
+
## Advanced
|
|
114
|
+
### Using custom components
|
|
115
|
+
|
|
116
|
+
> Custom components can be used to override elements, i.e. Code Highlighting, Fast Image integration
|
|
117
|
+
|
|
118
|
+
#### Example
|
|
112
119
|
|
|
113
120
|
```tsx
|
|
114
121
|
import React, { ReactNode, Fragment } from "react";
|
|
@@ -173,61 +180,85 @@ const ExampleComponentWithHook = () => {
|
|
|
173
180
|
export default ExampleComponent;
|
|
174
181
|
```
|
|
175
182
|
|
|
176
|
-
> Please refer to
|
|
177
|
-
|
|
178
|
-
```ts
|
|
179
|
-
export interface RendererInterface {
|
|
180
|
-
paragraph(children: ReactNode[], styles?: ViewStyle): ReactNode;
|
|
181
|
-
blockquote(children: ReactNode[], styles?: ViewStyle): ReactNode;
|
|
182
|
-
heading(text: string | ReactNode[], styles?: TextStyle): ReactNode;
|
|
183
|
-
code(
|
|
184
|
-
text: string,
|
|
185
|
-
language?: string,
|
|
186
|
-
containerStyle?: ViewStyle,
|
|
187
|
-
textStyle?: TextStyle,
|
|
188
|
-
): ReactNode;
|
|
189
|
-
hr(styles?: ViewStyle): ReactNode;
|
|
190
|
-
listItem(children: ReactNode[], styles?: ViewStyle): ReactNode;
|
|
191
|
-
list(
|
|
192
|
-
ordered: boolean,
|
|
193
|
-
li: ReactNode[],
|
|
194
|
-
listStyle?: ViewStyle,
|
|
195
|
-
textStyle?: TextStyle,
|
|
196
|
-
startIndex?: number,
|
|
197
|
-
): ReactNode;
|
|
198
|
-
escape(text: string, styles?: TextStyle): ReactNode;
|
|
199
|
-
link(
|
|
200
|
-
children: string | ReactNode[],
|
|
201
|
-
href: string,
|
|
202
|
-
styles?: TextStyle,
|
|
203
|
-
): ReactNode;
|
|
204
|
-
image(uri: string, alt?: string, style?: ImageStyle): ReactNode;
|
|
205
|
-
strong(children: ReactNode[], styles?: TextStyle): ReactNode;
|
|
206
|
-
em(children: ReactNode[], styles?: TextStyle): ReactNode;
|
|
207
|
-
codespan(text: string, styles?: TextStyle): ReactNode;
|
|
208
|
-
br(): ReactNode;
|
|
209
|
-
del(children: ReactNode[], styles?: TextStyle): ReactNode;
|
|
210
|
-
text(text: string | ReactNode[], styles?: TextStyle): ReactNode;
|
|
211
|
-
html(text: string | ReactNode[], styles?: TextStyle): ReactNode;
|
|
212
|
-
linkImage(
|
|
213
|
-
href: string,
|
|
214
|
-
imageUrl: string,
|
|
215
|
-
alt?: string,
|
|
216
|
-
style?: ImageStyle,
|
|
217
|
-
): ReactNode;
|
|
218
|
-
table(
|
|
219
|
-
header: ReactNode[][],
|
|
220
|
-
rows: ReactNode[][][],
|
|
221
|
-
tableStyle?: ViewStyle,
|
|
222
|
-
rowStyle?: ViewStyle,
|
|
223
|
-
cellStyle?: ViewStyle,
|
|
224
|
-
): ReactNode;
|
|
225
|
-
}
|
|
226
|
-
```
|
|
183
|
+
> Please refer to [RendererInterface](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L2) for all the overrides
|
|
227
184
|
|
|
228
185
|
> Note:
|
|
229
186
|
>
|
|
230
|
-
> For `key` property for a component, use `getKey` method from Renderer class.
|
|
187
|
+
> For `key` property for a component, you can use the `getKey` method from Renderer class.
|
|
188
|
+
|
|
189
|
+
### Using tokenizer with custom components
|
|
190
|
+
|
|
191
|
+
Refer [marked](https://marked.js.org/using_pro#tokenizer)
|
|
192
|
+
> The tokenizer defines how to turn markdown text into tokens. If you supply a tokenizer object to the Marked options, it will be merged with the built-in tokenizer and any functions inside will override the default handling of that token type.
|
|
193
|
+
|
|
194
|
+
-------------
|
|
195
|
+
|
|
196
|
+
> The implementation requires you to return a token of type 'custom' (ref: [CustomToken](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L83)) and the same needs to be implemented in the Renderer
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
#### Example
|
|
200
|
+
|
|
201
|
+
Overriding default codespan tokenizer to include LaTeX.
|
|
202
|
+
|
|
203
|
+
```tsx
|
|
204
|
+
import React, { ReactNode } from "react";
|
|
205
|
+
import Markdown, { Renderer, MarkedTokenizer, MarkedLexer } from "react-native-marked";
|
|
206
|
+
import type { RendererInterface, type CustomToken, } from "react-native-marked";
|
|
207
|
+
|
|
208
|
+
class CustomTokenizer extends MarkedTokenizer<CustomToken> {
|
|
209
|
+
// Override
|
|
210
|
+
codespan(this: MarkedTokenizer<CustomToken>, src: string) {
|
|
211
|
+
const match = src.match(/^\$+([^\$\n]+?)\$+/);
|
|
212
|
+
if (match?.[1]) {
|
|
213
|
+
const text = match[1].trim();
|
|
214
|
+
const raw = match[0];
|
|
215
|
+
const token: CustomToken = {
|
|
216
|
+
type: 'custom',
|
|
217
|
+
raw: raw, // should be the exact regex pattern match
|
|
218
|
+
text: text,
|
|
219
|
+
identifier: "latex",
|
|
220
|
+
tokens: MarkedLexer(text), // optional, can be used if the markdown contains children
|
|
221
|
+
};
|
|
222
|
+
return token;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return super.codespan(src)
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
class CustomRenderer extends Renderer implements RendererInterface {
|
|
230
|
+
// Custom Token implementation
|
|
231
|
+
custom(identifier: string, text: string, _raw: string, _children: ReactNode[]): ReactNode {
|
|
232
|
+
if (identifier === "latex") {
|
|
233
|
+
const styles = {
|
|
234
|
+
padding: 16,
|
|
235
|
+
minWidth: "100%",
|
|
236
|
+
backgroundColor: "#f6f8fa"
|
|
237
|
+
};
|
|
238
|
+
return this.code(text.trim(), "latex", styles);
|
|
239
|
+
}
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const renderer = new CustomRenderer();
|
|
245
|
+
const tokenizer = new CustomTokenizer();
|
|
246
|
+
|
|
247
|
+
const ExampleComponent = () => {
|
|
248
|
+
return (
|
|
249
|
+
<Markdown
|
|
250
|
+
value={"$ latex code $\n\n` other code `"}
|
|
251
|
+
flatListProps={{
|
|
252
|
+
initialNumToRender: 8,
|
|
253
|
+
}}
|
|
254
|
+
renderer={renderer}
|
|
255
|
+
tokenizer={tokenizer}
|
|
256
|
+
/>
|
|
257
|
+
);
|
|
258
|
+
};
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### Example
|
|
231
262
|
|
|
232
263
|
## Screenshots
|
|
233
264
|
|
|
@@ -255,4 +286,4 @@ Made with
|
|
|
255
286
|
- [@jsamr/react-native-li](https://github.com/jsamr/react-native-li)
|
|
256
287
|
- [react-native-table-component](https://github.com/Gil2015/react-native-table-component)
|
|
257
288
|
- [react-native-svg](https://github.com/software-mansion/react-native-svg)
|
|
258
|
-
|
|
289
|
+
- [svg-parser](https://github.com/Rich-Harris/svg-parser)
|
|
@@ -27,7 +27,8 @@ const useMarkdown = (value, options) => {
|
|
|
27
27
|
const elements = (0, _react.useMemo)(() => {
|
|
28
28
|
const tokens = _marked.marked.lexer(value, {
|
|
29
29
|
mangle: false,
|
|
30
|
-
gfm: true
|
|
30
|
+
gfm: true,
|
|
31
|
+
tokenizer: options === null || options === void 0 ? void 0 : options.tokenizer
|
|
31
32
|
});
|
|
32
33
|
|
|
33
34
|
return parser.parse(tokens);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMarkdown","value","options","styles","useMemo","getStyles","colorScheme","theme","parser","Parser","baseUrl","renderer","Renderer","elements","tokens","marked","lexer","mangle","gfm","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;
|
|
1
|
+
{"version":3,"names":["useMarkdown","value","options","styles","useMemo","getStyles","colorScheme","theme","parser","Parser","baseUrl","renderer","Renderer","elements","tokens","marked","lexer","mangle","gfm","tokenizer","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;AAaA,MAAMA,WAAW,GAAG,CACnBC,KADmB,EAEnBC,OAFmB,KAGF;EACjB,MAAMC,MAAM,GAAG,IAAAC,cAAA,EACd,MAAM,IAAAC,eAAA,EAAUH,OAAV,aAAUA,OAAV,uBAAUA,OAAO,CAAEC,MAAnB,EAA2BD,OAA3B,aAA2BA,OAA3B,uBAA2BA,OAAO,CAAEI,WAApC,EAAiDJ,OAAjD,aAAiDA,OAAjD,uBAAiDA,OAAO,CAAEK,KAA1D,CADQ,EAEd,CAACL,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEC,MAAV,EAAkBD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEK,KAA3B,EAAkCL,OAAlC,aAAkCA,OAAlC,uBAAkCA,OAAO,CAAEI,WAA3C,CAFc,CAAf;EAKA,MAAME,MAAM,GAAG,IAAAJ,cAAA,EACd,MACC,IAAIK,eAAJ,CAAW;IACVN,MAAM,EAAEA,MADE;IAEVO,OAAO,EAAER,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEQ,OAFR;IAGVC,QAAQ,EAAE,CAAAT,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAES,QAAT,KAAqB,IAAIC,iBAAJ;EAHrB,CAAX,CAFa,EAOd,CAACV,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAES,QAAV,EAAoBT,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEQ,OAA7B,EAAsCP,MAAtC,CAPc,CAAf;EAUA,MAAMU,QAAQ,GAAG,IAAAT,cAAA,EAAQ,MAAM;IAC9B,MAAMU,MAAM,GAAGC,cAAA,CAAOC,KAAP,CAAaf,KAAb,EAAoB;MAClCgB,MAAM,EAAE,KAD0B;MAElCC,GAAG,EAAE,IAF6B;MAGlCC,SAAS,EAAEjB,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEiB;IAHc,CAApB,CAAf;;IAKA,OAAOX,MAAM,CAACY,KAAP,CAAaN,MAAb,CAAP;EACA,CAPgB,EAOd,CAACb,KAAD,EAAQO,MAAR,CAPc,CAAjB;EASA,OAAOK,QAAP;AACA,CA7BD;;eA+Beb,W"}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.MarkedLexer = void 0;
|
|
7
|
+
Object.defineProperty(exports, "MarkedTokenizer", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _marked.Tokenizer;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
6
13
|
Object.defineProperty(exports, "Renderer", {
|
|
7
14
|
enumerable: true,
|
|
8
15
|
get: function () {
|
|
@@ -17,6 +24,8 @@ Object.defineProperty(exports, "useMarkdown", {
|
|
|
17
24
|
}
|
|
18
25
|
});
|
|
19
26
|
|
|
27
|
+
var _marked = require("marked");
|
|
28
|
+
|
|
20
29
|
var _Markdown = _interopRequireDefault(require("./lib/Markdown"));
|
|
21
30
|
|
|
22
31
|
var _Renderer = _interopRequireDefault(require("./lib/Renderer"));
|
|
@@ -25,6 +34,8 @@ var _useMarkdown = _interopRequireDefault(require("./hooks/useMarkdown"));
|
|
|
25
34
|
|
|
26
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
36
|
|
|
37
|
+
const MarkedLexer = _marked.marked.lexer;
|
|
38
|
+
exports.MarkedLexer = MarkedLexer;
|
|
28
39
|
var _default = _Markdown.default;
|
|
29
40
|
exports.default = _default;
|
|
30
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Markdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["MarkedLexer","marked","lexer","Markdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAQA,MAAMA,WAAW,GAAGC,cAAA,CAAOC,KAA3B;;eAWeC,iB"}
|
|
@@ -28,7 +28,8 @@ const Markdown = _ref => {
|
|
|
28
28
|
theme,
|
|
29
29
|
baseUrl,
|
|
30
30
|
renderer,
|
|
31
|
-
styles
|
|
31
|
+
styles,
|
|
32
|
+
tokenizer
|
|
32
33
|
} = _ref;
|
|
33
34
|
const colorScheme = (0, _reactNative.useColorScheme)();
|
|
34
35
|
const rnElements = (0, _useMarkdown.default)(value, {
|
|
@@ -36,7 +37,8 @@ const Markdown = _ref => {
|
|
|
36
37
|
baseUrl,
|
|
37
38
|
renderer,
|
|
38
39
|
colorScheme,
|
|
39
|
-
styles
|
|
40
|
+
styles,
|
|
41
|
+
tokenizer
|
|
40
42
|
});
|
|
41
43
|
const renderItem = (0, _react.useCallback)(_ref2 => {
|
|
42
44
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Markdown","value","flatListProps","theme","baseUrl","renderer","styles","colorScheme","useColorScheme","rnElements","useMarkdown","renderItem","useCallback","item","keyExtractor","_","index","toString","backgroundColor","colors","light","background","dark","memo"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"names":["Markdown","value","flatListProps","theme","baseUrl","renderer","styles","tokenizer","colorScheme","useColorScheme","rnElements","useMarkdown","renderItem","useCallback","item","keyExtractor","_","index","toString","backgroundColor","colors","light","background","dark","memo"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,QAAQ,GAAG,QAQI;EAAA,IARH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,QALiB;IAMjBC,MANiB;IAOjBC;EAPiB,CAQG;EACpB,MAAMC,WAAW,GAAG,IAAAC,2BAAA,GAApB;EAEA,MAAMC,UAAU,GAAG,IAAAC,oBAAA,EAAYV,KAAZ,EAAmB;IACrCE,KADqC;IAErCC,OAFqC;IAGrCC,QAHqC;IAIrCG,WAJqC;IAKrCF,MALqC;IAMrCC;EANqC,CAAnB,CAAnB;EASA,MAAMK,UAAU,GAAG,IAAAC,kBAAA,EAAY,SAAmC;IAAA,IAAlC;MAAEC;IAAF,CAAkC;IACjE,OAAOA,IAAP;EACA,CAFkB,EAEhB,EAFgB,CAAnB;EAIA,MAAMC,YAAY,GAAG,IAAAF,kBAAA,EACpB,CAACG,CAAD,EAAeC,KAAf,KAAiCA,KAAK,CAACC,QAAN,EADb,EAEpB,EAFoB,CAArB;EAKA,oBACC,6BAAC,qBAAD;IACC,qBAAqB,EAAE,KADxB;IAEC,YAAY,EAAEH,YAFf;IAGC,mBAAmB,EAAE,CAHtB;IAIC,kBAAkB,EAAE,CAJrB;IAKC,KAAK,EAAE;MACNI,eAAe,EACdX,WAAW,KAAK,OAAhB,GACGY,eAAA,CAAOC,KAAP,CAAaC,UADhB,GAEGF,eAAA,CAAOG,IAAP,CAAYD;IAJV;EALR,GAWKpB,aAXL;IAYC,IAAI,EAAEQ,UAZP;IAaC,UAAU,EAAEE;EAbb,GADD;AAiBA,CA9CD;;4BAgDe,IAAAY,WAAA,EAAKxB,QAAL,C"}
|
|
@@ -38,11 +38,6 @@ class Parser {
|
|
|
38
38
|
|
|
39
39
|
_parseToken(token, styles) {
|
|
40
40
|
switch (token.type) {
|
|
41
|
-
case "space":
|
|
42
|
-
{
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
41
|
case "paragraph":
|
|
47
42
|
{
|
|
48
43
|
const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
|
|
@@ -200,9 +195,15 @@ class Parser {
|
|
|
200
195
|
return this.renderer.table(header, rows, this.styles.table, this.styles.tableRow, this.styles.tableCell);
|
|
201
196
|
}
|
|
202
197
|
|
|
198
|
+
case "custom":
|
|
199
|
+
{
|
|
200
|
+
const children = this._parse(token.tokens ?? []);
|
|
201
|
+
|
|
202
|
+
return this.renderer.custom(token.identifier, token.text, token.raw, children, token.args);
|
|
203
|
+
}
|
|
204
|
+
|
|
203
205
|
default:
|
|
204
206
|
{
|
|
205
|
-
console.warn(`react-native-marked: token with '${token.type}' type was not found.`);
|
|
206
207
|
return null;
|
|
207
208
|
}
|
|
208
209
|
}
|
|
@@ -219,7 +220,7 @@ class Parser {
|
|
|
219
220
|
*/
|
|
220
221
|
if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
|
|
221
222
|
// Render existing inline tokens in the queue
|
|
222
|
-
const parsed = this.
|
|
223
|
+
const parsed = this._parse(tokenRenderQueue);
|
|
223
224
|
|
|
224
225
|
if (parsed.length > 0) {
|
|
225
226
|
siblingNodes.push(this.renderer.text(parsed, textStyle));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["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","heading","code","lang","em","hr","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","href","getValidURL","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","header","row","i","getTableColAlignmentStyle","align","rows","cols","col","table","tableRow","tableCell","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":";;;;;;;AAKA;;AACA;;AAEA,MAAMA,MAAN,CAAa;EAMZC,WAAW,CAACC,OAAD,EAAyB;IACnC,KAAKC,MAAL,GAAc,EAAE,GAAGD,OAAO,CAACC;IAAb,CAAd;IACA,KAAKC,OAAL,GAAeF,OAAO,CAACE,OAAR,IAAmB,EAAlC;IACA,KAAKC,QAAL,GAAgBH,OAAO,CAACG,QAAxB;IACA,KAAKC,gBAAL,GAAwB;MACvB,GAAG,KAAKH,MAAL,CAAYI,EADQ;MAEvB,GAAG,KAAKJ,MAAL,CAAYK,EAFQ;MAGvB,GAAG,KAAKL,MAAL,CAAYM,EAHQ;MAIvB,GAAG,KAAKN,MAAL,CAAYO,EAJQ;MAKvB,GAAG,KAAKP,MAAL,CAAYQ,EALQ;MAMvB,GAAG,KAAKR,MAAL,CAAYS;IANQ,CAAxB;EAQA;;EAEDC,KAAK,CAACC,MAAD,
|
|
1
|
+
{"version":3,"names":["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","heading","code","lang","em","hr","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","href","getValidURL","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","header","row","i","getTableColAlignmentStyle","align","rows","cols","col","table","tableRow","tableCell","custom","identifier","args","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"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"}
|
|
@@ -59,10 +59,7 @@ class Renderer {
|
|
|
59
59
|
horizontal: true,
|
|
60
60
|
key: this.getKey(),
|
|
61
61
|
contentContainerStyle: containerStyle
|
|
62
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.
|
|
63
|
-
selectable: true,
|
|
64
|
-
style: textStyle
|
|
65
|
-
}, text));
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, null, this.getTextNode(text, textStyle)));
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
hr(styles) {
|
|
@@ -195,6 +192,10 @@ class Renderer {
|
|
|
195
192
|
})));
|
|
196
193
|
}
|
|
197
194
|
|
|
195
|
+
custom(_identifier, _text, _raw, _children, _args) {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
|
|
198
199
|
getKey() {
|
|
199
200
|
return this.slugger.slug(this.slugPrefix);
|
|
200
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;AAEA,MAAMA,QAAN,CAA4C;EACnCC,UAAU,GAAG,yBAAH;;EAGlBC,WAAW,GAAG;IACb,KAAKC,OAAL,GAAe,IAAIC,eAAJ,EAAf;;IACA,MAAM;MAAEC;IAAF,IAAYC,uBAAA,CAAWC,GAAX,CAAe,QAAf,CAAlB;;IACA,KAAKC,WAAL,GAAmBH,KAAnB;EACA;;EAEDI,SAAS,CAACC,QAAD,EAAwBC,MAAxB,EAAuD;IAC/D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDE,UAAU,CAACH,QAAD,EAAwBC,MAAxB,EAAuD;IAChE,OAAO,KAAKG,iBAAL,CAAuBJ,QAAvB,EAAiCC,MAAjC,CAAP;EACA;;EAEDI,OAAO,CAACC,IAAD,EAA6BL,MAA7B,EAA4D;IAClE,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDO,IAAI,CACHF,IADG,EAEHG,SAFG,EAGHC,cAHG,EAIHC,SAJG,EAKS;IACZ,oBACC,6BAAC,uBAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAE,KAAKC,MAAL,EAFN;MAGC,qBAAqB,EAAEF;IAHxB,
|
|
1
|
+
{"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","custom","_identifier","_text","_raw","_children","_args","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
|
|
@@ -14,7 +14,8 @@ const useMarkdown = (value, options) => {
|
|
|
14
14
|
const elements = useMemo(() => {
|
|
15
15
|
const tokens = marked.lexer(value, {
|
|
16
16
|
mangle: false,
|
|
17
|
-
gfm: true
|
|
17
|
+
gfm: true,
|
|
18
|
+
tokenizer: options === null || options === void 0 ? void 0 : options.tokenizer
|
|
18
19
|
});
|
|
19
20
|
return parser.parse(tokens);
|
|
20
21
|
}, [value, parser]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","marked","Parser","Renderer","getStyles","useMarkdown","value","options","styles","colorScheme","theme","parser","baseUrl","renderer","elements","tokens","lexer","mangle","gfm","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":"AAAA,SAASA,OAAT,QAAwC,OAAxC;AACA,
|
|
1
|
+
{"version":3,"names":["useMemo","marked","Parser","Renderer","getStyles","useMarkdown","value","options","styles","colorScheme","theme","parser","baseUrl","renderer","elements","tokens","lexer","mangle","gfm","tokenizer","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":"AAAA,SAASA,OAAT,QAAwC,OAAxC;AACA,SAAoBC,MAApB,QAAkC,QAAlC;AAEA,OAAOC,MAAP,MAAmB,eAAnB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,SAAP,MAAsB,mBAAtB;;AAaA,MAAMC,WAAW,GAAG,CACnBC,KADmB,EAEnBC,OAFmB,KAGF;EACjB,MAAMC,MAAM,GAAGR,OAAO,CACrB,MAAMI,SAAS,CAACG,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEC,MAAV,EAAkBD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEE,WAA3B,EAAwCF,OAAxC,aAAwCA,OAAxC,uBAAwCA,OAAO,CAAEG,KAAjD,CADM,EAErB,CAACH,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEC,MAAV,EAAkBD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEG,KAA3B,EAAkCH,OAAlC,aAAkCA,OAAlC,uBAAkCA,OAAO,CAAEE,WAA3C,CAFqB,CAAtB;EAKA,MAAME,MAAM,GAAGX,OAAO,CACrB,MACC,IAAIE,MAAJ,CAAW;IACVM,MAAM,EAAEA,MADE;IAEVI,OAAO,EAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEK,OAFR;IAGVC,QAAQ,EAAE,CAAAN,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,QAAT,KAAqB,IAAIV,QAAJ;EAHrB,CAAX,CAFoB,EAOrB,CAACI,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEM,QAAV,EAAoBN,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEK,OAA7B,EAAsCJ,MAAtC,CAPqB,CAAtB;EAUA,MAAMM,QAAQ,GAAGd,OAAO,CAAC,MAAM;IAC9B,MAAMe,MAAM,GAAGd,MAAM,CAACe,KAAP,CAAaV,KAAb,EAAoB;MAClCW,MAAM,EAAE,KAD0B;MAElCC,GAAG,EAAE,IAF6B;MAGlCC,SAAS,EAAEZ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEY;IAHc,CAApB,CAAf;IAKA,OAAOR,MAAM,CAACS,KAAP,CAAaL,MAAb,CAAP;EACA,CAPuB,EAOrB,CAACT,KAAD,EAAQK,MAAR,CAPqB,CAAxB;EASA,OAAOG,QAAP;AACA,CA7BD;;AA+BA,eAAeT,WAAf"}
|
package/dist/module/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { Tokenizer, marked } from "marked";
|
|
1
2
|
import Markdown from "./lib/Markdown";
|
|
2
3
|
import Renderer from "./lib/Renderer";
|
|
3
4
|
import useMarkdown from "./hooks/useMarkdown";
|
|
4
|
-
|
|
5
|
+
const MarkedLexer = marked.lexer;
|
|
6
|
+
export { Renderer, useMarkdown, Tokenizer as MarkedTokenizer, MarkedLexer };
|
|
5
7
|
export default Markdown;
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Markdown","Renderer","useMarkdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"names":["Tokenizer","marked","Markdown","Renderer","useMarkdown","MarkedLexer","lexer","MarkedTokenizer"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,QAAlC;AACA,OAAOC,QAAP,MAAqB,gBAArB;AACA,OAAOC,QAAP,MAAqB,gBAArB;AACA,OAAOC,WAAP,MAAyD,qBAAzD;AAQA,MAAMC,WAAW,GAAGJ,MAAM,CAACK,KAA3B;AAUA,SAASH,QAAT,EAAmBC,WAAnB,EAAgCJ,SAAS,IAAIO,eAA7C,EAA8DF,WAA9D;AACA,eAAeH,QAAf"}
|
|
@@ -12,7 +12,8 @@ const Markdown = _ref => {
|
|
|
12
12
|
theme,
|
|
13
13
|
baseUrl,
|
|
14
14
|
renderer,
|
|
15
|
-
styles
|
|
15
|
+
styles,
|
|
16
|
+
tokenizer
|
|
16
17
|
} = _ref;
|
|
17
18
|
const colorScheme = useColorScheme();
|
|
18
19
|
const rnElements = useMarkdown(value, {
|
|
@@ -20,7 +21,8 @@ const Markdown = _ref => {
|
|
|
20
21
|
baseUrl,
|
|
21
22
|
renderer,
|
|
22
23
|
colorScheme,
|
|
23
|
-
styles
|
|
24
|
+
styles,
|
|
25
|
+
tokenizer
|
|
24
26
|
});
|
|
25
27
|
const renderItem = useCallback(_ref2 => {
|
|
26
28
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","FlatList","useColorScheme","useMarkdown","colors","Markdown","value","flatListProps","theme","baseUrl","renderer","styles","colorScheme","rnElements","renderItem","item","keyExtractor","_","index","toString","backgroundColor","light","background","dark"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,KAAP,IACCC,IADD,EAECC,WAFD,QAKO,OALP;AAMA,SAASC,QAAT,EAAmBC,cAAnB,QAAyC,cAAzC;AAEA,OAAOC,WAAP,MAAwB,sBAAxB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;;AAEA,MAAMC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","FlatList","useColorScheme","useMarkdown","colors","Markdown","value","flatListProps","theme","baseUrl","renderer","styles","tokenizer","colorScheme","rnElements","renderItem","item","keyExtractor","_","index","toString","backgroundColor","light","background","dark"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,KAAP,IACCC,IADD,EAECC,WAFD,QAKO,OALP;AAMA,SAASC,QAAT,EAAmBC,cAAnB,QAAyC,cAAzC;AAEA,OAAOC,WAAP,MAAwB,sBAAxB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;;AAEA,MAAMC,QAAQ,GAAG,QAQI;EAAA,IARH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,QALiB;IAMjBC,MANiB;IAOjBC;EAPiB,CAQG;EACpB,MAAMC,WAAW,GAAGX,cAAc,EAAlC;EAEA,MAAMY,UAAU,GAAGX,WAAW,CAACG,KAAD,EAAQ;IACrCE,KADqC;IAErCC,OAFqC;IAGrCC,QAHqC;IAIrCG,WAJqC;IAKrCF,MALqC;IAMrCC;EANqC,CAAR,CAA9B;EASA,MAAMG,UAAU,GAAGf,WAAW,CAAC,SAAmC;IAAA,IAAlC;MAAEgB;IAAF,CAAkC;IACjE,OAAOA,IAAP;EACA,CAF6B,EAE3B,EAF2B,CAA9B;EAIA,MAAMC,YAAY,GAAGjB,WAAW,CAC/B,CAACkB,CAAD,EAAeC,KAAf,KAAiCA,KAAK,CAACC,QAAN,EADF,EAE/B,EAF+B,CAAhC;EAKA,oBACC,oBAAC,QAAD;IACC,qBAAqB,EAAE,KADxB;IAEC,YAAY,EAAEH,YAFf;IAGC,mBAAmB,EAAE,CAHtB;IAIC,kBAAkB,EAAE,CAJrB;IAKC,KAAK,EAAE;MACNI,eAAe,EACdR,WAAW,KAAK,OAAhB,GACGT,MAAM,CAACkB,KAAP,CAAaC,UADhB,GAEGnB,MAAM,CAACoB,IAAP,CAAYD;IAJV;EALR,GAWKhB,aAXL;IAYC,IAAI,EAAEO,UAZP;IAaC,UAAU,EAAEC;EAbb,GADD;AAiBA,CA9CD;;AAgDA,4BAAehB,IAAI,CAACM,QAAD,CAAnB"}
|
|
@@ -30,11 +30,6 @@ class Parser {
|
|
|
30
30
|
|
|
31
31
|
_parseToken(token, styles) {
|
|
32
32
|
switch (token.type) {
|
|
33
|
-
case "space":
|
|
34
|
-
{
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
33
|
case "paragraph":
|
|
39
34
|
{
|
|
40
35
|
const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
|
|
@@ -192,9 +187,15 @@ class Parser {
|
|
|
192
187
|
return this.renderer.table(header, rows, this.styles.table, this.styles.tableRow, this.styles.tableCell);
|
|
193
188
|
}
|
|
194
189
|
|
|
190
|
+
case "custom":
|
|
191
|
+
{
|
|
192
|
+
const children = this._parse(token.tokens ?? []);
|
|
193
|
+
|
|
194
|
+
return this.renderer.custom(token.identifier, token.text, token.raw, children, token.args);
|
|
195
|
+
}
|
|
196
|
+
|
|
195
197
|
default:
|
|
196
198
|
{
|
|
197
|
-
console.warn(`react-native-marked: token with '${token.type}' type was not found.`);
|
|
198
199
|
return null;
|
|
199
200
|
}
|
|
200
201
|
}
|
|
@@ -211,7 +212,7 @@ class Parser {
|
|
|
211
212
|
*/
|
|
212
213
|
if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
|
|
213
214
|
// Render existing inline tokens in the queue
|
|
214
|
-
const parsed = this.
|
|
215
|
+
const parsed = this._parse(tokenRenderQueue);
|
|
215
216
|
|
|
216
217
|
if (parsed.length > 0) {
|
|
217
218
|
siblingNodes.push(this.renderer.text(parsed, textStyle));
|
|
@@ -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","heading","code","lang","em","hr","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","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","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"AAKA,SAASA,WAAT,QAA4B,gBAA5B;AACA,SAASC,yBAAT,QAA0C,kBAA1C;;AAEA,MAAMC,MAAN,CAAa;EAMZC,WAAW,CAACC,OAAD,EAAyB;IACnC,KAAKC,MAAL,GAAc,EAAE,GAAGD,OAAO,CAACC;IAAb,CAAd;IACA,KAAKC,OAAL,GAAeF,OAAO,CAACE,OAAR,IAAmB,EAAlC;IACA,KAAKC,QAAL,GAAgBH,OAAO,CAACG,QAAxB;IACA,KAAKC,gBAAL,GAAwB;MACvB,GAAG,KAAKH,MAAL,CAAYI,EADQ;MAEvB,GAAG,KAAKJ,MAAL,CAAYK,EAFQ;MAGvB,GAAG,KAAKL,MAAL,CAAYM,EAHQ;MAIvB,GAAG,KAAKN,MAAL,CAAYO,EAJQ;MAKvB,GAAG,KAAKP,MAAL,CAAYQ,EALQ;MAMvB,GAAG,KAAKR,MAAL,CAAYS;IANQ,CAAxB;EAQA;;EAEDC,KAAK,CAACC,MAAD,
|
|
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","heading","code","lang","em","hr","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","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","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"AAKA,SAASA,WAAT,QAA4B,gBAA5B;AACA,SAASC,yBAAT,QAA0C,kBAA1C;;AAEA,MAAMC,MAAN,CAAa;EAMZC,WAAW,CAACC,OAAD,EAAyB;IACnC,KAAKC,MAAL,GAAc,EAAE,GAAGD,OAAO,CAACC;IAAb,CAAd;IACA,KAAKC,OAAL,GAAeF,OAAO,CAACE,OAAR,IAAmB,EAAlC;IACA,KAAKC,QAAL,GAAgBH,OAAO,CAACG,QAAxB;IACA,KAAKC,gBAAL,GAAwB;MACvB,GAAG,KAAKH,MAAL,CAAYI,EADQ;MAEvB,GAAG,KAAKJ,MAAL,CAAYK,EAFQ;MAGvB,GAAG,KAAKL,MAAL,CAAYM,EAHQ;MAIvB,GAAG,KAAKN,MAAL,CAAYO,EAJQ;MAKvB,GAAG,KAAKP,MAAL,CAAYQ,EALQ;MAMvB,GAAG,KAAKR,MAAL,CAAYS;IANQ,CAAxB;EAQA;;EAEDC,KAAK,CAACC,MAAD,EAAkB;IACtB,OAAO,KAAKC,MAAL,CAAYD,MAAZ,CAAP;EACA;;EAEOC,MAAM,CAACD,MAAD,EAAkBX,MAAlB,EAA+D;IAC5E,MAAMa,QAAqB,GAAGF,MAAM,CAACG,GAAP,CAAYC,KAAD,IAAW;MACnD,OAAO,KAAKC,WAAL,CAAiBD,KAAjB,EAAwBf,MAAxB,CAAP;IACA,CAF6B,CAA9B;IAGA,OAAOa,QAAQ,CAACI,MAAT,CAAiBC,OAAD,IAAaA,OAAO,KAAK,IAAzC,CAAP;EACA;;EAEOF,WAAW,CAClBD,KADkB,EAElBf,MAFkB,EAGN;IACZ,QAAQe,KAAK,CAACI,IAAd;MACC,KAAK,WAAL;QAAkB;UACjB,MAAMC,QAAQ,GAAG,KAAKC,gDAAL,CAChBN,KAAK,CAACJ,MADU,EAEhB,KAAKX,MAAL,CAAYsB,IAFI,CAAjB;UAKA,OAAO,KAAKpB,QAAL,CAAcqB,SAAd,CAAwBH,QAAxB,EAAkC,KAAKpB,MAAL,CAAYuB,SAA9C,CAAP;QACA;;MACD,KAAK,YAAL;QAAmB;UAClB,MAAMH,QAAQ,GAAG,KAAKV,KAAL,CAAWK,KAAK,CAACJ,MAAjB,CAAjB;UACA,OAAO,KAAKT,QAAL,CAAcsB,UAAd,CAAyBJ,QAAzB,EAAmC,KAAKpB,MAAL,CAAYwB,UAA/C,CAAP;QACA;;MACD,KAAK,SAAL;QAAgB;UACf,MAAMxB,MAAM,GAAG,KAAKG,gBAAL,CAAsBY,KAAK,CAACU,KAA5B,CAAf;;UACA,MAAML,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAlB,EAA0BX,MAA1B,CAAjB;;UACA,OAAO,KAAKE,QAAL,CAAcwB,OAAd,CAAsBN,QAAtB,EAAgCpB,MAAhC,CAAP;QACA;;MACD,KAAK,MAAL;QAAa;UACZ,OAAO,KAAKE,QAAL,CAAcyB,IAAd,CACNZ,KAAK,CAACO,IADA,EAENP,KAAK,CAACa,IAFA,EAGN,KAAK5B,MAAL,CAAY2B,IAHN,EAIN,KAAK3B,MAAL,CAAY6B,EAJN,CAAP;QAMA;;MACD,KAAK,IAAL;QAAW;UACV,OAAO,KAAK3B,QAAL,CAAc4B,EAAd,CAAiB,KAAK9B,MAAL,CAAY8B,EAA7B,CAAP;QACA;;MACD,KAAK,MAAL;QAAa;UACZ,IAAIC,UAAU,GAAGC,QAAQ,CAACjB,KAAK,CAACkB,KAAN,CAAYC,QAAZ,EAAD,CAAzB;;UACA,IAAIC,MAAM,CAACC,KAAP,CAAaL,UAAb,CAAJ,EAA8B;YAC7BA,UAAU,GAAG,CAAb;UACA;;UACD,MAAMM,EAAE,GAAGtB,KAAK,CAACuB,KAAN,CAAYxB,GAAZ,CAAiByB,IAAD,IAAU;YACpC,MAAMnB,QAAQ,GAAGmB,IAAI,CAAC5B,MAAL,CAAY6B,OAAZ,CAAqBC,KAAD,IAAW;cAC/C,IAAIA,KAAK,CAACtB,IAAN,KAAe,MAAnB,EAA2B;gBAC1B;gBACA,MAAMuB,WAAW,GAAID,KAAD,CAA8B9B,MAA9B,IAAwC,EAA5D;gBACA,MAAMgC,YAAY,GACjB,KAAKtB,gDAAL,CACCqB,WADD,EAEC,KAAK1C,MAAL,CAAYqC,EAFb,CADD,CAH0B,CAQ1B;;gBACA,OAAOM,YAAP;cACA;cAED;;;cACA,OAAO,KAAK3B,WAAL,CAAiByB,KAAjB,CAAP;YACA,CAfgB,CAAjB;YAiBA,OAAO,KAAKvC,QAAL,CAAc0C,QAAd,CAAuBxB,QAAvB,EAAiC,KAAKpB,MAAL,CAAYqC,EAA7C,CAAP;UACA,CAnBU,CAAX;UAqBA,OAAO,KAAKnC,QAAL,CAAc2C,IAAd,CACN9B,KAAK,CAAC+B,OADA,EAENT,EAFM,EAGN,KAAKrC,MAAL,CAAY6C,IAHN,EAIN,KAAK7C,MAAL,CAAYqC,EAJN,EAKNN,UALM,CAAP;QAOA;;MACD,KAAK,QAAL;QAAe;UACd,OAAO,KAAK7B,QAAL,CAAc6C,MAAd,CAAqBhC,KAAK,CAACO,IAA3B,EAAiC,EACvC,GAAG,KAAKtB,MAAL,CAAYsB,IADwB;YAEvC,GAAGtB;UAFoC,CAAjC,CAAP;QAIA;;MACD,KAAK,MAAL;QAAa;UACZ;UACA,IAAIe,KAAK,CAACO,IAAN,CAAW0B,IAAX,CAAgBC,MAAhB,GAAyB,CAAzB,IAA8BlC,KAAK,CAACJ,MAAN,CAAasC,MAAb,GAAsB,CAAxD,EAA2D;YAC1D,OAAO,IAAP;UACA,CAJW,CAMZ;UACA;;;UACA,MAAMC,SAAS,GAAG,EACjB,GAAGlD,MADc;YAEjB,GAAG,KAAKA,MAAL,CAAYmD,IAFE,CAEI;;UAFJ,CAAlB;UAIA,MAAMC,IAAI,GAAGzD,WAAW,CAAC,KAAKM,OAAN,EAAec,KAAK,CAACqC,IAArB,CAAxB;;UACA,MAAMhC,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAlB,EAA0BuC,SAA1B,CAAjB;;UACA,OAAO,KAAKhD,QAAL,CAAciD,IAAd,CAAmB/B,QAAnB,EAA6BgC,IAA7B,EAAmCF,SAAnC,CAAP;QACA;;MACD,KAAK,OAAL;QAAc;UACb,OAAO,KAAKhD,QAAL,CAAcmD,KAAd,CACNtC,KAAK,CAACqC,IADA,EAENrC,KAAK,CAACO,IAAN,IAAcP,KAAK,CAACuC,KAFd,EAGN,KAAKtD,MAAL,CAAYqD,KAHN,CAAP;QAKA;;MACD,KAAK,QAAL;QAAe;UACd,MAAME,SAAS,GAAG,EACjB,GAAG,KAAKvD,MAAL,CAAYwD,MADE;YAEjB,GAAGxD;UAFc,CAAlB;;UAIA,MAAMoB,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAlB,EAA0B4C,SAA1B,CAAjB;;UACA,OAAO,KAAKrD,QAAL,CAAcsD,MAAd,CAAqBpC,QAArB,EAA+BmC,SAA/B,CAAP;QACA;;MACD,KAAK,IAAL;QAAW;UACV,MAAME,WAAW,GAAG,EACnB,GAAG,KAAKzD,MAAL,CAAY6B,EADI;YAEnB,GAAG7B;UAFgB,CAApB;;UAIA,MAAMoB,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAlB,EAA0B8C,WAA1B,CAAjB;;UACA,OAAO,KAAKvD,QAAL,CAAc2B,EAAd,CAAiBT,QAAjB,EAA2BqC,WAA3B,CAAP;QACA;;MACD,KAAK,UAAL;QAAiB;UAChB,OAAO,KAAKvD,QAAL,CAAcwD,QAAd,CAAuB3C,KAAK,CAACO,IAA7B,EAAmC,EACzC,GAAG,KAAKtB,MAAL,CAAY0D,QAD0B;YAEzC,GAAG1D;UAFsC,CAAnC,CAAP;QAIA;;MACD,KAAK,IAAL;QAAW;UACV,OAAO,KAAKE,QAAL,CAAcyD,EAAd,EAAP;QACA;;MACD,KAAK,KAAL;QAAY;UACX,MAAMC,kBAAkB,GAAG,EAC1B,GAAG,KAAK5D,MAAL,CAAY6D,aADW;YAE1B,GAAG7D;UAFuB,CAA3B;;UAIA,MAAMoB,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAlB,EAA0BiD,kBAA1B,CAAjB;;UACA,OAAO,KAAK1D,QAAL,CAAc4D,GAAd,CAAkB1C,QAAlB,EAA4BwC,kBAA5B,CAAP;QACA;;MACD,KAAK,MAAL;QACC,OAAO,KAAK1D,QAAL,CAAcoB,IAAd,CAAmBP,KAAK,CAACgD,GAAzB,EAA8B,EACpC,GAAG,KAAK/D,MAAL,CAAYsB,IADqB;UAEpC,GAAGtB;QAFiC,CAA9B,CAAP;;MAID,KAAK,MAAL;QAAa;UACZgE,OAAO,CAACC,IAAR,CACC,oEADD;UAGA,OAAO,KAAK/D,QAAL,CAAcgE,IAAd,CAAmBnD,KAAK,CAACgD,GAAzB,EAA8B,EACpC,GAAG,KAAK/D,MAAL,CAAYsB,IADqB;YAEpC,GAAGtB;UAFiC,CAA9B,CAAP;QAIA;;MACD,KAAK,OAAL;QAAc;UACb,MAAMmE,MAAM,GAAGpD,KAAK,CAACoD,MAAN,CAAarD,GAAb,CAAiB,CAACsD,GAAD,EAAMC,CAAN,KAC/B,KAAKzD,MAAL,CAAYwD,GAAG,CAACzD,MAAhB,EAAwB,EACvB,GAAGf,yBAAyB,CAACmB,KAAK,CAACuD,KAAN,CAAYD,CAAZ,CAAD;UADL,CAAxB,CADc,CAAf;UAMA,MAAME,IAAI,GAAGxD,KAAK,CAACwD,IAAN,CAAWzD,GAAX,CAAgB0D,IAAD,IAC3BA,IAAI,CAAC1D,GAAL,CAAS,CAAC2D,GAAD,EAAMJ,CAAN,KACR,KAAKzD,MAAL,CAAY6D,GAAG,CAAC9D,MAAhB,EAAwB,EACvB,GAAGf,yBAAyB,CAACmB,KAAK,CAACuD,KAAN,CAAYD,CAAZ,CAAD;UADL,CAAxB,CADD,CADY,CAAb;UAQA,OAAO,KAAKnE,QAAL,CAAcwE,KAAd,CACNP,MADM,EAENI,IAFM,EAGN,KAAKvE,MAAL,CAAY0E,KAHN,EAIN,KAAK1E,MAAL,CAAY2E,QAJN,EAKN,KAAK3E,MAAL,CAAY4E,SALN,CAAP;QAOA;;MACD,KAAK,QAAL;QAAe;UACd,MAAMxD,QAAQ,GAAG,KAAKR,MAAL,CAAYG,KAAK,CAACJ,MAAN,IAAgB,EAA5B,CAAjB;;UACA,OAAO,KAAKT,QAAL,CAAc2E,MAAd,CACN9D,KAAK,CAAC+D,UADA,EAEN/D,KAAK,CAACO,IAFA,EAGNP,KAAK,CAACgD,GAHA,EAIN3C,QAJM,EAKNL,KAAK,CAACgE,IALA,CAAP;QAOA;;MACD;QAAS;UACR,OAAO,IAAP;QACA;IA9KF;EAgLA;;EAEO1D,gDAAgD,CACvDV,MADuD,EAEvDqE,SAFuD,EAGzC;IACd,IAAIC,gBAAyB,GAAG,EAAhC;IACA,MAAMC,YAAyB,GAAG,EAAlC;IACAvE,MAAM,CAACwE,OAAP,CAAgBC,CAAD,IAAO;MACrB;AACH;AACA;AACA;AACA;MACG,IACCA,CAAC,CAACjE,IAAF,KAAW,OAAX,IACCiE,CAAC,CAACjE,IAAF,KAAW,MAAX,IACAiE,CAAC,CAACzE,MADF,IAEAyE,CAAC,CAACzE,MAAF,CAAS,CAAT,CAFA,IAGAyE,CAAC,CAACzE,MAAF,CAAS,CAAT,EAAYQ,IAAZ,KAAqB,OALvB,EAME;QACD;QACA,MAAMkE,MAAM,GAAG,KAAKzE,MAAL,CAAYqE,gBAAZ,CAAf;;QACA,IAAII,MAAM,CAACpC,MAAP,GAAgB,CAApB,EAAuB;UACtBiC,YAAY,CAACI,IAAb,CAAkB,KAAKpF,QAAL,CAAcoB,IAAd,CAAmB+D,MAAnB,EAA2BL,SAA3B,CAAlB;QACA,CALA,CAOD;;;QACA,IAAII,CAAC,CAACjE,IAAF,KAAW,OAAf,EAAwB;UACvB+D,YAAY,CAACI,IAAb,CAAkB,KAAKtE,WAAL,CAAiBoE,CAAjB,CAAlB;QACA,CAFD,MAEO,IAAIA,CAAC,CAACjE,IAAF,KAAW,MAAf,EAAuB;UAC7B,MAAMoE,UAAU,GAAGH,CAAC,CAACzE,MAAF,CAAS,CAAT,CAAnB;UACA,MAAMyC,IAAI,GAAGzD,WAAW,CAAC,KAAKM,OAAN,EAAemF,CAAC,CAAChC,IAAjB,CAAxB;UACA8B,YAAY,CAACI,IAAb,CACC,KAAKpF,QAAL,CAAcsF,SAAd,CACCpC,IADD,EAECmC,UAAU,CAACnC,IAFZ,EAGCmC,UAAU,CAACjE,IAAX,IAAmBiE,UAAU,CAACjC,KAH/B,EAIC,KAAKtD,MAAL,CAAYqD,KAJb,CADD;QAQA;;QAED4B,gBAAgB,GAAG,EAAnB;QACA;MACA;;MACDA,gBAAgB,GAAG,CAAC,GAAGA,gBAAJ,EAAsBG,CAAtB,CAAnB;IACA,CAvCD;IAyCA;;IACA,IAAIH,gBAAgB,CAAChC,MAAjB,GAA0B,CAA9B,EAAiC;MAChCiC,YAAY,CAACI,IAAb,CAAkB,KAAKpF,QAAL,CAAcoB,IAAd,CAAmB,KAAKZ,KAAL,CAAWuE,gBAAX,CAAnB,EAAiD,EAAjD,CAAlB;IACA;;IAED,OAAOC,YAAP;EACA;;AA1QW;;AA6Qb,eAAerF,MAAf"}
|
|
@@ -38,10 +38,7 @@ class Renderer {
|
|
|
38
38
|
horizontal: true,
|
|
39
39
|
key: this.getKey(),
|
|
40
40
|
contentContainerStyle: containerStyle
|
|
41
|
-
}, /*#__PURE__*/React.createElement(
|
|
42
|
-
selectable: true,
|
|
43
|
-
style: textStyle
|
|
44
|
-
}, text));
|
|
41
|
+
}, /*#__PURE__*/React.createElement(View, null, this.getTextNode(text, textStyle)));
|
|
45
42
|
}
|
|
46
43
|
|
|
47
44
|
hr(styles) {
|
|
@@ -174,6 +171,10 @@ class Renderer {
|
|
|
174
171
|
})));
|
|
175
172
|
}
|
|
176
173
|
|
|
174
|
+
custom(_identifier, _text, _raw, _children, _args) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
|
|
177
178
|
getKey() {
|
|
178
179
|
return this.slugger.slug(this.slugPrefix);
|
|
179
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","MDSvg","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"AAAA,OAAOA,KAAP,MAAsC,OAAtC;AACA,SACCC,UADD,EAECC,IAFD,EAGCC,IAHD,EAICC,kBAJD,EAQCC,UARD,QASO,cATP;AAUA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,IAAP,MAAiB,mCAAjB;AACA,OAAOC,OAAP,MAAoB,sCAApB;AACA,SAASC,OAAT,QAAwB,QAAxB;AACA,SAASC,KAAT,EAAgBC,IAAhB,EAAsBC,YAAtB,QAA0C,8BAA1C;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,SAASC,gBAAT,QAAiC,gBAAjC;AACA,OAAOC,KAAP,MAAkB,uBAAlB;;AAEA,MAAMC,QAAN,CAA4C;EACnCC,UAAU,GAAG,yBAAH;;EAGlBC,WAAW,GAAG;IACb,KAAKC,OAAL,GAAe,IAAIX,OAAJ,EAAf;IACA,MAAM;MAAEY;IAAF,IAAYhB,UAAU,CAACiB,GAAX,CAAe,QAAf,CAAlB;IACA,KAAKC,WAAL,GAAmBF,KAAnB;EACA;;EAEDG,SAAS,CAACC,QAAD,EAAwBC,MAAxB,EAAuD;IAC/D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDE,UAAU,CAACH,QAAD,EAAwBC,MAAxB,EAAuD;IAChE,OAAO,KAAKG,iBAAL,CAAuBJ,QAAvB,EAAiCC,MAAjC,CAAP;EACA;;EAEDI,OAAO,CAACC,IAAD,EAA6BL,MAA7B,EAA4D;IAClE,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDO,IAAI,CACHF,IADG,EAEHG,SAFG,EAGHC,cAHG,EAIHC,SAJG,EAKS;IACZ,oBACC,oBAAC,UAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAE,KAAKC,MAAL,EAFN;MAGC,qBAAqB,EAAEF;IAHxB,
|
|
1
|
+
{"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","MDSvg","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","custom","_identifier","_text","_raw","_children","_args","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
+
import { Tokenizer } from "marked";
|
|
2
3
|
import type { MarkedStyles, UserTheme } from "./../theme/types";
|
|
3
4
|
import { type ColorSchemeName } from "react-native";
|
|
4
|
-
import type { RendererInterface } from "../lib/types";
|
|
5
|
+
import type { CustomToken, RendererInterface } from "../lib/types";
|
|
5
6
|
export interface useMarkdownHookOptions {
|
|
6
7
|
colorScheme?: ColorSchemeName;
|
|
7
8
|
renderer?: RendererInterface;
|
|
8
9
|
theme?: UserTheme;
|
|
9
10
|
styles?: MarkedStyles;
|
|
10
11
|
baseUrl?: string;
|
|
12
|
+
tokenizer?: Tokenizer<CustomToken>;
|
|
11
13
|
}
|
|
12
14
|
declare const useMarkdown: (value: string, options?: useMarkdownHookOptions) => ReactNode[];
|
|
13
15
|
export default useMarkdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkdown.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMarkdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMarkdown.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMarkdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACtC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACnC;AAED,QAAA,MAAM,WAAW,UACT,MAAM,YACH,sBAAsB,KAC9B,SAAS,EA0BX,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { Tokenizer, marked } from "marked";
|
|
1
2
|
import Markdown from "./lib/Markdown";
|
|
2
3
|
import Renderer from "./lib/Renderer";
|
|
3
4
|
import useMarkdown, { type useMarkdownHookOptions } from "./hooks/useMarkdown";
|
|
4
|
-
import type { MarkdownProps, ParserOptions, RendererInterface } from "./lib/types";
|
|
5
|
-
|
|
6
|
-
export {
|
|
5
|
+
import type { MarkdownProps, ParserOptions, RendererInterface, CustomToken } from "./lib/types";
|
|
6
|
+
declare const MarkedLexer: typeof marked.lexer;
|
|
7
|
+
export type { MarkdownProps, ParserOptions, RendererInterface, useMarkdownHookOptions, CustomToken, };
|
|
8
|
+
export { Renderer, useMarkdown, Tokenizer as MarkedTokenizer, MarkedLexer };
|
|
7
9
|
export default Markdown;
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,WAAW,EAAE,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,MAAM,aAAa,CAAC;AAErB,YAAY,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,WAAW,EAAE,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,MAAM,aAAa,CAAC;AAErB,QAAA,MAAM,WAAW,qBAAe,CAAC;AAEjC,YAAY,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,GACX,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,IAAI,eAAe,EAAE,WAAW,EAAE,CAAC;AAC5E,eAAe,QAAQ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { MarkdownProps } from "./types";
|
|
3
|
-
declare const _default: React.MemoExoticComponent<({ value, flatListProps, theme, baseUrl, renderer, styles, }: MarkdownProps) => React.JSX.Element>;
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ value, flatListProps, theme, baseUrl, renderer, styles, tokenizer, }: MarkdownProps) => React.JSX.Element>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=Markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/lib/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;;
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/lib/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;;AAoD7C,wBAA8B"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import type {
|
|
3
|
-
import type { ParserOptions } from "./types";
|
|
2
|
+
import type { ParserOptions, Token } from "./types";
|
|
4
3
|
declare class Parser {
|
|
5
4
|
private renderer;
|
|
6
5
|
private styles;
|
|
7
6
|
private headingStylesMap;
|
|
8
7
|
private baseUrl;
|
|
9
8
|
constructor(options: ParserOptions);
|
|
10
|
-
parse(tokens:
|
|
9
|
+
parse(tokens: Token[]): ReactNode[];
|
|
11
10
|
private _parse;
|
|
12
11
|
private _parseToken;
|
|
13
12
|
private getNormalizedSiblingNodesForBlockAndInlineTokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/lib/Parser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/lib/Parser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAqB,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIvE,cAAM,MAAM;IACX,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,aAAa;IAclC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;IAIrB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,WAAW;IAsLnB,OAAO,CAAC,gDAAgD;CAsDxD;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -25,6 +25,7 @@ declare class Renderer implements RendererInterface {
|
|
|
25
25
|
html(text: string | ReactNode[], styles?: TextStyle): ReactNode;
|
|
26
26
|
linkImage(href: string, imageUrl: string, alt?: string, style?: ImageStyle): ReactNode;
|
|
27
27
|
table(header: ReactNode[][], rows: ReactNode[][][], tableStyle?: ViewStyle, rowStyle?: ViewStyle, cellStyle?: ViewStyle): React.ReactNode;
|
|
28
|
+
custom(_identifier: string, _text: string, _raw: string, _children: ReactNode[], _args: Record<string, unknown>): ReactNode;
|
|
28
29
|
getKey(): string;
|
|
29
30
|
private getTextNode;
|
|
30
31
|
private getViewNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAKN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,cAAM,QAAS,YAAW,iBAAiB;IAC1C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;;IAO5B,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI/D,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIhE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIlE,IAAI,CACH,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,SAAS,EAC1B,SAAS,CAAC,EAAE,SAAS,GACnB,SAAS;
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { FlatListProps, ViewStyle, TextStyle, ImageStyle } from "react-native";
|
|
3
3
|
import type { MarkedStyles, UserTheme } from "./../theme/types";
|
|
4
|
+
import { Tokenizer as MarkedTokenizer, marked } from "marked";
|
|
4
5
|
export interface ParserOptions {
|
|
5
6
|
styles?: MarkedStyles;
|
|
6
7
|
baseUrl?: string;
|
|
@@ -10,6 +11,7 @@ export interface MarkdownProps extends Partial<ParserOptions> {
|
|
|
10
11
|
value: string;
|
|
11
12
|
flatListProps?: Omit<FlatListProps<ReactNode>, "data" | "renderItem" | "horizontal">;
|
|
12
13
|
theme?: UserTheme;
|
|
14
|
+
tokenizer?: MarkedTokenizer<CustomToken>;
|
|
13
15
|
}
|
|
14
16
|
export type TableColAlignment = "center" | "left" | "right" | null;
|
|
15
17
|
export interface RendererInterface {
|
|
@@ -32,5 +34,15 @@ export interface RendererInterface {
|
|
|
32
34
|
html(text: string | ReactNode[], styles?: TextStyle): ReactNode;
|
|
33
35
|
linkImage(href: string, imageUrl: string, alt?: string, style?: ImageStyle): ReactNode;
|
|
34
36
|
table(header: ReactNode[][], rows: ReactNode[][][], tableStyle?: ViewStyle, rowStyle?: ViewStyle, cellStyle?: ViewStyle): ReactNode;
|
|
37
|
+
custom(identifier: string, text: string, raw: string, children: ReactNode[], args?: Record<string, unknown>): ReactNode;
|
|
35
38
|
}
|
|
39
|
+
export interface CustomToken {
|
|
40
|
+
type: "custom";
|
|
41
|
+
identifier: string;
|
|
42
|
+
raw: string;
|
|
43
|
+
text: string;
|
|
44
|
+
tokens?: Token[];
|
|
45
|
+
args?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
export type Token = marked.Tokens.Space | marked.Tokens.Code | marked.Tokens.Heading | marked.Tokens.Table | marked.Tokens.Hr | marked.Tokens.Blockquote | marked.Tokens.List | marked.Tokens.ListItem | marked.Tokens.Paragraph | marked.Tokens.HTML | marked.Tokens.Text | marked.Tokens.Def | marked.Tokens.Escape | marked.Tokens.Tag | marked.Tokens.Image | marked.Tokens.Link | marked.Tokens.Strong | marked.Tokens.Em | marked.Tokens.Codespan | marked.Tokens.Br | marked.Tokens.Del | CustomToken;
|
|
36
48
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-marked",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-rc.1",
|
|
4
4
|
"description": "Markdown renderer for React Native powered by marked.js",
|
|
5
5
|
"main": "dist/commonjs/index",
|
|
6
6
|
"module": "dist/module/index",
|
|
@@ -52,22 +52,22 @@
|
|
|
52
52
|
"@babel/core": "7.21.8",
|
|
53
53
|
"@babel/preset-env": "7.21.5",
|
|
54
54
|
"@commitlint/config-conventional": "17.6.3",
|
|
55
|
-
"@evilmartians/lefthook": "1.4.
|
|
55
|
+
"@evilmartians/lefthook": "1.4.1",
|
|
56
56
|
"@release-it/conventional-changelog": "5.1.1",
|
|
57
57
|
"@testing-library/jest-native": "5.4.2",
|
|
58
58
|
"@testing-library/react-native": "12.1.2",
|
|
59
59
|
"@types/jest": "29.5.1",
|
|
60
60
|
"@types/marked": "4.3.1",
|
|
61
|
-
"@types/node": "18.16.
|
|
62
|
-
"@types/react": "18.2.
|
|
63
|
-
"@types/react-native": "0.72.
|
|
61
|
+
"@types/node": "18.16.15",
|
|
62
|
+
"@types/react": "18.2.7",
|
|
63
|
+
"@types/react-native": "0.72.2",
|
|
64
64
|
"@types/react-native-table-component": "1.2.4",
|
|
65
65
|
"@types/svg-parser": "^2.0.3",
|
|
66
66
|
"commitlint": "17.6.3",
|
|
67
67
|
"danger": "11.2.6",
|
|
68
68
|
"jest": "29.5.0",
|
|
69
69
|
"jest-environment-jsdom": "29.5.0",
|
|
70
|
-
"metro-react-native-babel-preset": "0.76.
|
|
70
|
+
"metro-react-native-babel-preset": "0.76.5",
|
|
71
71
|
"pod-install": "0.1.38",
|
|
72
72
|
"postinstall-postinstall": "2.1.0",
|
|
73
73
|
"react": "18.2.0",
|
|
@@ -163,7 +163,6 @@
|
|
|
163
163
|
"marked": "4.3.0",
|
|
164
164
|
"react-native-svg": "13.9.0",
|
|
165
165
|
"react-native-table-component": "1.2.2",
|
|
166
|
-
"svg-parser": "
|
|
167
|
-
"svgps": "0.8.0"
|
|
166
|
+
"svg-parser": "2.0.4"
|
|
168
167
|
}
|
|
169
168
|
}
|
package/src/hooks/useMarkdown.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useMemo, type ReactNode } from "react";
|
|
2
|
-
import { marked } from "marked";
|
|
2
|
+
import { Tokenizer, marked } from "marked";
|
|
3
3
|
import type { MarkedStyles, UserTheme } from "./../theme/types";
|
|
4
4
|
import Parser from "../lib/Parser";
|
|
5
5
|
import Renderer from "../lib/Renderer";
|
|
6
6
|
import getStyles from "./../theme/styles";
|
|
7
7
|
import { type ColorSchemeName } from "react-native";
|
|
8
|
-
import type { RendererInterface } from "../lib/types";
|
|
8
|
+
import type { CustomToken, RendererInterface } from "../lib/types";
|
|
9
9
|
|
|
10
10
|
export interface useMarkdownHookOptions {
|
|
11
11
|
colorScheme?: ColorSchemeName;
|
|
@@ -13,6 +13,7 @@ export interface useMarkdownHookOptions {
|
|
|
13
13
|
theme?: UserTheme;
|
|
14
14
|
styles?: MarkedStyles;
|
|
15
15
|
baseUrl?: string;
|
|
16
|
+
tokenizer?: Tokenizer<CustomToken>;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
const useMarkdown = (
|
|
@@ -35,7 +36,11 @@ const useMarkdown = (
|
|
|
35
36
|
);
|
|
36
37
|
|
|
37
38
|
const elements = useMemo(() => {
|
|
38
|
-
const tokens = marked.lexer(value, {
|
|
39
|
+
const tokens = marked.lexer(value, {
|
|
40
|
+
mangle: false,
|
|
41
|
+
gfm: true,
|
|
42
|
+
tokenizer: options?.tokenizer as Tokenizer<never>,
|
|
43
|
+
});
|
|
39
44
|
return parser.parse(tokens);
|
|
40
45
|
}, [value, parser]);
|
|
41
46
|
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Tokenizer, marked } from "marked";
|
|
1
2
|
import Markdown from "./lib/Markdown";
|
|
2
3
|
import Renderer from "./lib/Renderer";
|
|
3
4
|
import useMarkdown, { type useMarkdownHookOptions } from "./hooks/useMarkdown";
|
|
@@ -5,13 +6,18 @@ import type {
|
|
|
5
6
|
MarkdownProps,
|
|
6
7
|
ParserOptions,
|
|
7
8
|
RendererInterface,
|
|
9
|
+
CustomToken,
|
|
8
10
|
} from "./lib/types";
|
|
9
11
|
|
|
12
|
+
const MarkedLexer = marked.lexer;
|
|
13
|
+
|
|
10
14
|
export type {
|
|
11
15
|
MarkdownProps,
|
|
12
16
|
ParserOptions,
|
|
13
17
|
RendererInterface,
|
|
14
18
|
useMarkdownHookOptions,
|
|
19
|
+
CustomToken,
|
|
15
20
|
};
|
|
16
|
-
|
|
21
|
+
|
|
22
|
+
export { Renderer, useMarkdown, Tokenizer as MarkedTokenizer, MarkedLexer };
|
|
17
23
|
export default Markdown;
|
package/src/lib/Markdown.tsx
CHANGED
|
@@ -16,6 +16,7 @@ const Markdown = ({
|
|
|
16
16
|
baseUrl,
|
|
17
17
|
renderer,
|
|
18
18
|
styles,
|
|
19
|
+
tokenizer,
|
|
19
20
|
}: MarkdownProps) => {
|
|
20
21
|
const colorScheme = useColorScheme();
|
|
21
22
|
|
|
@@ -25,6 +26,7 @@ const Markdown = ({
|
|
|
25
26
|
renderer,
|
|
26
27
|
colorScheme,
|
|
27
28
|
styles,
|
|
29
|
+
tokenizer,
|
|
28
30
|
});
|
|
29
31
|
|
|
30
32
|
const renderItem = useCallback(({ item }: { item: ReactNode }) => {
|
package/src/lib/Parser.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { TextStyle, ViewStyle, ImageStyle } from "react-native";
|
|
3
3
|
import type { marked } from "marked";
|
|
4
4
|
import type { MarkedStyles } from "../theme/types";
|
|
5
|
-
import type { RendererInterface, ParserOptions } from "./types";
|
|
5
|
+
import type { RendererInterface, ParserOptions, Token } from "./types";
|
|
6
6
|
import { getValidURL } from "./../utils/url";
|
|
7
7
|
import { getTableColAlignmentStyle } from "./../utils/table";
|
|
8
8
|
|
|
@@ -26,14 +26,11 @@ class Parser {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
parse(tokens:
|
|
29
|
+
parse(tokens: Token[]) {
|
|
30
30
|
return this._parse(tokens);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
private _parse(
|
|
34
|
-
tokens: marked.Token[],
|
|
35
|
-
styles?: ViewStyle | TextStyle | ImageStyle,
|
|
36
|
-
) {
|
|
33
|
+
private _parse(tokens: Token[], styles?: ViewStyle | TextStyle | ImageStyle) {
|
|
37
34
|
const elements: ReactNode[] = tokens.map((token) => {
|
|
38
35
|
return this._parseToken(token, styles);
|
|
39
36
|
});
|
|
@@ -41,13 +38,10 @@ class Parser {
|
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
private _parseToken(
|
|
44
|
-
token:
|
|
41
|
+
token: Token,
|
|
45
42
|
styles?: ViewStyle | TextStyle | ImageStyle,
|
|
46
43
|
): ReactNode {
|
|
47
44
|
switch (token.type) {
|
|
48
|
-
case "space": {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
45
|
case "paragraph": {
|
|
52
46
|
const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(
|
|
53
47
|
token.tokens,
|
|
@@ -209,20 +203,27 @@ class Parser {
|
|
|
209
203
|
this.styles.tableCell,
|
|
210
204
|
);
|
|
211
205
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
206
|
+
case "custom": {
|
|
207
|
+
const children = this._parse(token.tokens ?? []);
|
|
208
|
+
return this.renderer.custom(
|
|
209
|
+
token.identifier,
|
|
210
|
+
token.text,
|
|
211
|
+
token.raw,
|
|
212
|
+
children,
|
|
213
|
+
token.args,
|
|
215
214
|
);
|
|
215
|
+
}
|
|
216
|
+
default: {
|
|
216
217
|
return null;
|
|
217
218
|
}
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
221
|
|
|
221
222
|
private getNormalizedSiblingNodesForBlockAndInlineTokens(
|
|
222
|
-
tokens:
|
|
223
|
+
tokens: Token[],
|
|
223
224
|
textStyle?: TextStyle,
|
|
224
225
|
): ReactNode[] {
|
|
225
|
-
let tokenRenderQueue:
|
|
226
|
+
let tokenRenderQueue: Token[] = [];
|
|
226
227
|
const siblingNodes: ReactNode[] = [];
|
|
227
228
|
tokens.forEach((t) => {
|
|
228
229
|
/**
|
|
@@ -238,7 +239,7 @@ class Parser {
|
|
|
238
239
|
t.tokens[0].type === "image")
|
|
239
240
|
) {
|
|
240
241
|
// Render existing inline tokens in the queue
|
|
241
|
-
const parsed = this.
|
|
242
|
+
const parsed = this._parse(tokenRenderQueue);
|
|
242
243
|
if (parsed.length > 0) {
|
|
243
244
|
siblingNodes.push(this.renderer.text(parsed, textStyle));
|
|
244
245
|
}
|
package/src/lib/Renderer.tsx
CHANGED
|
@@ -54,9 +54,12 @@ class Renderer implements RendererInterface {
|
|
|
54
54
|
key={this.getKey()}
|
|
55
55
|
contentContainerStyle={containerStyle}
|
|
56
56
|
>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
{/*
|
|
58
|
+
Wrapped in View node to avoid the following error
|
|
59
|
+
Error: Cannot add a child that doesn't have a YogaNode to a parent without a measure function!
|
|
60
|
+
ref: https://github.com/facebook/react-native/issues/18773
|
|
61
|
+
*/}
|
|
62
|
+
<View>{this.getTextNode(text, textStyle)}</View>
|
|
60
63
|
</ScrollView>
|
|
61
64
|
);
|
|
62
65
|
}
|
|
@@ -213,6 +216,16 @@ class Renderer implements RendererInterface {
|
|
|
213
216
|
);
|
|
214
217
|
}
|
|
215
218
|
|
|
219
|
+
custom(
|
|
220
|
+
_identifier: string,
|
|
221
|
+
_text: string,
|
|
222
|
+
_raw: string,
|
|
223
|
+
_children: ReactNode[],
|
|
224
|
+
_args: Record<string, unknown>,
|
|
225
|
+
): ReactNode {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
|
|
216
229
|
getKey(): string {
|
|
217
230
|
return this.slugger.slug(this.slugPrefix);
|
|
218
231
|
}
|
package/src/lib/types.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
ImageStyle,
|
|
7
7
|
} from "react-native";
|
|
8
8
|
import type { MarkedStyles, UserTheme } from "./../theme/types";
|
|
9
|
+
import { Tokenizer as MarkedTokenizer, marked } from "marked";
|
|
9
10
|
|
|
10
11
|
export interface ParserOptions {
|
|
11
12
|
styles?: MarkedStyles;
|
|
@@ -20,6 +21,7 @@ export interface MarkdownProps extends Partial<ParserOptions> {
|
|
|
20
21
|
"data" | "renderItem" | "horizontal"
|
|
21
22
|
>;
|
|
22
23
|
theme?: UserTheme;
|
|
24
|
+
tokenizer?: MarkedTokenizer<CustomToken>;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
export type TableColAlignment = "center" | "left" | "right" | null;
|
|
@@ -70,4 +72,44 @@ export interface RendererInterface {
|
|
|
70
72
|
rowStyle?: ViewStyle,
|
|
71
73
|
cellStyle?: ViewStyle,
|
|
72
74
|
): ReactNode;
|
|
75
|
+
custom(
|
|
76
|
+
identifier: string,
|
|
77
|
+
text: string,
|
|
78
|
+
raw: string,
|
|
79
|
+
children: ReactNode[],
|
|
80
|
+
args?: Record<string, unknown>,
|
|
81
|
+
): ReactNode;
|
|
73
82
|
}
|
|
83
|
+
|
|
84
|
+
export interface CustomToken {
|
|
85
|
+
type: "custom";
|
|
86
|
+
identifier: string;
|
|
87
|
+
raw: string;
|
|
88
|
+
text: string;
|
|
89
|
+
tokens?: Token[];
|
|
90
|
+
args?: Record<string, unknown>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export type Token =
|
|
94
|
+
| marked.Tokens.Space
|
|
95
|
+
| marked.Tokens.Code
|
|
96
|
+
| marked.Tokens.Heading
|
|
97
|
+
| marked.Tokens.Table
|
|
98
|
+
| marked.Tokens.Hr
|
|
99
|
+
| marked.Tokens.Blockquote
|
|
100
|
+
| marked.Tokens.List
|
|
101
|
+
| marked.Tokens.ListItem
|
|
102
|
+
| marked.Tokens.Paragraph
|
|
103
|
+
| marked.Tokens.HTML
|
|
104
|
+
| marked.Tokens.Text
|
|
105
|
+
| marked.Tokens.Def
|
|
106
|
+
| marked.Tokens.Escape
|
|
107
|
+
| marked.Tokens.Tag
|
|
108
|
+
| marked.Tokens.Image
|
|
109
|
+
| marked.Tokens.Link
|
|
110
|
+
| marked.Tokens.Strong
|
|
111
|
+
| marked.Tokens.Em
|
|
112
|
+
| marked.Tokens.Codespan
|
|
113
|
+
| marked.Tokens.Br
|
|
114
|
+
| marked.Tokens.Del
|
|
115
|
+
| CustomToken;
|