react-native-marked 1.6.13 → 2.0.0-rc.0

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.
Files changed (96) hide show
  1. package/README.md +64 -8
  2. package/dist/commonjs/components/MDImage.js.map +1 -1
  3. package/dist/commonjs/index.js +8 -0
  4. package/dist/commonjs/index.js.map +1 -1
  5. package/dist/commonjs/lib/Markdown.js +5 -1
  6. package/dist/commonjs/lib/Markdown.js.map +1 -1
  7. package/dist/commonjs/lib/Parser.js +84 -80
  8. package/dist/commonjs/lib/Parser.js.map +1 -1
  9. package/dist/commonjs/lib/Renderer.js +109 -47
  10. package/dist/commonjs/lib/Renderer.js.map +1 -1
  11. package/dist/commonjs/lib/__perf__/Markdown.perf-test.js +196 -0
  12. package/dist/commonjs/lib/__perf__/Markdown.perf-test.js.map +1 -0
  13. package/dist/commonjs/lib/types.js.map +1 -1
  14. package/dist/commonjs/theme/colors.js.map +1 -1
  15. package/dist/commonjs/theme/spacing.js.map +1 -1
  16. package/dist/commonjs/theme/styles.js.map +1 -1
  17. package/dist/commonjs/theme/types.js.map +1 -1
  18. package/dist/commonjs/utils/handlers.js.map +1 -1
  19. package/dist/commonjs/utils/url.js.map +1 -1
  20. package/dist/module/components/MDImage.js.map +1 -1
  21. package/dist/module/index.js +2 -0
  22. package/dist/module/index.js.map +1 -1
  23. package/dist/module/lib/Markdown.js +4 -1
  24. package/dist/module/lib/Markdown.js.map +1 -1
  25. package/dist/module/lib/Parser.js +84 -77
  26. package/dist/module/lib/Parser.js.map +1 -1
  27. package/dist/module/lib/Renderer.js +108 -46
  28. package/dist/module/lib/Renderer.js.map +1 -1
  29. package/dist/module/lib/__perf__/Markdown.perf-test.js +188 -0
  30. package/dist/module/lib/__perf__/Markdown.perf-test.js.map +1 -0
  31. package/dist/module/lib/types.js.map +1 -1
  32. package/dist/module/theme/colors.js.map +1 -1
  33. package/dist/module/theme/spacing.js.map +1 -1
  34. package/dist/module/theme/styles.js.map +1 -1
  35. package/dist/module/theme/types.js.map +1 -1
  36. package/dist/module/utils/handlers.js.map +1 -1
  37. package/dist/module/utils/url.js.map +1 -1
  38. package/dist/typescript/{src/components → components}/MDImage.d.ts +1 -1
  39. package/dist/typescript/components/MDImage.d.ts.map +1 -0
  40. package/dist/typescript/index.d.ts +7 -0
  41. package/dist/typescript/index.d.ts.map +1 -0
  42. package/dist/typescript/{src/lib → lib}/Markdown.d.ts +1 -1
  43. package/dist/typescript/lib/Markdown.d.ts.map +1 -0
  44. package/dist/typescript/lib/Parser.d.ts.map +1 -0
  45. package/dist/typescript/lib/Renderer.d.ts +32 -0
  46. package/dist/typescript/lib/Renderer.d.ts.map +1 -0
  47. package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts +2 -0
  48. package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts.map +1 -0
  49. package/dist/typescript/lib/types.d.ts +34 -0
  50. package/dist/typescript/lib/types.d.ts.map +1 -0
  51. package/dist/typescript/theme/colors.d.ts.map +1 -0
  52. package/dist/typescript/theme/spacing.d.ts.map +1 -0
  53. package/dist/typescript/{src/theme → theme}/styles.d.ts +1 -1
  54. package/dist/typescript/theme/styles.d.ts.map +1 -0
  55. package/dist/typescript/theme/types.d.ts.map +1 -0
  56. package/dist/typescript/utils/handlers.d.ts.map +1 -0
  57. package/dist/typescript/utils/url.d.ts.map +1 -0
  58. package/package.json +20 -20
  59. package/src/components/MDImage.tsx +1 -1
  60. package/src/index.ts +8 -0
  61. package/src/lib/Markdown.tsx +10 -3
  62. package/src/lib/Parser.tsx +50 -64
  63. package/src/lib/Renderer.tsx +139 -64
  64. package/src/lib/__perf__/Markdown.perf-test.tsx +186 -0
  65. package/src/lib/types.ts +48 -2
  66. package/src/theme/styles.ts +2 -2
  67. package/dist/commonjs/utils/string.js +0 -17
  68. package/dist/commonjs/utils/string.js.map +0 -1
  69. package/dist/module/utils/string.js +0 -8
  70. package/dist/module/utils/string.js.map +0 -1
  71. package/dist/typescript/dangerfile.d.ts +0 -2
  72. package/dist/typescript/dangerfile.d.ts.map +0 -1
  73. package/dist/typescript/src/components/MDImage.d.ts.map +0 -1
  74. package/dist/typescript/src/index.d.ts +0 -3
  75. package/dist/typescript/src/index.d.ts.map +0 -1
  76. package/dist/typescript/src/lib/Markdown.d.ts.map +0 -1
  77. package/dist/typescript/src/lib/Parser.d.ts.map +0 -1
  78. package/dist/typescript/src/lib/Renderer.d.ts +0 -14
  79. package/dist/typescript/src/lib/Renderer.d.ts.map +0 -1
  80. package/dist/typescript/src/lib/types.d.ts +0 -13
  81. package/dist/typescript/src/lib/types.d.ts.map +0 -1
  82. package/dist/typescript/src/theme/colors.d.ts.map +0 -1
  83. package/dist/typescript/src/theme/spacing.d.ts.map +0 -1
  84. package/dist/typescript/src/theme/styles.d.ts.map +0 -1
  85. package/dist/typescript/src/theme/types.d.ts.map +0 -1
  86. package/dist/typescript/src/utils/handlers.d.ts.map +0 -1
  87. package/dist/typescript/src/utils/string.d.ts +0 -6
  88. package/dist/typescript/src/utils/string.d.ts.map +0 -1
  89. package/dist/typescript/src/utils/url.d.ts.map +0 -1
  90. package/src/utils/string.ts +0 -7
  91. /package/dist/typescript/{src/lib → lib}/Parser.d.ts +0 -0
  92. /package/dist/typescript/{src/theme → theme}/colors.d.ts +0 -0
  93. /package/dist/typescript/{src/theme → theme}/spacing.d.ts +0 -0
  94. /package/dist/typescript/{src/theme → theme}/types.d.ts +0 -0
  95. /package/dist/typescript/{src/utils → utils}/handlers.d.ts +0 -0
  96. /package/dist/typescript/{src/utils → utils}/url.d.ts +0 -0
