react-native-marked 1.6.14 → 2.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 +64 -8
- package/dist/commonjs/index.js +8 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/Markdown.js +5 -1
- package/dist/commonjs/lib/Markdown.js.map +1 -1
- package/dist/commonjs/lib/Parser.js +50 -35
- package/dist/commonjs/lib/Parser.js.map +1 -1
- package/dist/commonjs/lib/Renderer.js +113 -45
- package/dist/commonjs/lib/Renderer.js.map +1 -1
- package/dist/commonjs/lib/__perf__/Markdown.perf-test.js +196 -0
- package/dist/commonjs/lib/__perf__/Markdown.perf-test.js.map +1 -0
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/Markdown.js +4 -1
- package/dist/module/lib/Markdown.js.map +1 -1
- package/dist/module/lib/Parser.js +50 -32
- package/dist/module/lib/Parser.js.map +1 -1
- package/dist/module/lib/Renderer.js +112 -44
- package/dist/module/lib/Renderer.js.map +1 -1
- package/dist/module/lib/__perf__/Markdown.perf-test.js +188 -0
- package/dist/module/lib/__perf__/Markdown.perf-test.js.map +1 -0
- package/dist/typescript/components/MDImage.d.ts.map +1 -0
- package/dist/typescript/index.d.ts +7 -0
- package/dist/typescript/index.d.ts.map +1 -0
- package/dist/typescript/{src/lib → lib}/Markdown.d.ts +1 -1
- package/dist/typescript/lib/Markdown.d.ts.map +1 -0
- package/dist/typescript/lib/Parser.d.ts.map +1 -0
- package/dist/typescript/lib/Renderer.d.ts +32 -0
- package/dist/typescript/lib/Renderer.d.ts.map +1 -0
- package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts +2 -0
- package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts.map +1 -0
- package/dist/typescript/lib/types.d.ts +34 -0
- package/dist/typescript/lib/types.d.ts.map +1 -0
- package/dist/typescript/theme/colors.d.ts.map +1 -0
- package/dist/typescript/theme/spacing.d.ts.map +1 -0
- package/dist/typescript/theme/styles.d.ts.map +1 -0
- package/dist/typescript/theme/types.d.ts.map +1 -0
- package/dist/typescript/utils/handlers.d.ts.map +1 -0
- package/dist/typescript/utils/url.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +8 -0
- package/src/lib/Markdown.tsx +8 -1
- package/src/lib/Parser.tsx +50 -64
- package/src/lib/Renderer.tsx +135 -60
- package/src/lib/__perf__/Markdown.perf-test.tsx +186 -0
- package/src/lib/types.ts +48 -2
- package/dist/commonjs/utils/string.js +0 -17
- package/dist/commonjs/utils/string.js.map +0 -1
- package/dist/module/utils/string.js +0 -8
- package/dist/module/utils/string.js.map +0 -1
- package/dist/typescript/dangerfile.d.ts +0 -2
- package/dist/typescript/dangerfile.d.ts.map +0 -1
- package/dist/typescript/src/components/MDImage.d.ts.map +0 -1
- package/dist/typescript/src/index.d.ts +0 -3
- package/dist/typescript/src/index.d.ts.map +0 -1
- package/dist/typescript/src/lib/Markdown.d.ts.map +0 -1
- package/dist/typescript/src/lib/Parser.d.ts.map +0 -1
- package/dist/typescript/src/lib/Renderer.d.ts +0 -14
- package/dist/typescript/src/lib/Renderer.d.ts.map +0 -1
- package/dist/typescript/src/lib/types.d.ts +0 -13
- package/dist/typescript/src/lib/types.d.ts.map +0 -1
- package/dist/typescript/src/theme/colors.d.ts.map +0 -1
- package/dist/typescript/src/theme/spacing.d.ts.map +0 -1
- package/dist/typescript/src/theme/styles.d.ts.map +0 -1
- package/dist/typescript/src/theme/types.d.ts.map +0 -1
- package/dist/typescript/src/utils/handlers.d.ts.map +0 -1
- package/dist/typescript/src/utils/string.d.ts +0 -6
- package/dist/typescript/src/utils/string.d.ts.map +0 -1
- package/dist/typescript/src/utils/url.d.ts.map +0 -1
- package/src/utils/string.ts +0 -7
- /package/dist/typescript/{src/components → components}/MDImage.d.ts +0 -0
- /package/dist/typescript/{src/lib → lib}/Parser.d.ts +0 -0
- /package/dist/typescript/{src/theme → theme}/colors.d.ts +0 -0
- /package/dist/typescript/{src/theme → theme}/spacing.d.ts +0 -0
- /package/dist/typescript/{src/theme → theme}/styles.d.ts +0 -0
- /package/dist/typescript/{src/theme → theme}/types.d.ts +0 -0
- /package/dist/typescript/{src/utils → utils}/handlers.d.ts +0 -0
- /package/dist/typescript/{src/utils → utils}/url.d.ts +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
[](https://www.npmjs.com/package/react-native-marked)
|
|
7
7
|
[](https://www.npmjs.com/package/react-native-marked)
|
|
8
8
|
|
|
9
|
-
Markdown renderer for React Native powered by
|
|
9
|
+
Markdown renderer for React Native powered by
|
|
10
|
+
[marked.js](https://marked.js.org/) with built-in theming support
|
|
10
11
|
|
|
11
12
|
## Installation
|
|
12
13
|
|
|
@@ -16,9 +17,9 @@ yarn add react-native-marked
|
|
|
16
17
|
|
|
17
18
|
## Usage
|
|
18
19
|
|
|
19
|
-
```
|
|
20
|
-
import * as React from
|
|
21
|
-
import Markdown from
|
|
20
|
+
```tsx
|
|
21
|
+
import * as React from "react";
|
|
22
|
+
import Markdown from "react-native-marked";
|
|
22
23
|
|
|
23
24
|
const ExampleComponent = () => {
|
|
24
25
|
return (
|
|
@@ -45,9 +46,10 @@ export default ExampleComponent;
|
|
|
45
46
|
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- |
|
|
46
47
|
| value | Markdown value | string | false |
|
|
47
48
|
| flatListProps | Props for customizing the underlying FlatList used | `Omit<FlatListProps<ReactNode>, 'data' \| 'renderItem' \| 'horizontal'>`<br><br><br>(`'data'`, `'renderItem'`, and `'horizontal'` props are omitted and cannot be overridden.) | true |
|
|
48
|
-
| styles | Styles for parsed components | [MarkedStyles](https://github.com/gmsgowtham/react-native-marked/blob/
|
|
49
|
-
| 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/
|
|
49
|
+
| styles | Styles for parsed components | [MarkedStyles](https://github.com/gmsgowtham/react-native-marked/blob/main/src/theme/types.ts#L5) | true |
|
|
50
|
+
| 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 |
|
|
50
51
|
| baseUrl | A prefix url for any relative link | string | true |
|
|
52
|
+
| renderer | Custom component Renderer | [RendererInterface](https://github.com/gmsgowtham/react-native-marked/blob/main/src/lib/types.ts#L25) | true |
|
|
51
53
|
|
|
52
54
|
## Supported elements
|
|
53
55
|
|
|
@@ -68,6 +70,58 @@ Ref: [CommonMark](https://commonmark.org/help/)
|
|
|
68
70
|
|
|
69
71
|
> HTML will be treated as plain text
|
|
70
72
|
|
|
73
|
+
## Using custom components
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import React, { ReactNode } from "react";
|
|
77
|
+
import { Text } from "react-native";
|
|
78
|
+
import type { ImageStyle, TextStyle } from "react-native";
|
|
79
|
+
import Markdown, { Renderer } from "react-native-marked";
|
|
80
|
+
import type { RendererInterface } from "react-native-marked";
|
|
81
|
+
import FastImage from "react-native-fast-image";
|
|
82
|
+
|
|
83
|
+
class CustomRenderer extends Renderer implements RendererInterface {
|
|
84
|
+
constructor() {
|
|
85
|
+
super();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
codespan(text: string, _styles?: TextStyle): ReactNode {
|
|
89
|
+
return (
|
|
90
|
+
<Text key={this.getKey()} style={{ backgroundColor: "#ff0000" }}>
|
|
91
|
+
{text}
|
|
92
|
+
</Text>
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
image(uri: string, _alt?: string, _style?: ImageStyle): ReactNode {
|
|
97
|
+
return (
|
|
98
|
+
<FastImage
|
|
99
|
+
key={this.getKey()}
|
|
100
|
+
style={{ width: 200, height: 200 }}
|
|
101
|
+
source={{ uri: uri }}
|
|
102
|
+
resizeMode={FastImage.resizeMode.contain}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const renderer = new CustomRenderer();
|
|
109
|
+
|
|
110
|
+
const ExampleComponent = () => {
|
|
111
|
+
return (
|
|
112
|
+
<Markdown
|
|
113
|
+
value={"`Hello world`"}
|
|
114
|
+
flatListProps={{
|
|
115
|
+
initialNumToRender: 8,
|
|
116
|
+
}}
|
|
117
|
+
renderer={renderer}
|
|
118
|
+
/>
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default ExampleComponent;
|
|
123
|
+
```
|
|
124
|
+
|
|
71
125
|
## Screenshots
|
|
72
126
|
|
|
73
127
|
| Dark Theme | Light Theme |
|
|
@@ -76,7 +130,8 @@ Ref: [CommonMark](https://commonmark.org/help/)
|
|
|
76
130
|
|
|
77
131
|
## Contributing
|
|
78
132
|
|
|
79
|
-
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the
|
|
133
|
+
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the
|
|
134
|
+
repository and the development workflow.
|
|
80
135
|
|
|
81
136
|
## License
|
|
82
137
|
|
|
@@ -84,7 +139,8 @@ MIT
|
|
|
84
139
|
|
|
85
140
|
---
|
|
86
141
|
|
|
87
|
-
Made with
|
|
142
|
+
Made with
|
|
143
|
+
[create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
|
88
144
|
|
|
89
145
|
## Built with
|
|
90
146
|
|
package/dist/commonjs/index.js
CHANGED
|
@@ -3,10 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "Renderer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Renderer.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
exports.default = void 0;
|
|
7
13
|
|
|
8
14
|
var _Markdown = _interopRequireDefault(require("./lib/Markdown"));
|
|
9
15
|
|
|
16
|
+
var _Renderer = _interopRequireDefault(require("./lib/Renderer"));
|
|
17
|
+
|
|
10
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
19
|
|
|
12
20
|
var _default = _Markdown.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Markdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Markdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;eASeA,iB"}
|
|
@@ -13,6 +13,8 @@ var _marked = require("marked");
|
|
|
13
13
|
|
|
14
14
|
var _Parser = _interopRequireDefault(require("./Parser"));
|
|
15
15
|
|
|
16
|
+
var _Renderer = _interopRequireDefault(require("./Renderer"));
|
|
17
|
+
|
|
16
18
|
var _styles = _interopRequireDefault(require("../theme/styles"));
|
|
17
19
|
|
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -29,13 +31,15 @@ const Markdown = _ref => {
|
|
|
29
31
|
flatListProps,
|
|
30
32
|
theme,
|
|
31
33
|
baseUrl,
|
|
34
|
+
renderer,
|
|
32
35
|
styles: userStyles
|
|
33
36
|
} = _ref;
|
|
34
37
|
const colorScheme = (0, _reactNative.useColorScheme)();
|
|
35
38
|
const styles = (0, _react.useMemo)(() => (0, _styles.default)(userStyles, colorScheme, theme), [userStyles, colorScheme, theme]);
|
|
36
39
|
const parser = (0, _react.useMemo)(() => new _Parser.default({
|
|
37
40
|
styles,
|
|
38
|
-
baseUrl
|
|
41
|
+
baseUrl,
|
|
42
|
+
renderer: renderer ?? new _Renderer.default()
|
|
39
43
|
}), [styles, baseUrl]);
|
|
40
44
|
const rnElements = (0, _react.useMemo)(() => {
|
|
41
45
|
const tokens = _marked.marked.lexer(value, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Markdown","value","flatListProps","theme","baseUrl","styles","userStyles","colorScheme","useColorScheme","useMemo","getStyles","parser","Parser","rnElements","tokens","marked","lexer","mangle","gfm","parse","renderItem","useCallback","item","keyExtractor","_","index","toString","container","memo"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,MAAMA,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"names":["Markdown","value","flatListProps","theme","baseUrl","renderer","styles","userStyles","colorScheme","useColorScheme","useMemo","getStyles","parser","Parser","Renderer","rnElements","tokens","marked","lexer","mangle","gfm","parse","renderItem","useCallback","item","keyExtractor","_","index","toString","container","memo"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,MAAMA,QAAQ,GAAG,QAOI;EAAA,IAPH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,QALiB;IAMjBC,MAAM,EAAEC;EANS,CAOG;EACpB,MAAMC,WAAW,GAAG,IAAAC,2BAAA,GAApB;EACA,MAAMH,MAAM,GAAG,IAAAI,cAAA,EACd,MAAM,IAAAC,eAAA,EAAUJ,UAAV,EAAsBC,WAAtB,EAAmCL,KAAnC,CADQ,EAEd,CAACI,UAAD,EAAaC,WAAb,EAA0BL,KAA1B,CAFc,CAAf;EAKA,MAAMS,MAAM,GAAG,IAAAF,cAAA,EACd,MACC,IAAIG,eAAJ,CAAW;IACVP,MADU;IAEVF,OAFU;IAGVC,QAAQ,EAAEA,QAAQ,IAAI,IAAIS,iBAAJ;EAHZ,CAAX,CAFa,EAOd,CAACR,MAAD,EAASF,OAAT,CAPc,CAAf;EAUA,MAAMW,UAAU,GAAG,IAAAL,cAAA,EAAQ,MAAM;IAChC,MAAMM,MAAM,GAAGC,cAAA,CAAOC,KAAP,CAAajB,KAAb,EAAoB;MAAEkB,MAAM,EAAE,KAAV;MAAiBC,GAAG,EAAE;IAAtB,CAApB,CAAf;;IACA,OAAOR,MAAM,CAACS,KAAP,CAAaL,MAAb,CAAP;EACA,CAHkB,EAGhB,CAACf,KAAD,EAAQK,MAAR,EAAgBF,OAAhB,CAHgB,CAAnB;EAKA,MAAMkB,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,MADtB;IAEC,YAAY,EAAEH,YAFf;IAGC,mBAAmB,EAAE,CAHtB;IAIC,kBAAkB,EAAE,CAJrB;IAKC,KAAK,EAAEnB,MAAM,CAACuB;EALf,GAMK3B,aANL;IAOC,IAAI,EAAEa,UAPP;IAQC,UAAU,EAAEO;EARb,GADD;AAYA,CAlDD;;4BAoDe,IAAAQ,WAAA,EAAK9B,QAAL,C"}
|
|
@@ -5,18 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _Renderer = _interopRequireDefault(require("./Renderer"));
|
|
9
|
-
|
|
10
8
|
var _url = require("./../utils/url");
|
|
11
9
|
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
class Parser {
|
|
15
11
|
constructor(options) {
|
|
16
12
|
this.styles = { ...options.styles
|
|
17
13
|
};
|
|
18
14
|
this.baseUrl = options.baseUrl ?? "";
|
|
19
|
-
this.renderer =
|
|
15
|
+
this.renderer = options.renderer;
|
|
20
16
|
this.headingStylesMap = {
|
|
21
17
|
1: this.styles.h1,
|
|
22
18
|
2: this.styles.h2,
|
|
@@ -47,54 +43,59 @@ class Parser {
|
|
|
47
43
|
|
|
48
44
|
case "paragraph":
|
|
49
45
|
{
|
|
50
|
-
const
|
|
51
|
-
return this.renderer.
|
|
46
|
+
const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
|
|
47
|
+
return this.renderer.paragraph(children, this.styles.paragraph);
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
case "blockquote":
|
|
55
51
|
{
|
|
56
|
-
|
|
52
|
+
const children = this.parse(token.tokens);
|
|
53
|
+
return this.renderer.blockquote(children, this.styles.blockquote);
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
case "heading":
|
|
60
57
|
{
|
|
61
58
|
const styles = this.headingStylesMap[token.depth];
|
|
62
|
-
|
|
59
|
+
|
|
60
|
+
const children = this._parse(token.tokens, styles);
|
|
61
|
+
|
|
62
|
+
return this.renderer.heading(children, styles);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
case "code":
|
|
66
66
|
{
|
|
67
|
-
return this.renderer.
|
|
67
|
+
return this.renderer.code(token.text, token.lang, this.styles.code, this.styles.em);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
case "hr":
|
|
71
71
|
{
|
|
72
|
-
return this.renderer.
|
|
72
|
+
return this.renderer.hr(this.styles.hr);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
case "list":
|
|
76
76
|
{
|
|
77
77
|
const li = token.items.map(item => {
|
|
78
|
-
const children = item.tokens.
|
|
78
|
+
const children = item.tokens.flatMap(cItem => {
|
|
79
79
|
if (cItem.type === "text") {
|
|
80
80
|
/* getViewNode since tokens could contain a block like elements (i.e. img) */
|
|
81
81
|
const childTokens = cItem.tokens || [];
|
|
82
|
-
const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
|
|
83
|
-
|
|
82
|
+
const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li); // return this.renderer.listItem(listChildren, this.styles.li);
|
|
83
|
+
|
|
84
|
+
return listChildren;
|
|
84
85
|
}
|
|
85
86
|
/* Parse the nested token */
|
|
86
87
|
|
|
87
88
|
|
|
88
89
|
return this._parseToken(cItem);
|
|
89
90
|
});
|
|
90
|
-
return this.renderer.
|
|
91
|
+
return this.renderer.listItem(children, this.styles.li);
|
|
91
92
|
});
|
|
92
|
-
return this.renderer.
|
|
93
|
+
return this.renderer.list(token.ordered, li, this.styles.list, this.styles.li);
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
case "escape":
|
|
96
97
|
{
|
|
97
|
-
return this.renderer.
|
|
98
|
+
return this.renderer.escape(token.text, { ...this.styles.text,
|
|
98
99
|
...styles
|
|
99
100
|
});
|
|
100
101
|
}
|
|
@@ -108,12 +109,15 @@ class Parser {
|
|
|
108
109
|
|
|
109
110
|
};
|
|
110
111
|
const href = (0, _url.getValidURL)(this.baseUrl, token.href);
|
|
111
|
-
|
|
112
|
+
|
|
113
|
+
const children = this._parse(token.tokens, linkStyle);
|
|
114
|
+
|
|
115
|
+
return this.renderer.link(children, href, linkStyle);
|
|
112
116
|
}
|
|
113
117
|
|
|
114
118
|
case "image":
|
|
115
119
|
{
|
|
116
|
-
return this.renderer.
|
|
120
|
+
return this.renderer.image(token.href, token.text || token.title, this.styles.image);
|
|
117
121
|
}
|
|
118
122
|
|
|
119
123
|
case "strong":
|
|
@@ -121,7 +125,10 @@ class Parser {
|
|
|
121
125
|
const boldStyle = { ...this.styles.strong,
|
|
122
126
|
...styles
|
|
123
127
|
};
|
|
124
|
-
|
|
128
|
+
|
|
129
|
+
const children = this._parse(token.tokens, boldStyle);
|
|
130
|
+
|
|
131
|
+
return this.renderer.strong(children, boldStyle);
|
|
125
132
|
}
|
|
126
133
|
|
|
127
134
|
case "em":
|
|
@@ -129,19 +136,22 @@ class Parser {
|
|
|
129
136
|
const italicStyle = { ...this.styles.em,
|
|
130
137
|
...styles
|
|
131
138
|
};
|
|
132
|
-
|
|
139
|
+
|
|
140
|
+
const children = this._parse(token.tokens, italicStyle);
|
|
141
|
+
|
|
142
|
+
return this.renderer.em(children, italicStyle);
|
|
133
143
|
}
|
|
134
144
|
|
|
135
145
|
case "codespan":
|
|
136
146
|
{
|
|
137
|
-
return this.renderer.
|
|
147
|
+
return this.renderer.codespan(token.text, { ...this.styles.codespan,
|
|
138
148
|
...styles
|
|
139
149
|
});
|
|
140
150
|
}
|
|
141
151
|
|
|
142
152
|
case "br":
|
|
143
153
|
{
|
|
144
|
-
return this.renderer.
|
|
154
|
+
return this.renderer.br();
|
|
145
155
|
}
|
|
146
156
|
|
|
147
157
|
case "del":
|
|
@@ -149,17 +159,21 @@ class Parser {
|
|
|
149
159
|
const strikethroughStyle = { ...this.styles.strikethrough,
|
|
150
160
|
...styles
|
|
151
161
|
};
|
|
152
|
-
|
|
162
|
+
|
|
163
|
+
const children = this._parse(token.tokens, strikethroughStyle);
|
|
164
|
+
|
|
165
|
+
return this.renderer.del(children, strikethroughStyle);
|
|
153
166
|
}
|
|
154
167
|
|
|
155
168
|
case "text":
|
|
169
|
+
return this.renderer.text(token.raw, { ...this.styles.text,
|
|
170
|
+
...styles
|
|
171
|
+
});
|
|
172
|
+
|
|
156
173
|
case "html":
|
|
157
174
|
{
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
return this.renderer.getTextNode(token.raw, { ...this.styles.text,
|
|
175
|
+
console.warn("react-native-marked: rendering html from markdown is not supported");
|
|
176
|
+
return this.renderer.html(token.raw, { ...this.styles.text,
|
|
163
177
|
...styles
|
|
164
178
|
});
|
|
165
179
|
}
|
|
@@ -172,7 +186,7 @@ class Parser {
|
|
|
172
186
|
}
|
|
173
187
|
}
|
|
174
188
|
|
|
175
|
-
getNormalizedSiblingNodesForBlockAndInlineTokens
|
|
189
|
+
getNormalizedSiblingNodesForBlockAndInlineTokens(tokens, textStyle) {
|
|
176
190
|
let tokenRenderQueue = [];
|
|
177
191
|
const siblingNodes = [];
|
|
178
192
|
tokens.forEach(t => {
|
|
@@ -183,10 +197,10 @@ class Parser {
|
|
|
183
197
|
*/
|
|
184
198
|
if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
|
|
185
199
|
// Render existing inline tokens in the queue
|
|
186
|
-
const parsed = this.
|
|
200
|
+
const parsed = this.parse(tokenRenderQueue);
|
|
187
201
|
|
|
188
202
|
if (parsed.length > 0) {
|
|
189
|
-
siblingNodes.push(this.renderer.
|
|
203
|
+
siblingNodes.push(this.renderer.text(parsed, textStyle));
|
|
190
204
|
} // Render the current block token
|
|
191
205
|
|
|
192
206
|
|
|
@@ -195,7 +209,7 @@ class Parser {
|
|
|
195
209
|
} else if (t.type === "link") {
|
|
196
210
|
const imageToken = t.tokens[0];
|
|
197
211
|
const href = (0, _url.getValidURL)(this.baseUrl, t.href);
|
|
198
|
-
siblingNodes.push(this.renderer.
|
|
212
|
+
siblingNodes.push(this.renderer.linkImage(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
|
|
199
213
|
}
|
|
200
214
|
|
|
201
215
|
tokenRenderQueue = [];
|
|
@@ -207,11 +221,12 @@ class Parser {
|
|
|
207
221
|
/* Remaining temp tokens if any */
|
|
208
222
|
|
|
209
223
|
if (tokenRenderQueue.length > 0) {
|
|
210
|
-
siblingNodes.push(this.renderer.
|
|
224
|
+
siblingNodes.push(this.renderer.text(this.parse(tokenRenderQueue), {}));
|
|
211
225
|
}
|
|
212
226
|
|
|
213
227
|
return siblingNodes;
|
|
214
|
-
}
|
|
228
|
+
}
|
|
229
|
+
|
|
215
230
|
}
|
|
216
231
|
|
|
217
232
|
var _default = Parser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Parser","constructor","options","styles","baseUrl","renderer","
|
|
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","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","linkStyle","link","href","getValidURL","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","length","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"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"}
|
|
@@ -15,80 +15,148 @@ var _disc = _interopRequireDefault(require("@jsamr/counter-style/presets/disc"))
|
|
|
15
15
|
|
|
16
16
|
var _decimal = _interopRequireDefault(require("@jsamr/counter-style/presets/decimal"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _marked = require("marked");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _MDImage = _interopRequireDefault(require("./../components/MDImage"));
|
|
21
21
|
|
|
22
22
|
var _handlers = require("../utils/handlers");
|
|
23
23
|
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
|
|
26
26
|
class Renderer {
|
|
27
|
-
|
|
28
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
29
|
-
key: (0, _string.generateRandomString)(),
|
|
30
|
-
style: styles
|
|
31
|
-
}, children);
|
|
32
|
-
};
|
|
33
|
-
getTextLinkNode = (children, href, styles) => {
|
|
34
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
35
|
-
accessibilityRole: "link",
|
|
36
|
-
accessibilityHint: "Opens in a new window",
|
|
37
|
-
key: (0, _string.generateRandomString)(),
|
|
38
|
-
onPress: (0, _handlers.onLinkPress)(href),
|
|
39
|
-
style: styles
|
|
40
|
-
}, children);
|
|
41
|
-
};
|
|
42
|
-
getImageLinkNode = (href, imageUrl, alt, style) => {
|
|
43
|
-
const imageNode = this.getImageNode(imageUrl, alt, style);
|
|
44
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableHighlight, {
|
|
45
|
-
accessibilityRole: "link",
|
|
46
|
-
accessibilityHint: "Opens in a new window",
|
|
47
|
-
onPress: (0, _handlers.onLinkPress)(href),
|
|
48
|
-
key: (0, _string.generateRandomString)()
|
|
49
|
-
}, imageNode);
|
|
50
|
-
};
|
|
27
|
+
slugPrefix = "react-native-marked-ele";
|
|
51
28
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
29
|
+
constructor() {
|
|
30
|
+
this.slugger = new _marked.Slugger();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
paragraph(children, styles) {
|
|
34
|
+
return this.getViewNode(children, styles);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
blockquote(children, styles) {
|
|
38
|
+
return this.getBlockquoteNode(children, styles);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
heading(text, styles) {
|
|
42
|
+
return this.getTextNode(text, styles);
|
|
57
43
|
}
|
|
58
44
|
|
|
59
|
-
|
|
45
|
+
code(text, _language, containerStyle, textStyle) {
|
|
60
46
|
return /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
61
47
|
horizontal: true,
|
|
62
|
-
key:
|
|
48
|
+
key: this.getKey(),
|
|
63
49
|
contentContainerStyle: containerStyle
|
|
64
50
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
65
51
|
style: textStyle
|
|
66
52
|
}, text));
|
|
67
53
|
}
|
|
68
54
|
|
|
69
|
-
|
|
70
|
-
return
|
|
71
|
-
|
|
55
|
+
hr(styles) {
|
|
56
|
+
return this.getViewNode(null, styles);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
listItem(children, styles) {
|
|
60
|
+
return this.getViewNode(children, styles);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
list(ordered, li, listStyle, textStyle) {
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_reactNativeLi.default, {
|
|
65
|
+
counterRenderer: ordered ? _decimal.default : _disc.default,
|
|
66
|
+
markerTextStyle: textStyle,
|
|
67
|
+
markerBoxStyle: listStyle,
|
|
68
|
+
key: this.getKey()
|
|
69
|
+
}, li.map(node => node));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
escape(text, styles) {
|
|
73
|
+
return this.getTextNode(text, styles);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
link(children, href, styles) {
|
|
77
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
78
|
+
accessibilityRole: "link",
|
|
79
|
+
accessibilityHint: "Opens in a new window",
|
|
80
|
+
key: this.getKey(),
|
|
81
|
+
onPress: (0, _handlers.onLinkPress)(href),
|
|
72
82
|
style: styles
|
|
73
83
|
}, children);
|
|
74
84
|
}
|
|
75
85
|
|
|
76
|
-
|
|
86
|
+
image(uri, alt, style) {
|
|
77
87
|
return /*#__PURE__*/_react.default.createElement(_MDImage.default, {
|
|
78
|
-
key:
|
|
88
|
+
key: this.getKey(),
|
|
79
89
|
uri: uri,
|
|
80
90
|
alt: alt,
|
|
81
91
|
style: style
|
|
82
92
|
});
|
|
83
93
|
}
|
|
84
94
|
|
|
85
|
-
|
|
86
|
-
return
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
strong(children, styles) {
|
|
96
|
+
return this.getTextNode(children, styles);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
em(children, styles) {
|
|
100
|
+
return this.getTextNode(children, styles);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
codespan(text, styles) {
|
|
104
|
+
return this.getTextNode(text, styles);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
br() {
|
|
108
|
+
return this.getTextNode("\n", {});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
del(children, styles) {
|
|
112
|
+
return this.getTextNode(children, styles);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
text(text, styles) {
|
|
116
|
+
return this.getTextNode(text, styles);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
html(text, styles) {
|
|
120
|
+
return this.getTextNode(text, styles);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
linkImage(href, imageUrl, alt, style) {
|
|
124
|
+
const imageNode = this.image(imageUrl, alt, style);
|
|
125
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableHighlight, {
|
|
126
|
+
accessibilityRole: "link",
|
|
127
|
+
accessibilityHint: "Opens in a new window",
|
|
128
|
+
onPress: (0, _handlers.onLinkPress)(href),
|
|
129
|
+
key: this.getKey()
|
|
130
|
+
}, imageNode);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getKey() {
|
|
134
|
+
return this.slugger.slug(this.slugPrefix);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
getTextNode(children, styles) {
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
139
|
+
key: this.getKey(),
|
|
140
|
+
style: styles
|
|
141
|
+
}, children);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
getViewNode(children, styles) {
|
|
145
|
+
{
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
147
|
+
key: this.getKey(),
|
|
148
|
+
style: styles
|
|
149
|
+
}, children);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
getBlockquoteNode(children, styles) {
|
|
154
|
+
{
|
|
155
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
156
|
+
key: this.getKey(),
|
|
157
|
+
style: styles
|
|
158
|
+
}, children);
|
|
159
|
+
}
|
|
92
160
|
}
|
|
93
161
|
|
|
94
162
|
}
|