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
@@ -1,63 +1,11 @@
1
- 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; }
2
-
3
- import Renderer from "./Renderer";
4
1
  import { getValidURL } from "./../utils/url";
5
2
 
6
3
  class Parser {
7
4
  constructor(options) {
8
- _defineProperty(this, "renderer", void 0);
9
-
10
- _defineProperty(this, "styles", void 0);
11
-
12
- _defineProperty(this, "headingStylesMap", void 0);
13
-
14
- _defineProperty(this, "baseUrl", void 0);
15
-
16
- _defineProperty(this, "getNormalizedSiblingNodesForBlockAndInlineTokens", (tokens, textStyle) => {
17
- let tokenRenderQueue = [];
18
- const siblingNodes = [];
19
- tokens.forEach(t => {
20
- /**
21
- * To avoid inlining images
22
- * Currently supports images, link images
23
- * Note: to be extend for other token types
24
- */
25
- if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
26
- // Render existing inline tokens in the queue
27
- const parsed = this._parse(tokenRenderQueue);
28
-
29
- if (parsed.length > 0) {
30
- siblingNodes.push(this.renderer.getTextNode(parsed, textStyle));
31
- } // Render the current block token
32
-
33
-
34
- if (t.type === "image") {
35
- siblingNodes.push(this._parseToken(t));
36
- } else if (t.type === "link") {
37
- const imageToken = t.tokens[0];
38
- const href = getValidURL(this.baseUrl, t.href);
39
- siblingNodes.push(this.renderer.getImageLinkNode(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
40
- }
41
-
42
- tokenRenderQueue = [];
43
- return;
44
- }
45
-
46
- tokenRenderQueue = [...tokenRenderQueue, t];
47
- });
48
- /* Remaining temp tokens if any */
49
-
50
- if (tokenRenderQueue.length > 0) {
51
- siblingNodes.push(this.renderer.getTextNode(this._parse(tokenRenderQueue), {}));
52
- }
53
-
54
- return siblingNodes;
55
- });
56
-
57
5
  this.styles = { ...options.styles
58
6
  };
59
7
  this.baseUrl = options.baseUrl ?? "";
60
- this.renderer = new Renderer();
8
+ this.renderer = options.renderer;
61
9
  this.headingStylesMap = {
62
10
  1: this.styles.h1,
63
11
  2: this.styles.h2,
@@ -88,54 +36,59 @@ class Parser {
88
36
 
89
37
  case "paragraph":
90
38
  {
91
- const paragraphChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
92
- return this.renderer.getViewNode(paragraphChildren, this.styles.paragraph);
39
+ const children = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
40
+ return this.renderer.paragraph(children, this.styles.paragraph);
93
41
  }
94
42
 
95
43
  case "blockquote":
96
44
  {
97
- return this.renderer.getBlockquoteNode(this._parse(token.tokens), this.styles.blockquote);
45
+ const children = this.parse(token.tokens);
46
+ return this.renderer.blockquote(children, this.styles.blockquote);
98
47
  }
99
48
 
100
49
  case "heading":
101
50
  {
102
51
  const styles = this.headingStylesMap[token.depth];
103
- return this.renderer.getTextNode(this._parse(token.tokens, styles), styles);
52
+
53
+ const children = this._parse(token.tokens, styles);
54
+
55
+ return this.renderer.heading(children, styles);
104
56
  }
105
57
 
106
58
  case "code":
107
59
  {
108
- return this.renderer.getCodeBlockNode(token.text, this.styles.code, this.styles.em);
60
+ return this.renderer.code(token.text, token.lang, this.styles.code, this.styles.em);
109
61
  }
110
62
 
111
63
  case "hr":
112
64
  {
113
- return this.renderer.getViewNode(null, this.styles.hr);
65
+ return this.renderer.hr(this.styles.hr);
114
66
  }
115
67
 
116
68
  case "list":
117
69
  {
118
70
  const li = token.items.map(item => {
119
- const children = item.tokens.map(cItem => {
71
+ const children = item.tokens.flatMap(cItem => {
120
72
  if (cItem.type === "text") {
121
73
  /* getViewNode since tokens could contain a block like elements (i.e. img) */
122
74
  const childTokens = cItem.tokens || [];
123
- const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
124
- return this.renderer.getViewNode(listChildren, this.styles.li);
75
+ const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li); // return this.renderer.listItem(listChildren, this.styles.li);
76
+
77
+ return listChildren;
125
78
  }
126
79
  /* Parse the nested token */
127
80
 
128
81
 
129
82
  return this._parseToken(cItem);
130
83
  });
131
- return this.renderer.getViewNode(children, this.styles.li);
84
+ return this.renderer.listItem(children, this.styles.li);
132
85
  });
133
- return this.renderer.getListNode(token.ordered, li, this.styles.list, this.styles.li);
86
+ return this.renderer.list(token.ordered, li, this.styles.list, this.styles.li);
134
87
  }
135
88
 
136
89
  case "escape":
137
90
  {
138
- return this.renderer.getTextNode(token.text, { ...this.styles.text,
91
+ return this.renderer.escape(token.text, { ...this.styles.text,
139
92
  ...styles
140
93
  });
141
94
  }
@@ -149,12 +102,15 @@ class Parser {
149
102
 
150
103
  };
151
104
  const href = getValidURL(this.baseUrl, token.href);
152
- return this.renderer.getTextLinkNode(this._parse(token.tokens, linkStyle), href, linkStyle);
105
+
106
+ const children = this._parse(token.tokens, linkStyle);
107
+
108
+ return this.renderer.link(children, href, linkStyle);
153
109
  }
154
110
 
155
111
  case "image":
156
112
  {
157
- return this.renderer.getImageNode(token.href, token.text || token.title, this.styles.image);
113
+ return this.renderer.image(token.href, token.text || token.title, this.styles.image);
158
114
  }
159
115
 
160
116
  case "strong":
@@ -162,7 +118,10 @@ class Parser {
162
118
  const boldStyle = { ...this.styles.strong,
163
119
  ...styles
164
120
  };
165
- return this.renderer.getTextNode(this._parse(token.tokens, boldStyle), boldStyle);
121
+
122
+ const children = this._parse(token.tokens, boldStyle);
123
+
124
+ return this.renderer.strong(children, boldStyle);
166
125
  }
167
126
 
168
127
  case "em":
@@ -170,19 +129,22 @@ class Parser {
170
129
  const italicStyle = { ...this.styles.em,
171
130
  ...styles
172
131
  };
173
- return this.renderer.getTextNode(this._parse(token.tokens, italicStyle), italicStyle);
132
+
133
+ const children = this._parse(token.tokens, italicStyle);
134
+
135
+ return this.renderer.em(children, italicStyle);
174
136
  }
175
137
 
176
138
  case "codespan":
177
139
  {
178
- return this.renderer.getTextNode(token.text, { ...this.styles.codespan,
140
+ return this.renderer.codespan(token.text, { ...this.styles.codespan,
179
141
  ...styles
180
142
  });
181
143
  }
182
144
 
183
145
  case "br":
184
146
  {
185
- return this.renderer.getTextNode("\n", {});
147
+ return this.renderer.br();
186
148
  }
187
149
 
188
150
  case "del":
@@ -190,17 +152,21 @@ class Parser {
190
152
  const strikethroughStyle = { ...this.styles.strikethrough,
191
153
  ...styles
192
154
  };
193
- return this.renderer.getTextNode(this._parse(token.tokens, strikethroughStyle), strikethroughStyle);
155
+
156
+ const children = this._parse(token.tokens, strikethroughStyle);
157
+
158
+ return this.renderer.del(children, strikethroughStyle);
194
159
  }
195
160
 
196
161
  case "text":
162
+ return this.renderer.text(token.raw, { ...this.styles.text,
163
+ ...styles
164
+ });
165
+
197
166
  case "html":
198
167
  {
199
- if (token.type === "html") {
200
- console.warn("react-native-marked: rendering html from markdown is not supported");
201
- }
202
-
203
- return this.renderer.getTextNode(token.raw, { ...this.styles.text,
168
+ console.warn("react-native-marked: rendering html from markdown is not supported");
169
+ return this.renderer.html(token.raw, { ...this.styles.text,
204
170
  ...styles
205
171
  });
206
172
  }
@@ -213,6 +179,47 @@ class Parser {
213
179
  }
214
180
  }
215
181
 
182
+ getNormalizedSiblingNodesForBlockAndInlineTokens(tokens, textStyle) {
183
+ let tokenRenderQueue = [];
184
+ const siblingNodes = [];
185
+ tokens.forEach(t => {
186
+ /**
187
+ * To avoid inlining images
188
+ * Currently supports images, link images
189
+ * Note: to be extend for other token types
190
+ */
191
+ if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
192
+ // Render existing inline tokens in the queue
193
+ const parsed = this.parse(tokenRenderQueue);
194
+
195
+ if (parsed.length > 0) {
196
+ siblingNodes.push(this.renderer.text(parsed, textStyle));
197
+ } // Render the current block token
198
+
199
+
200
+ if (t.type === "image") {
201
+ siblingNodes.push(this._parseToken(t));
202
+ } else if (t.type === "link") {
203
+ const imageToken = t.tokens[0];
204
+ const href = getValidURL(this.baseUrl, t.href);
205
+ siblingNodes.push(this.renderer.linkImage(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
206
+ }
207
+
208
+ tokenRenderQueue = [];
209
+ return;
210
+ }
211
+
212
+ tokenRenderQueue = [...tokenRenderQueue, t];
213
+ });
214
+ /* Remaining temp tokens if any */
215
+
216
+ if (tokenRenderQueue.length > 0) {
217
+ siblingNodes.push(this.renderer.text(this.parse(tokenRenderQueue), {}));
218
+ }
219
+
220
+ return siblingNodes;
221
+ }
222
+
216
223
  }
217
224
 
218
225
  export default Parser;
@@ -1 +1 @@
1
- {"version":3,"names":["Renderer","getValidURL","Parser","constructor","options","tokens","textStyle","tokenRenderQueue","siblingNodes","forEach","t","type","parsed","_parse","length","push","renderer","getTextNode","_parseToken","imageToken","href","baseUrl","getImageLinkNode","text","title","styles","image","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":["getValidURL","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","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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"}
@@ -1,84 +1,146 @@
1
- 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; }
2
-
3
1
  import React from "react";
4
2
  import { ScrollView, View, Text, TouchableHighlight } from "react-native";
5
3
  import MarkedList from "@jsamr/react-native-li";
6
4
  import Disc from "@jsamr/counter-style/presets/disc";
7
5
  import Decimal from "@jsamr/counter-style/presets/decimal";
6
+ import { Slugger } from "marked";
8
7
  import MDImage from "./../components/MDImage";
9
- import { generateRandomString } from "../utils/string";
10
8
  import { onLinkPress } from "../utils/handlers";
11
9
 
12
10
  class Renderer {
11
+ slugPrefix = "react-native-marked-ele";
12
+
13
13
  constructor() {
14
- _defineProperty(this, "getTextNode", (children, styles) => {
15
- return /*#__PURE__*/React.createElement(Text, {
16
- key: generateRandomString(),
17
- style: styles
18
- }, children);
19
- });
14
+ this.slugger = new Slugger();
15
+ }
20
16
 
21
- _defineProperty(this, "getTextLinkNode", (children, href, styles) => {
22
- return /*#__PURE__*/React.createElement(Text, {
23
- accessibilityRole: "link",
24
- accessibilityHint: "Opens in a new window",
25
- key: generateRandomString(),
26
- onPress: onLinkPress(href),
27
- style: styles
28
- }, children);
29
- });
17
+ paragraph(children, styles) {
18
+ return this.getViewNode(children, styles);
19
+ }
30
20
 
31
- _defineProperty(this, "getImageLinkNode", (href, imageUrl, alt, style) => {
32
- const imageNode = this.getImageNode(imageUrl, alt, style);
33
- return /*#__PURE__*/React.createElement(TouchableHighlight, {
34
- accessibilityRole: "link",
35
- accessibilityHint: "Opens in a new window",
36
- onPress: onLinkPress(href),
37
- key: generateRandomString()
38
- }, imageNode);
39
- });
21
+ blockquote(children, styles) {
22
+ return this.getBlockquoteNode(children, styles);
40
23
  }
41
24
 
42
- getViewNode(children, styles) {
43
- return /*#__PURE__*/React.createElement(View, {
44
- key: generateRandomString(),
45
- style: styles
46
- }, children);
25
+ heading(text, styles) {
26
+ return this.getTextNode(text, styles);
47
27
  }
48
28
 
49
- getCodeBlockNode(text, containerStyle, textStyle) {
29
+ code(text, _language, containerStyle, textStyle) {
50
30
  return /*#__PURE__*/React.createElement(ScrollView, {
51
31
  horizontal: true,
52
- key: generateRandomString(),
32
+ key: this.getKey(),
53
33
  contentContainerStyle: containerStyle
54
34
  }, /*#__PURE__*/React.createElement(Text, {
55
35
  style: textStyle
56
36
  }, text));
57
37
  }
58
38
 
59
- getBlockquoteNode(children, styles) {
60
- return /*#__PURE__*/React.createElement(View, {
61
- key: generateRandomString(),
39
+ hr(styles) {
40
+ return this.getViewNode(null, styles);
41
+ }
42
+
43
+ listItem(children, styles) {
44
+ return this.getViewNode(children, styles);
45
+ }
46
+
47
+ list(ordered, li, listStyle, textStyle) {
48
+ return /*#__PURE__*/React.createElement(MarkedList, {
49
+ counterRenderer: ordered ? Decimal : Disc,
50
+ markerTextStyle: textStyle,
51
+ markerBoxStyle: listStyle,
52
+ key: this.getKey()
53
+ }, li.map(node => node));
54
+ }
55
+
56
+ escape(text, styles) {
57
+ return this.getTextNode(text, styles);
58
+ }
59
+
60
+ link(children, href, styles) {
61
+ return /*#__PURE__*/React.createElement(Text, {
62
+ accessibilityRole: "link",
63
+ accessibilityHint: "Opens in a new window",
64
+ key: this.getKey(),
65
+ onPress: onLinkPress(href),
62
66
  style: styles
63
67
  }, children);
64
68
  }
65
69
 
66
- getImageNode(uri, alt, style) {
70
+ image(uri, alt, style) {
67
71
  return /*#__PURE__*/React.createElement(MDImage, {
68
- key: generateRandomString(),
72
+ key: this.getKey(),
69
73
  uri: uri,
70
74
  alt: alt,
71
75
  style: style
72
76
  });
73
77
  }
74
78
 
75
- getListNode(ordered, li, listStyle, textStyle) {
76
- return /*#__PURE__*/React.createElement(MarkedList, {
77
- counterRenderer: ordered ? Decimal : Disc,
78
- markerTextStyle: textStyle,
79
- markerBoxStyle: listStyle,
80
- key: generateRandomString()
81
- }, li.map(node => node));
79
+ strong(children, styles) {
80
+ return this.getTextNode(children, styles);
81
+ }
82
+
83
+ em(children, styles) {
84
+ return this.getTextNode(children, styles);
85
+ }
86
+
87
+ codespan(text, styles) {
88
+ return this.getTextNode(text, styles);
89
+ }
90
+
91
+ br() {
92
+ return this.getTextNode("\n", {});
93
+ }
94
+
95
+ del(children, styles) {
96
+ return this.getTextNode(children, styles);
97
+ }
98
+
99
+ text(text, styles) {
100
+ return this.getTextNode(text, styles);
101
+ }
102
+
103
+ html(text, styles) {
104
+ return this.getTextNode(text, styles);
105
+ }
106
+
107
+ linkImage(href, imageUrl, alt, style) {
108
+ const imageNode = this.image(imageUrl, alt, style);
109
+ return /*#__PURE__*/React.createElement(TouchableHighlight, {
110
+ accessibilityRole: "link",
111
+ accessibilityHint: "Opens in a new window",
112
+ onPress: onLinkPress(href),
113
+ key: this.getKey()
114
+ }, imageNode);
115
+ }
116
+
117
+ getKey() {
118
+ return this.slugger.slug(this.slugPrefix);
119
+ }
120
+
121
+ getTextNode(children, styles) {
122
+ return /*#__PURE__*/React.createElement(Text, {
123
+ key: this.getKey(),
124
+ style: styles
125
+ }, children);
126
+ }
127
+
128
+ getViewNode(children, styles) {
129
+ {
130
+ return /*#__PURE__*/React.createElement(View, {
131
+ key: this.getKey(),
132
+ style: styles
133
+ }, children);
134
+ }
135
+ }
136
+
137
+ getBlockquoteNode(children, styles) {
138
+ {
139
+ return /*#__PURE__*/React.createElement(View, {
140
+ key: this.getKey(),
141
+ style: styles
142
+ }, children);
143
+ }
82
144
  }
83
145
 
84
146
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","MarkedList","Disc","Decimal","MDImage","generateRandomString","onLinkPress","Renderer","children","styles","href","imageUrl","alt","style","imageNode","getImageNode","getViewNode","getCodeBlockNode","text","containerStyle","textStyle","getBlockquoteNode","uri","getListNode","ordered","li","listStyle","map","node"],"sourceRoot":"../../src","sources":["Renderer.tsx"],"mappings":";;AAAA,OAAOA,KAAP,MAAiC,OAAjC;AACA,SACCC,UADD,EAECC,IAFD,EAGCC,IAHD,EAICC,kBAJD,QAQO,cARP;AASA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,IAAP,MAAiB,mCAAjB;AACA,OAAOC,OAAP,MAAoB,sCAApB;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,SAASC,oBAAT,QAAqC,iBAArC;AACA,SAASC,WAAT,QAA4B,mBAA5B;;AAEA,MAAMC,QAAN,CAAe;EAAA;IAAA,qCACA,CAACC,QAAD,EAAiCC,MAAjC,KAAwD;MACrE,oBACC,oBAAC,IAAD;QAAM,GAAG,EAAEJ,oBAAoB,EAA/B;QAAmC,KAAK,EAAEI;MAA1C,GACED,QADF,CADD;IAKA,CAPa;;IAAA,yCASI,CACjBA,QADiB,EAEjBE,IAFiB,EAGjBD,MAHiB,KAIb;MACJ,oBACC,oBAAC,IAAD;QACC,iBAAiB,EAAC,MADnB;QAEC,iBAAiB,EAAC,uBAFnB;QAGC,GAAG,EAAEJ,oBAAoB,EAH1B;QAIC,OAAO,EAAEC,WAAW,CAACI,IAAD,CAJrB;QAKC,KAAK,EAAED;MALR,GAOED,QAPF,CADD;IAWA,CAzBa;;IAAA,0CA2BK,CAClBE,IADkB,EAElBC,QAFkB,EAGlBC,GAHkB,EAIlBC,KAJkB,KAKd;MACJ,MAAMC,SAAS,GAAG,KAAKC,YAAL,CAAkBJ,QAAlB,EAA4BC,GAA5B,EAAiCC,KAAjC,CAAlB;MACA,oBACC,oBAAC,kBAAD;QACC,iBAAiB,EAAC,MADnB;QAEC,iBAAiB,EAAC,uBAFnB;QAGC,OAAO,EAAEP,WAAW,CAACI,IAAD,CAHrB;QAIC,GAAG,EAAEL,oBAAoB;MAJ1B,GAMES,SANF,CADD;IAUA,CA5Ca;EAAA;;EA8CdE,WAAW,CAACR,QAAD,EAA+BC,MAA/B,EAAmD;IAC7D,oBACC,oBAAC,IAAD;MAAM,GAAG,EAAEJ,oBAAoB,EAA/B;MAAmC,KAAK,EAAEI;IAA1C,GACED,QADF,CADD;EAKA;;EAEDS,gBAAgB,CACfC,IADe,EAEfC,cAFe,EAGfC,SAHe,EAId;IACD,oBACC,oBAAC,UAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAEf,oBAAoB,EAF1B;MAGC,qBAAqB,EAAEc;IAHxB,gBAKC,oBAAC,IAAD;MAAM,KAAK,EAAEC;IAAb,GAAyBF,IAAzB,CALD,CADD;EASA;;EAEDG,iBAAiB,CAACb,QAAD,EAAwBC,MAAxB,EAA4C;IAC5D,oBACC,oBAAC,IAAD;MAAM,GAAG,EAAEJ,oBAAoB,EAA/B;MAAmC,KAAK,EAAEI;IAA1C,GACED,QADF,CADD;EAKA;;EAEDO,YAAY,CAACO,GAAD,EAAcV,GAAd,EAA4BC,KAA5B,EAAgD;IAC3D,oBACC,oBAAC,OAAD;MAAS,GAAG,EAAER,oBAAoB,EAAlC;MAAsC,GAAG,EAAEiB,GAA3C;MAAgD,GAAG,EAAEV,GAArD;MAA0D,KAAK,EAAEC;IAAjE,EADD;EAGA;;EAEDU,WAAW,CACVC,OADU,EAEVC,EAFU,EAGVC,SAHU,EAIVN,SAJU,EAKT;IACD,oBACC,oBAAC,UAAD;MACC,eAAe,EAAEI,OAAO,GAAGrB,OAAH,GAAaD,IADtC;MAEC,eAAe,EAAEkB,SAFlB;MAGC,cAAc,EAAEM,SAHjB;MAIC,GAAG,EAAErB,oBAAoB;IAJ1B,GAMEoB,EAAE,CAACE,GAAH,CAAQC,IAAD,IAAUA,IAAjB,CANF,CADD;EAUA;;AApGa;;AAuGf,eAAerB,QAAf"}
1
+ {"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","MarkedList","Disc","Decimal","Slugger","MDImage","onLinkPress","Renderer","slugPrefix","constructor","slugger","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","map","node","escape","link","href","image","uri","alt","style","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}