package/README.md CHANGED
@@ -6,7 +6,8 @@
6
6
  [![npm](https://img.shields.io/npm/v/react-native-marked)](https://www.npmjs.com/package/react-native-marked)
7
7
  [![npm](https://img.shields.io/npm/dw/react-native-marked)](https://www.npmjs.com/package/react-native-marked)
8
8
 
9
- Markdown renderer for React Native powered by [marked.js](https://marked.js.org/) with built-in theming support
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
- ```jsx
20
- import * as React from 'react';
21
- import Markdown from 'react-native-marked';
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/4ef070931b7d309a7490c41e45129e12525d12d9/src/theme/types.ts#L3) | true |
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/6eba804c617099ffb574aa97c57a71ea3e0184fb/src/theme/types.ts#L28) | true |
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 repository and the development workflow.
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 [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
142
+ Made with
143
+ [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
88
144
 
89
145
  ## Built with
90
146
 
@@ -1 +1 @@
1
- {"version":3,"names":["MDImage","uri","alt","style","useEffect","Image","prefetch","undefined","memo"],"sourceRoot":"../../src","sources":["MDImage.tsx"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAQA,MAAMA,OAAO,GAAG,QAAuC;EAAA,IAAtC;IAAEC,GAAF;IAAOC,GAAP;IAAYC;EAAZ,CAAsC;EACtD,IAAAC,gBAAA,EAAU,MAAM;IACfC,kBAAA,CAAMC,QAAN,CAAeL,GAAf;EACA,CAFD,EAEG,CAACA,GAAD,CAFH;EAIA,oBACC,6BAAC,4BAAD;IACC,iBAAiB,EAAC,OADnB;IAEC,kBAAkB,EAAEC,GAAG,IAAI,OAF5B;IAGC,iBAAiB,EAAEK,SAHpB;IAIC,MAAM,EAAE;MAAEN;IAAF,CAJT;IAKC,UAAU,EAAC,OALZ;IAMC,KAAK,EAAEE;EANR,EADD;AAUA,CAfD;;4BAiBe,IAAAK,WAAA,EAAKR,OAAL,C"}
1
+ {"version":3,"names":["MDImage","uri","alt","style","useEffect","Image","prefetch","undefined","memo"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAQA,MAAMA,OAAO,GAAG,QAAuC;EAAA,IAAtC;IAAEC,GAAF;IAAOC,GAAP;IAAYC;EAAZ,CAAsC;EACtD,IAAAC,gBAAA,EAAU,MAAM;IACfC,kBAAA,CAAMC,QAAN,CAAeL,GAAf;EACA,CAFD,EAEG,CAACA,GAAD,CAFH;EAIA,oBACC,6BAAC,4BAAD;IACC,iBAAiB,EAAC,OADnB;IAEC,kBAAkB,EAAEC,GAAG,IAAI,OAF5B;IAGC,iBAAiB,EAAEK,SAHpB;IAIC,MAAM,EAAE;MAAEN;IAAF,CAJT;IAKC,UAAU,EAAC,OALZ;IAMC,KAAK,EAAEE;EANR,EADD;AAUA,CAfD;;4BAiBe,IAAAK,WAAA,EAAKR,OAAL,C"}
@@ -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":";;;;;;;AAAA;;;;eAEeA,iB"}
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":["Markdown.tsx"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,MAAMA,QAAQ,GAAG,QAMI;EAAA,IANH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,MAAM,EAAEC;EALS,CAMG;EACpB,MAAMC,WAAW,GAAG,IAAAC,2BAAA,GAApB;EACA,MAAMH,MAAM,GAAG,IAAAI,cAAA,EACd,MAAM,IAAAC,eAAA,EAAUJ,UAAV,EAAsBC,WAAtB,EAAmCJ,KAAnC,CADQ,EAEd,CAACG,UAAD,EAAaC,WAAb,EAA0BJ,KAA1B,CAFc,CAAf;EAKA,MAAMQ,MAAM,GAAG,IAAAF,cAAA,EACd,MAAM,IAAIG,eAAJ,CAAW;IAAEP,MAAF;IAAUD;EAAV,CAAX,CADQ,EAEd,CAACC,MAAD,EAASD,OAAT,CAFc,CAAf;EAKA,MAAMS,UAAU,GAAG,IAAAJ,cAAA,EAAQ,MAAM;IAChC,MAAMK,MAAM,GAAGC,cAAA,CAAOC,KAAP,CAAaf,KAAb,EAAoB;MAAEgB,MAAM,EAAE,KAAV;MAAiBC,GAAG,EAAE;IAAtB,CAApB,CAAf;;IACA,OAAOP,MAAM,CAACQ,KAAP,CAAaL,MAAb,CAAP;EACA,CAHkB,EAGhB,CAACb,KAAD,EAAQI,MAAR,EAAgBD,OAAhB,CAHgB,CAAnB;EAKA,MAAMgB,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,EAAElB,MAAM,CAACsB;EALf,GAMKzB,aANL;IAOC,IAAI,EAAEW,UAPP;IAQC,UAAU,EAAEO;EARb,GADD;AAYA,CA5CD;;4BA8Ce,IAAAQ,WAAA,EAAK5B,QAAL,C"}
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,69 +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
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
10
  class Parser {
17
11
  constructor(options) {
18
- _defineProperty(this, "renderer", void 0);
19
-
20
- _defineProperty(this, "styles", void 0);
21
-
22
- _defineProperty(this, "headingStylesMap", void 0);
23
-
24
- _defineProperty(this, "baseUrl", void 0);
25
-
26
- _defineProperty(this, "getNormalizedSiblingNodesForBlockAndInlineTokens", (tokens, textStyle) => {
27
- let tokenRenderQueue = [];
28
- const siblingNodes = [];
29
- tokens.forEach(t => {
30
- /**
31
- * To avoid inlining images
32
- * Currently supports images, link images
33
- * Note: to be extend for other token types
34
- */
35
- if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
36
- // Render existing inline tokens in the queue
37
- const parsed = this._parse(tokenRenderQueue);
38
-
39
- if (parsed.length > 0) {
40
- siblingNodes.push(this.renderer.getTextNode(parsed, textStyle));
41
- } // Render the current block token
42
-
43
-
44
- if (t.type === "image") {
45
- siblingNodes.push(this._parseToken(t));
46
- } else if (t.type === "link") {
47
- const imageToken = t.tokens[0];
48
- const href = (0, _url.getValidURL)(this.baseUrl, t.href);
49
- siblingNodes.push(this.renderer.getImageLinkNode(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
50
- }
51
-
52
- tokenRenderQueue = [];
53
- return;
54
- }
55
-
56
- tokenRenderQueue = [...tokenRenderQueue, t];
57
- });
58
- /* Remaining temp tokens if any */
59
-
60
- if (tokenRenderQueue.length > 0) {
61
- siblingNodes.push(this.renderer.getTextNode(this._parse(tokenRenderQueue), {}));
62
- }
63
-
64
- return siblingNodes;
65
- });
66
-
67
12
  this.styles = { ...options.styles
68
13
  };
69
14
  this.baseUrl = options.baseUrl ?? "";
70
- this.renderer = new _Renderer.default();
15
+ this.renderer = options.renderer;
71
16
  this.headingStylesMap = {
72
17
  1: this.styles.h1,
73
18
  2: this.styles.h2,
@@ -98,54 +43,59 @@ class Parser {
98
43
 
99
44
  case "paragraph":
100
45
  {
101
- const paragraphChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
102
- return this.renderer.getViewNode(paragraphChildren, this.styles.paragraph);
46
+ const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
47
+ return this.renderer.paragraph(children, this.styles.paragraph);
103
48
  }
104
49
 
105
50
  case "blockquote":
106
51
  {
107
- return this.renderer.getBlockquoteNode(this._parse(token.tokens), this.styles.blockquote);
52
+ const children = this.parse(token.tokens);
53
+ return this.renderer.blockquote(children, this.styles.blockquote);
108
54
  }
109
55
 
110
56
  case "heading":
111
57
  {
112
58
  const styles = this.headingStylesMap[token.depth];
113
- return this.renderer.getTextNode(this._parse(token.tokens, styles), styles);
59
+
60
+ const children = this._parse(token.tokens, styles);
61
+
62
+ return this.renderer.heading(children, styles);
114
63
  }
115
64
 
116
65
  case "code":
117
66
  {
118
- return this.renderer.getCodeBlockNode(token.text, this.styles.code, this.styles.em);
67
+ return this.renderer.code(token.text, token.lang, this.styles.code, this.styles.em);
119
68
  }
120
69
 
121
70
  case "hr":
122
71
  {
123
- return this.renderer.getViewNode(null, this.styles.hr);
72
+ return this.renderer.hr(this.styles.hr);
124
73
  }
125
74
 
126
75
  case "list":
127
76
  {
128
77
  const li = token.items.map(item => {
129
- const children = item.tokens.map(cItem => {
78
+ const children = item.tokens.flatMap(cItem => {
130
79
  if (cItem.type === "text") {
131
80
  /* getViewNode since tokens could contain a block like elements (i.e. img) */
132
81
  const childTokens = cItem.tokens || [];
133
- const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
134
- return this.renderer.getViewNode(listChildren, this.styles.li);
82
+ const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li); // return this.renderer.listItem(listChildren, this.styles.li);
83
+
84
+ return listChildren;
135
85
  }
136
86
  /* Parse the nested token */
137
87
 
138
88
 
139
89
  return this._parseToken(cItem);
140
90
  });
141
- return this.renderer.getViewNode(children, this.styles.li);
91
+ return this.renderer.listItem(children, this.styles.li);
142
92
  });
143
- return this.renderer.getListNode(token.ordered, li, this.styles.list, this.styles.li);
93
+ return this.renderer.list(token.ordered, li, this.styles.list, this.styles.li);
144
94
  }
145
95
 
146
96
  case "escape":
147
97
  {
148
- return this.renderer.getTextNode(token.text, { ...this.styles.text,
98
+ return this.renderer.escape(token.text, { ...this.styles.text,
149
99
  ...styles
150
100
  });
151
101
  }
@@ -159,12 +109,15 @@ class Parser {
159
109
 
160
110
  };
161
111
  const href = (0, _url.getValidURL)(this.baseUrl, token.href);
162
- return this.renderer.getTextLinkNode(this._parse(token.tokens, linkStyle), href, linkStyle);
112
+
113
+ const children = this._parse(token.tokens, linkStyle);
114
+
115
+ return this.renderer.link(children, href, linkStyle);
163
116
  }
164
117
 
165
118
  case "image":
166
119
  {
167
- return this.renderer.getImageNode(token.href, token.text || token.title, this.styles.image);
120
+ return this.renderer.image(token.href, token.text || token.title, this.styles.image);
168
121
  }
169
122
 
170
123
  case "strong":
@@ -172,7 +125,10 @@ class Parser {
172
125
  const boldStyle = { ...this.styles.strong,
173
126
  ...styles
174
127
  };
175
- return this.renderer.getTextNode(this._parse(token.tokens, boldStyle), boldStyle);
128
+
129
+ const children = this._parse(token.tokens, boldStyle);
130
+
131
+ return this.renderer.strong(children, boldStyle);
176
132
  }
177
133
 
178
134
  case "em":
@@ -180,19 +136,22 @@ class Parser {
180
136
  const italicStyle = { ...this.styles.em,
181
137
  ...styles
182
138
  };
183
- return this.renderer.getTextNode(this._parse(token.tokens, italicStyle), italicStyle);
139
+
140
+ const children = this._parse(token.tokens, italicStyle);
141
+
142
+ return this.renderer.em(children, italicStyle);
184
143
  }
185
144
 
186
145
  case "codespan":
187
146
  {
188
- return this.renderer.getTextNode(token.text, { ...this.styles.codespan,
147
+ return this.renderer.codespan(token.text, { ...this.styles.codespan,
189
148
  ...styles
190
149
  });
191
150
  }
192
151
 
193
152
  case "br":
194
153
  {
195
- return this.renderer.getTextNode("\n", {});
154
+ return this.renderer.br();
196
155
  }
197
156
 
198
157
  case "del":
@@ -200,17 +159,21 @@ class Parser {
200
159
  const strikethroughStyle = { ...this.styles.strikethrough,
201
160
  ...styles
202
161
  };
203
- return this.renderer.getTextNode(this._parse(token.tokens, strikethroughStyle), strikethroughStyle);
162
+
163
+ const children = this._parse(token.tokens, strikethroughStyle);
164
+
165
+ return this.renderer.del(children, strikethroughStyle);
204
166
  }
205
167
 
206
168
  case "text":
169
+ return this.renderer.text(token.raw, { ...this.styles.text,
170
+ ...styles
171
+ });
172
+
207
173
  case "html":
208
174
  {
209
- if (token.type === "html") {
210
- console.warn("react-native-marked: rendering html from markdown is not supported");
211
- }
212
-
213
- 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,
214
177
  ...styles
215
178
  });
216
179
  }
@@ -223,6 +186,47 @@ class Parser {
223
186
  }
224
187
  }
225
188
 
189
+ getNormalizedSiblingNodesForBlockAndInlineTokens(tokens, textStyle) {
190
+ let tokenRenderQueue = [];
191
+ const siblingNodes = [];
192
+ tokens.forEach(t => {
193
+ /**
194
+ * To avoid inlining images
195
+ * Currently supports images, link images
196
+ * Note: to be extend for other token types
197
+ */
198
+ if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
199
+ // Render existing inline tokens in the queue
200
+ const parsed = this.parse(tokenRenderQueue);
201
+
202
+ if (parsed.length > 0) {
203
+ siblingNodes.push(this.renderer.text(parsed, textStyle));
204
+ } // Render the current block token
205
+
206
+
207
+ if (t.type === "image") {
208
+ siblingNodes.push(this._parseToken(t));
209
+ } else if (t.type === "link") {
210
+ const imageToken = t.tokens[0];
211
+ const href = (0, _url.getValidURL)(this.baseUrl, t.href);
212
+ siblingNodes.push(this.renderer.linkImage(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
213
+ }
214
+
215
+ tokenRenderQueue = [];
216
+ return;
217
+ }
218
+
219
+ tokenRenderQueue = [...tokenRenderQueue, t];
220
+ });
221
+ /* Remaining temp tokens if any */
222
+
223
+ if (tokenRenderQueue.length > 0) {
224
+ siblingNodes.push(this.renderer.text(this.parse(tokenRenderQueue), {}));
225
+ }
226
+
227
+ return siblingNodes;
228
+ }
229
+
226
230
  }
227
231
 
228
232
  var _default = Parser;
@@ -1 +1 @@
1
- {"version":3,"names":["Parser","constructor","options","tokens","textStyle","tokenRenderQueue","siblingNodes","forEach","t","type","parsed","_parse","length","push","renderer","getTextNode","_parseToken","imageToken","href","getValidURL","baseUrl","getImageLinkNode","text","title","styles","image","Renderer","headingStylesMap","h1","h2","h3","h4","h5","h6","parse","elements","map","token","filter","element","paragraphChildren","getNormalizedSiblingNodesForBlockAndInlineTokens","getViewNode","paragraph","getBlockquoteNode","blockquote","depth","getCodeBlockNode","code","em","hr","li","items","item","children","cItem","childTokens","listChildren","getListNode","ordered","list","linkStyle","link","getTextLinkNode","getImageNode","boldStyle","strong","italicStyle","codespan","strikethroughStyle","strikethrough","console","warn","raw"],"sourceRoot":"../../src","sources":["Parser.tsx"],"mappings":"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"}
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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"}