react-native-marked 1.6.14 → 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 (78) hide show
  1. package/README.md +64 -8
  2. package/dist/commonjs/index.js +8 -0
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/lib/Markdown.js +5 -1
  5. package/dist/commonjs/lib/Markdown.js.map +1 -1
  6. package/dist/commonjs/lib/Parser.js +50 -35
  7. package/dist/commonjs/lib/Parser.js.map +1 -1
  8. package/dist/commonjs/lib/Renderer.js +113 -45
  9. package/dist/commonjs/lib/Renderer.js.map +1 -1
  10. package/dist/commonjs/lib/__perf__/Markdown.perf-test.js +196 -0
  11. package/dist/commonjs/lib/__perf__/Markdown.perf-test.js.map +1 -0
  12. package/dist/module/index.js +2 -0
  13. package/dist/module/index.js.map +1 -1
  14. package/dist/module/lib/Markdown.js +4 -1
  15. package/dist/module/lib/Markdown.js.map +1 -1
  16. package/dist/module/lib/Parser.js +50 -32
  17. package/dist/module/lib/Parser.js.map +1 -1
  18. package/dist/module/lib/Renderer.js +112 -44
  19. package/dist/module/lib/Renderer.js.map +1 -1
  20. package/dist/module/lib/__perf__/Markdown.perf-test.js +188 -0
  21. package/dist/module/lib/__perf__/Markdown.perf-test.js.map +1 -0
  22. package/dist/typescript/components/MDImage.d.ts.map +1 -0
  23. package/dist/typescript/index.d.ts +7 -0
  24. package/dist/typescript/index.d.ts.map +1 -0
  25. package/dist/typescript/{src/lib → lib}/Markdown.d.ts +1 -1
  26. package/dist/typescript/lib/Markdown.d.ts.map +1 -0
  27. package/dist/typescript/lib/Parser.d.ts.map +1 -0
  28. package/dist/typescript/lib/Renderer.d.ts +32 -0
  29. package/dist/typescript/lib/Renderer.d.ts.map +1 -0
  30. package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts +2 -0
  31. package/dist/typescript/lib/__perf__/Markdown.perf-test.d.ts.map +1 -0
  32. package/dist/typescript/lib/types.d.ts +34 -0
  33. package/dist/typescript/lib/types.d.ts.map +1 -0
  34. package/dist/typescript/theme/colors.d.ts.map +1 -0
  35. package/dist/typescript/theme/spacing.d.ts.map +1 -0
  36. package/dist/typescript/theme/styles.d.ts.map +1 -0
  37. package/dist/typescript/theme/types.d.ts.map +1 -0
  38. package/dist/typescript/utils/handlers.d.ts.map +1 -0
  39. package/dist/typescript/utils/url.d.ts.map +1 -0
  40. package/package.json +1 -1
  41. package/src/index.ts +8 -0
  42. package/src/lib/Markdown.tsx +8 -1
  43. package/src/lib/Parser.tsx +50 -64
  44. package/src/lib/Renderer.tsx +135 -60
  45. package/src/lib/__perf__/Markdown.perf-test.tsx +186 -0
  46. package/src/lib/types.ts +48 -2
  47. package/dist/commonjs/utils/string.js +0 -17
  48. package/dist/commonjs/utils/string.js.map +0 -1
  49. package/dist/module/utils/string.js +0 -8
  50. package/dist/module/utils/string.js.map +0 -1
  51. package/dist/typescript/dangerfile.d.ts +0 -2
  52. package/dist/typescript/dangerfile.d.ts.map +0 -1
  53. package/dist/typescript/src/components/MDImage.d.ts.map +0 -1
  54. package/dist/typescript/src/index.d.ts +0 -3
  55. package/dist/typescript/src/index.d.ts.map +0 -1
  56. package/dist/typescript/src/lib/Markdown.d.ts.map +0 -1
  57. package/dist/typescript/src/lib/Parser.d.ts.map +0 -1
  58. package/dist/typescript/src/lib/Renderer.d.ts +0 -14
  59. package/dist/typescript/src/lib/Renderer.d.ts.map +0 -1
  60. package/dist/typescript/src/lib/types.d.ts +0 -13
  61. package/dist/typescript/src/lib/types.d.ts.map +0 -1
  62. package/dist/typescript/src/theme/colors.d.ts.map +0 -1
  63. package/dist/typescript/src/theme/spacing.d.ts.map +0 -1
  64. package/dist/typescript/src/theme/styles.d.ts.map +0 -1
  65. package/dist/typescript/src/theme/types.d.ts.map +0 -1
  66. package/dist/typescript/src/utils/handlers.d.ts.map +0 -1
  67. package/dist/typescript/src/utils/string.d.ts +0 -6
  68. package/dist/typescript/src/utils/string.d.ts.map +0 -1
  69. package/dist/typescript/src/utils/url.d.ts.map +0 -1
  70. package/src/utils/string.ts +0 -7
  71. /package/dist/typescript/{src/components → components}/MDImage.d.ts +0 -0
  72. /package/dist/typescript/{src/lib → lib}/Parser.d.ts +0 -0
  73. /package/dist/typescript/{src/theme → theme}/colors.d.ts +0 -0
  74. /package/dist/typescript/{src/theme → theme}/spacing.d.ts +0 -0
  75. /package/dist/typescript/{src/theme → theme}/styles.d.ts +0 -0
  76. /package/dist/typescript/{src/theme → theme}/types.d.ts +0 -0
  77. /package/dist/typescript/{src/utils → utils}/handlers.d.ts +0 -0
  78. /package/dist/typescript/{src/utils → utils}/url.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Renderer","getTextNode","children","styles","generateRandomString","getTextLinkNode","href","onLinkPress","getImageLinkNode","imageUrl","alt","style","imageNode","getImageNode","getViewNode","getCodeBlockNode","text","containerStyle","textStyle","getBlockquoteNode","uri","getListNode","ordered","li","listStyle","Decimal","Disc","map","node"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":";;;;;;;AAAA;;AACA;;AASA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,QAAN,CAAe;EACdC,WAAW,GAAG,CAACC,QAAD,EAAiCC,MAAjC,KAAwD;IACrE,oBACC,6BAAC,iBAAD;MAAM,GAAG,EAAE,IAAAC,4BAAA,GAAX;MAAmC,KAAK,EAAED;IAA1C,GACED,QADF,CADD;EAKA,CANU;EAQXG,eAAe,GAAG,CACjBH,QADiB,EAEjBI,IAFiB,EAGjBH,MAHiB,KAIb;IACJ,oBACC,6BAAC,iBAAD;MACC,iBAAiB,EAAC,MADnB;MAEC,iBAAiB,EAAC,uBAFnB;MAGC,GAAG,EAAE,IAAAC,4BAAA,GAHN;MAIC,OAAO,EAAE,IAAAG,qBAAA,EAAYD,IAAZ,CAJV;MAKC,KAAK,EAAEH;IALR,GAOED,QAPF,CADD;EAWA,CAhBc;EAkBfM,gBAAgB,GAAG,CAClBF,IADkB,EAElBG,QAFkB,EAGlBC,GAHkB,EAIlBC,KAJkB,KAKd;IACJ,MAAMC,SAAS,GAAG,KAAKC,YAAL,CAAkBJ,QAAlB,EAA4BC,GAA5B,EAAiCC,KAAjC,CAAlB;IACA,oBACC,6BAAC,+BAAD;MACC,iBAAiB,EAAC,MADnB;MAEC,iBAAiB,EAAC,uBAFnB;MAGC,OAAO,EAAE,IAAAJ,qBAAA,EAAYD,IAAZ,CAHV;MAIC,GAAG,EAAE,IAAAF,4BAAA;IAJN,GAMEQ,SANF,CADD;EAUA,CAjBe;;EAmBhBE,WAAW,CAACZ,QAAD,EAA+BC,MAA/B,EAAmD;IAC7D,oBACC,6BAAC,iBAAD;MAAM,GAAG,EAAE,IAAAC,4BAAA,GAAX;MAAmC,KAAK,EAAED;IAA1C,GACED,QADF,CADD;EAKA;;EAEDa,gBAAgB,CACfC,IADe,EAEfC,cAFe,EAGfC,SAHe,EAId;IACD,oBACC,6BAAC,uBAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAE,IAAAd,4BAAA,GAFN;MAGC,qBAAqB,EAAEa;IAHxB,gBAKC,6BAAC,iBAAD;MAAM,KAAK,EAAEC;IAAb,GAAyBF,IAAzB,CALD,CADD;EASA;;EAEDG,iBAAiB,CAACjB,QAAD,EAAwBC,MAAxB,EAA4C;IAC5D,oBACC,6BAAC,iBAAD;MAAM,GAAG,EAAE,IAAAC,4BAAA,GAAX;MAAmC,KAAK,EAAED;IAA1C,GACED,QADF,CADD;EAKA;;EAEDW,YAAY,CAACO,GAAD,EAAcV,GAAd,EAA4BC,KAA5B,EAAgD;IAC3D,oBACC,6BAAC,gBAAD;MAAS,GAAG,EAAE,IAAAP,4BAAA,GAAd;MAAsC,GAAG,EAAEgB,GAA3C;MAAgD,GAAG,EAAEV,GAArD;MAA0D,KAAK,EAAEC;IAAjE,EADD;EAGA;;EAEDU,WAAW,CACVC,OADU,EAEVC,EAFU,EAGVC,SAHU,EAIVN,SAJU,EAKT;IACD,oBACC,6BAAC,sBAAD;MACC,eAAe,EAAEI,OAAO,GAAGG,gBAAH,GAAaC,aADtC;MAEC,eAAe,EAAER,SAFlB;MAGC,cAAc,EAAEM,SAHjB;MAIC,GAAG,EAAE,IAAApB,4BAAA;IAJN,GAMEmB,EAAE,CAACI,GAAH,CAAQC,IAAD,IAAUA,IAAjB,CANF,CADD;EAUA;;AApGa;;eAuGA5B,Q"}
1
+ {"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","Decimal","Disc","map","node","escape","link","href","onLinkPress","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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"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _reactNative = require("@testing-library/react-native");
6
+
7
+ var _reassure = require("reassure");
8
+
9
+ var _Markdown = _interopRequireDefault(require("../Markdown"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ const mdString = `Markdown Quick Reference
14
+ ========================
15
+
16
+ This guide is a very brief overview, with examples, of the syntax that [Markdown] supports. It is itself written in Markdown and you can copy the samples over to the left-hand pane for experimentation. It's shown as *text* and not *rendered HTML*.
17
+
18
+ [Markdown]: http://daringfireball.net/projects/markdown/
19
+
20
+
21
+ Simple Text Formatting
22
+ ======================
23
+
24
+ First thing is first. You can use *stars* or _underscores_ for italics. **Double stars** and __double underscores__ for bold. ***Three together*** for ___both___.
25
+
26
+ Paragraphs are pretty easy too. Just have a blank line between chunks of text.
27
+
28
+ > This chunk of text is in a block quote. Its multiple lines will all be
29
+ > indented a bit from the rest of the text.
30
+ >
31
+ > > Multiple levels of block quotes also work.
32
+
33
+ Sometimes you want to include code, such as when you are explaining how \`<h1>\` HTML tags work, or maybe you are a programmer and you are discussing \`someMethod()\`.
34
+
35
+ If you want to include code and have new
36
+ lines preserved, indent the line with a tab
37
+ or at least four spaces:
38
+
39
+ Extra spaces work here too.
40
+ This is also called preformatted text and it is useful for showing examples.
41
+ The text will stay as text, so any *markdown* or <u>HTML</u> you add will
42
+ not show up formatted. This way you can show markdown examples in a
43
+ markdown document.
44
+
45
+ > You can also use preformatted text with your blockquotes
46
+ > as long as you add at least five spaces.
47
+
48
+
49
+ Headings
50
+ ========
51
+
52
+ There are a couple of ways to make headings. Using three or more equals signs on a line under a heading makes it into an "h1" style. Three or more hyphens under a line makes it "h2" (slightly smaller). You can also use multiple pound symbols (\`#\`) before and after a heading. Pounds after the title are ignored. Here are some examples:
53
+
54
+ This is H1
55
+ ==========
56
+
57
+ This is H2
58
+ ----------
59
+
60
+ # This is H1
61
+ ## This is H2
62
+ ### This is H3 with some extra pounds ###
63
+ #### You get the idea ####
64
+ ##### I don't need extra pounds at the end
65
+ ###### H6 is the max
66
+
67
+
68
+ Links
69
+ =====
70
+
71
+ Let's link to a few sites. First, let's use the bare URL, like <https://www.github.com>. Great for text, but ugly for HTML.
72
+ Next is an inline link to [Google](https://www.google.com). A little nicer.
73
+ This is a reference-style link to [Wikipedia] [1].
74
+ Lastly, here's a pretty link to [Yahoo]. The reference-style and pretty links both automatically use the links defined below, but they could be defined *anywhere* in the markdown and are removed from the HTML. The names are also case insensitive, so you can use [YaHoO] and have it link properly.
75
+
76
+ [1]: https://www.wikipedia.org
77
+ [Yahoo]: https://www.yahoo.com
78
+
79
+ Title attributes may be added to links by adding text after a link.
80
+ This is the [inline link](https://www.bing.com "Bing") with a "Bing" title.
81
+ You can also go to [W3C] [2] and maybe visit a [friend].
82
+
83
+ [2]: https://w3c.org (The W3C puts out specs for web-based things)
84
+ [Friend]: https://facebook.com "Facebook!"
85
+
86
+ Email addresses in plain text are not linked: test@example.com.
87
+ Email addresses wrapped in angle brackets are linked: <test@example.com>.
88
+ They are also obfuscated so that email harvesting spam robots hopefully won't get them.
89
+
90
+
91
+ Lists
92
+ =====
93
+
94
+ * This is a bulleted list
95
+ * Great for shopping lists
96
+ - You can also use hyphens
97
+ + Or plus symbols
98
+
99
+ The above is an "unordered" list. Now, on for a bit of order.
100
+
101
+ 1. Numbered lists are also easy
102
+ 2. Just start with a number
103
+ 3738762. However, the actual number doesn't matter when converted to HTML.
104
+ 1. This will still show up as 4.
105
+
106
+ You might want a few advanced lists:
107
+
108
+ - This top-level list is wrapped in paragraph tags
109
+ - This generates an extra space between each top-level item.
110
+
111
+ - You do it by adding a blank line
112
+
113
+ - This nested list also has blank lines between the list items.
114
+
115
+ - How to create nested lists
116
+ 1. Start your regular list
117
+ 2. Indent nested lists with two spaces
118
+ 3. Further nesting means you should indent with two more spaces
119
+ * This line is indented with four spaces.
120
+
121
+ - List items can be quite lengthy. You can keep typing and either continue
122
+ them on the next line with no indentation.
123
+
124
+ - Alternately, if that looks ugly, you can also
125
+ indent the next line a bit for a prettier look.
126
+
127
+ - You can put large blocks of text in your list by just indenting with two spaces.
128
+
129
+ This is formatted the same as code, but you can inspect the HTML and find that it's just wrapped in a \`<p>\` tag and *won't* be shown as preformatted text.
130
+
131
+ You can keep adding more and more paragraphs to a single list item by adding the traditional blank line and then keep on indenting the paragraphs with two spaces.
132
+
133
+ You really only need to indent the first line,
134
+ but that looks ugly.
135
+
136
+ - Lists support blockquotes
137
+
138
+ > Just like this example here. By the way, you can
139
+ > nest lists inside blockquotes!
140
+ > - Fantastic!
141
+
142
+ - Lists support preformatted text
143
+
144
+ You just need to indent an additional four spaces.
145
+
146
+
147
+ Even More
148
+ =========
149
+
150
+ Horizontal Rule
151
+ ---------------
152
+
153
+ If you need a horizontal rule you just need to put at least three hyphens, asterisks, or underscores on a line by themselves. You can also even put spaces between the characters.
154
+
155
+ ---
156
+ ****************************
157
+ _ _ _ _ _ _ _
158
+
159
+ Those three all produced horizontal lines. Keep in mind that three hyphens under any text turns that text into a heading, so add a blank like if you use hyphens.
160
+
161
+ Images
162
+ ------
163
+
164
+ Images work exactly like links, but they have exclamation points in front. They work with references and titles too.
165
+
166
+ ![Google Logo](https://www.google.com/images/errors/logo_sm.gif) and ![Happy].
167
+
168
+ [Happy]: https://wpclipart.com/smiley/happy/simple_colors/smiley_face_simple_green_small.png ("Smiley face")
169
+
170
+
171
+ Inline HTML
172
+ -----------
173
+
174
+ If markdown is too limiting, you can just insert your own <strike>crazy</strike> HTML. Span-level HTML <u>can *still* use markdown</u>. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.
175
+
176
+ <div style='font-family: "Comic Sans MS", "Comic Sans", cursive;'>
177
+ It is a pity, but markdown does **not** work in here for most markdown parsers.
178
+ [Marked] handles it pretty well.
179
+ </div>
180
+ `;
181
+ describe("Perf test", () => {
182
+ it("Renders markdown", async () => {
183
+ const scenario = async () => {
184
+ await _reactNative.screen.queryByText("Markdown Quick Reference");
185
+ await _reactNative.screen.queryByText("Inline HTML");
186
+ await _reactNative.screen.queryByText("If markdown is too limiting, you can just insert your own <strike>crazy</strike> HTML. Span-level HTML <u>can *still* use markdown</u>. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.");
187
+ };
188
+
189
+ (0, _reassure.measurePerformance)( /*#__PURE__*/_react.default.createElement(_Markdown.default, {
190
+ value: mdString
191
+ }), {
192
+ scenario
193
+ });
194
+ });
195
+ });
196
+ //# sourceMappingURL=Markdown.perf-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mdString","describe","it","scenario","screen","queryByText","measurePerformance"],"sourceRoot":"../../../../src","sources":["lib/__perf__/Markdown.perf-test.tsx"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,QAAQ,GAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAvKA;AAyKAC,QAAQ,CAAC,WAAD,EAAc,MAAM;EAC3BC,EAAE,CAAC,kBAAD,EAAqB,YAAY;IAClC,MAAMC,QAAQ,GAAG,YAAY;MAC5B,MAAMC,mBAAA,CAAOC,WAAP,CAAmB,0BAAnB,CAAN;MACA,MAAMD,mBAAA,CAAOC,WAAP,CAAmB,aAAnB,CAAN;MACA,MAAMD,mBAAA,CAAOC,WAAP,CACL,4QADK,CAAN;IAGA,CAND;;IAOA,IAAAC,4BAAA,gBAAmB,6BAAC,iBAAD;MAAU,KAAK,EAAEN;IAAjB,EAAnB,EAAkD;MAAEG;IAAF,CAAlD;EACA,CATC,CAAF;AAUA,CAXO,CAAR"}
@@ -1,3 +1,5 @@
1
1
  import Markdown from "./lib/Markdown";
2
+ import Renderer from "./lib/Renderer";
3
+ export { Renderer };
2
4
  export default Markdown;
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Markdown"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,gBAArB;AAEA,eAAeA,QAAf"}
1
+ {"version":3,"names":["Markdown","Renderer"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,gBAArB;AACA,OAAOC,QAAP,MAAqB,gBAArB;AAQA,SAASA,QAAT;AACA,eAAeD,QAAf"}
@@ -4,6 +4,7 @@ import React, { memo, useCallback, useMemo } from "react";
4
4
  import { FlatList, useColorScheme } from "react-native";
5
5
  import { marked } from "marked";
6
6
  import Parser from "./Parser";
7
+ import Renderer from "./Renderer";
7
8
  import getStyles from "../theme/styles";
8
9
 
9
10
  const Markdown = _ref => {
@@ -12,13 +13,15 @@ const Markdown = _ref => {
12
13
  flatListProps,
13
14
  theme,
14
15
  baseUrl,
16
+ renderer,
15
17
  styles: userStyles
16
18
  } = _ref;
17
19
  const colorScheme = useColorScheme();
18
20
  const styles = useMemo(() => getStyles(userStyles, colorScheme, theme), [userStyles, colorScheme, theme]);
19
21
  const parser = useMemo(() => new Parser({
20
22
  styles,
21
- baseUrl
23
+ baseUrl,
24
+ renderer: renderer ?? new Renderer()
22
25
  }), [styles, baseUrl]);
23
26
  const rnElements = useMemo(() => {
24
27
  const tokens = marked.lexer(value, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useMemo","FlatList","useColorScheme","marked","Parser","getStyles","Markdown","value","flatListProps","theme","baseUrl","styles","userStyles","colorScheme","parser","rnElements","tokens","lexer","mangle","gfm","parse","renderItem","item","keyExtractor","_","index","toString","container"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,KAAP,IACCC,IADD,EAECC,WAFD,EAGCC,OAHD,QAMO,OANP;AAOA,SAASC,QAAT,EAAmBC,cAAnB,QAAyC,cAAzC;AACA,SAASC,MAAT,QAAuB,QAAvB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,SAAP,MAAsB,iBAAtB;;AAGA,MAAMC,QAAQ,GAAG,QAMI;EAAA,IANH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,MAAM,EAAEC;EALS,CAMG;EACpB,MAAMC,WAAW,GAAGX,cAAc,EAAlC;EACA,MAAMS,MAAM,GAAGX,OAAO,CACrB,MAAMK,SAAS,CAACO,UAAD,EAAaC,WAAb,EAA0BJ,KAA1B,CADM,EAErB,CAACG,UAAD,EAAaC,WAAb,EAA0BJ,KAA1B,CAFqB,CAAtB;EAKA,MAAMK,MAAM,GAAGd,OAAO,CACrB,MAAM,IAAII,MAAJ,CAAW;IAAEO,MAAF;IAAUD;EAAV,CAAX,CADe,EAErB,CAACC,MAAD,EAASD,OAAT,CAFqB,CAAtB;EAKA,MAAMK,UAAU,GAAGf,OAAO,CAAC,MAAM;IAChC,MAAMgB,MAAM,GAAGb,MAAM,CAACc,KAAP,CAAaV,KAAb,EAAoB;MAAEW,MAAM,EAAE,KAAV;MAAiBC,GAAG,EAAE;IAAtB,CAApB,CAAf;IACA,OAAOL,MAAM,CAACM,KAAP,CAAaJ,MAAb,CAAP;EACA,CAHyB,EAGvB,CAACT,KAAD,EAAQI,MAAR,EAAgBD,OAAhB,CAHuB,CAA1B;EAKA,MAAMW,UAAU,GAAGtB,WAAW,CAAC,SAAmC;IAAA,IAAlC;MAAEuB;IAAF,CAAkC;IACjE,OAAOA,IAAP;EACA,CAF6B,EAE3B,EAF2B,CAA9B;EAIA,MAAMC,YAAY,GAAGxB,WAAW,CAC/B,CAACyB,CAAD,EAAeC,KAAf,KAAiCA,KAAK,CAACC,QAAN,EADF,EAE/B,EAF+B,CAAhC;EAKA,oBACC,oBAAC,QAAD;IACC,qBAAqB,MADtB;IAEC,YAAY,EAAEH,YAFf;IAGC,mBAAmB,EAAE,CAHtB;IAIC,kBAAkB,EAAE,CAJrB;IAKC,KAAK,EAAEZ,MAAM,CAACgB;EALf,GAMKnB,aANL;IAOC,IAAI,EAAEO,UAPP;IAQC,UAAU,EAAEM;EARb,GADD;AAYA,CA5CD;;AA8CA,4BAAevB,IAAI,CAACQ,QAAD,CAAnB"}
1
+ {"version":3,"names":["React","memo","useCallback","useMemo","FlatList","useColorScheme","marked","Parser","Renderer","getStyles","Markdown","value","flatListProps","theme","baseUrl","renderer","styles","userStyles","colorScheme","parser","rnElements","tokens","lexer","mangle","gfm","parse","renderItem","item","keyExtractor","_","index","toString","container"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,KAAP,IACCC,IADD,EAECC,WAFD,EAGCC,OAHD,QAMO,OANP;AAOA,SAASC,QAAT,EAAmBC,cAAnB,QAAyC,cAAzC;AACA,SAASC,MAAT,QAAuB,QAAvB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,SAAP,MAAsB,iBAAtB;;AAGA,MAAMC,QAAQ,GAAG,QAOI;EAAA,IAPH;IACjBC,KADiB;IAEjBC,aAFiB;IAGjBC,KAHiB;IAIjBC,OAJiB;IAKjBC,QALiB;IAMjBC,MAAM,EAAEC;EANS,CAOG;EACpB,MAAMC,WAAW,GAAGb,cAAc,EAAlC;EACA,MAAMW,MAAM,GAAGb,OAAO,CACrB,MAAMM,SAAS,CAACQ,UAAD,EAAaC,WAAb,EAA0BL,KAA1B,CADM,EAErB,CAACI,UAAD,EAAaC,WAAb,EAA0BL,KAA1B,CAFqB,CAAtB;EAKA,MAAMM,MAAM,GAAGhB,OAAO,CACrB,MACC,IAAII,MAAJ,CAAW;IACVS,MADU;IAEVF,OAFU;IAGVC,QAAQ,EAAEA,QAAQ,IAAI,IAAIP,QAAJ;EAHZ,CAAX,CAFoB,EAOrB,CAACQ,MAAD,EAASF,OAAT,CAPqB,CAAtB;EAUA,MAAMM,UAAU,GAAGjB,OAAO,CAAC,MAAM;IAChC,MAAMkB,MAAM,GAAGf,MAAM,CAACgB,KAAP,CAAaX,KAAb,EAAoB;MAAEY,MAAM,EAAE,KAAV;MAAiBC,GAAG,EAAE;IAAtB,CAApB,CAAf;IACA,OAAOL,MAAM,CAACM,KAAP,CAAaJ,MAAb,CAAP;EACA,CAHyB,EAGvB,CAACV,KAAD,EAAQK,MAAR,EAAgBF,OAAhB,CAHuB,CAA1B;EAKA,MAAMY,UAAU,GAAGxB,WAAW,CAAC,SAAmC;IAAA,IAAlC;MAAEyB;IAAF,CAAkC;IACjE,OAAOA,IAAP;EACA,CAF6B,EAE3B,EAF2B,CAA9B;EAIA,MAAMC,YAAY,GAAG1B,WAAW,CAC/B,CAAC2B,CAAD,EAAeC,KAAf,KAAiCA,KAAK,CAACC,QAAN,EADF,EAE/B,EAF+B,CAAhC;EAKA,oBACC,oBAAC,QAAD;IACC,qBAAqB,MADtB;IAEC,YAAY,EAAEH,YAFf;IAGC,mBAAmB,EAAE,CAHtB;IAIC,kBAAkB,EAAE,CAJrB;IAKC,KAAK,EAAEZ,MAAM,CAACgB;EALf,GAMKpB,aANL;IAOC,IAAI,EAAEQ,UAPP;IAQC,UAAU,EAAEM;EARb,GADD;AAYA,CAlDD;;AAoDA,4BAAezB,IAAI,CAACS,QAAD,CAAnB"}
@@ -1,4 +1,3 @@
1
- import Renderer from "./Renderer";
2
1
  import { getValidURL } from "./../utils/url";
3
2
 
4
3
  class Parser {
@@ -6,7 +5,7 @@ class Parser {
6
5
  this.styles = { ...options.styles
7
6
  };
8
7
  this.baseUrl = options.baseUrl ?? "";
9
- this.renderer = new Renderer();
8
+ this.renderer = options.renderer;
10
9
  this.headingStylesMap = {
11
10
  1: this.styles.h1,
12
11
  2: this.styles.h2,
@@ -37,54 +36,59 @@ class Parser {
37
36
 
38
37
  case "paragraph":
39
38
  {
40
- const paragraphChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(token.tokens, this.styles.text);
41
- 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);
42
41
  }
43
42
 
44
43
  case "blockquote":
45
44
  {
46
- 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);
47
47
  }
48
48
 
49
49
  case "heading":
50
50
  {
51
51
  const styles = this.headingStylesMap[token.depth];
52
- 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);
53
56
  }
54
57
 
55
58
  case "code":
56
59
  {
57
- 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);
58
61
  }
59
62
 
60
63
  case "hr":
61
64
  {
62
- return this.renderer.getViewNode(null, this.styles.hr);
65
+ return this.renderer.hr(this.styles.hr);
63
66
  }
64
67
 
65
68
  case "list":
66
69
  {
67
70
  const li = token.items.map(item => {
68
- const children = item.tokens.map(cItem => {
71
+ const children = item.tokens.flatMap(cItem => {
69
72
  if (cItem.type === "text") {
70
73
  /* getViewNode since tokens could contain a block like elements (i.e. img) */
71
74
  const childTokens = cItem.tokens || [];
72
- const listChildren = this.getNormalizedSiblingNodesForBlockAndInlineTokens(childTokens, this.styles.li);
73
- 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;
74
78
  }
75
79
  /* Parse the nested token */
76
80
 
77
81
 
78
82
  return this._parseToken(cItem);
79
83
  });
80
- return this.renderer.getViewNode(children, this.styles.li);
84
+ return this.renderer.listItem(children, this.styles.li);
81
85
  });
82
- 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);
83
87
  }
84
88
 
85
89
  case "escape":
86
90
  {
87
- return this.renderer.getTextNode(token.text, { ...this.styles.text,
91
+ return this.renderer.escape(token.text, { ...this.styles.text,
88
92
  ...styles
89
93
  });
90
94
  }
@@ -98,12 +102,15 @@ class Parser {
98
102
 
99
103
  };
100
104
  const href = getValidURL(this.baseUrl, token.href);
101
- 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);
102
109
  }
103
110
 
104
111
  case "image":
105
112
  {
106
- 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);
107
114
  }
108
115
 
109
116
  case "strong":
@@ -111,7 +118,10 @@ class Parser {
111
118
  const boldStyle = { ...this.styles.strong,
112
119
  ...styles
113
120
  };
114
- 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);
115
125
  }
116
126
 
117
127
  case "em":
@@ -119,19 +129,22 @@ class Parser {
119
129
  const italicStyle = { ...this.styles.em,
120
130
  ...styles
121
131
  };
122
- 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);
123
136
  }
124
137
 
125
138
  case "codespan":
126
139
  {
127
- return this.renderer.getTextNode(token.text, { ...this.styles.codespan,
140
+ return this.renderer.codespan(token.text, { ...this.styles.codespan,
128
141
  ...styles
129
142
  });
130
143
  }
131
144
 
132
145
  case "br":
133
146
  {
134
- return this.renderer.getTextNode("\n", {});
147
+ return this.renderer.br();
135
148
  }
136
149
 
137
150
  case "del":
@@ -139,17 +152,21 @@ class Parser {
139
152
  const strikethroughStyle = { ...this.styles.strikethrough,
140
153
  ...styles
141
154
  };
142
- 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);
143
159
  }
144
160
 
145
161
  case "text":
162
+ return this.renderer.text(token.raw, { ...this.styles.text,
163
+ ...styles
164
+ });
165
+
146
166
  case "html":
147
167
  {
148
- if (token.type === "html") {
149
- console.warn("react-native-marked: rendering html from markdown is not supported");
150
- }
151
-
152
- 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,
153
170
  ...styles
154
171
  });
155
172
  }
@@ -162,7 +179,7 @@ class Parser {
162
179
  }
163
180
  }
164
181
 
165
- getNormalizedSiblingNodesForBlockAndInlineTokens = (tokens, textStyle) => {
182
+ getNormalizedSiblingNodesForBlockAndInlineTokens(tokens, textStyle) {
166
183
  let tokenRenderQueue = [];
167
184
  const siblingNodes = [];
168
185
  tokens.forEach(t => {
@@ -173,10 +190,10 @@ class Parser {
173
190
  */
174
191
  if (t.type === "image" || t.type === "link" && t.tokens && t.tokens[0] && t.tokens[0].type === "image") {
175
192
  // Render existing inline tokens in the queue
176
- const parsed = this._parse(tokenRenderQueue);
193
+ const parsed = this.parse(tokenRenderQueue);
177
194
 
178
195
  if (parsed.length > 0) {
179
- siblingNodes.push(this.renderer.getTextNode(parsed, textStyle));
196
+ siblingNodes.push(this.renderer.text(parsed, textStyle));
180
197
  } // Render the current block token
181
198
 
182
199
 
@@ -185,7 +202,7 @@ class Parser {
185
202
  } else if (t.type === "link") {
186
203
  const imageToken = t.tokens[0];
187
204
  const href = getValidURL(this.baseUrl, t.href);
188
- siblingNodes.push(this.renderer.getImageLinkNode(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
205
+ siblingNodes.push(this.renderer.linkImage(href, imageToken.href, imageToken.text || imageToken.title, this.styles.image));
189
206
  }
190
207
 
191
208
  tokenRenderQueue = [];
@@ -197,11 +214,12 @@ class Parser {
197
214
  /* Remaining temp tokens if any */
198
215
 
199
216
  if (tokenRenderQueue.length > 0) {
200
- siblingNodes.push(this.renderer.getTextNode(this._parse(tokenRenderQueue), {}));
217
+ siblingNodes.push(this.renderer.text(this.parse(tokenRenderQueue), {}));
201
218
  }
202
219
 
203
220
  return siblingNodes;
204
- };
221
+ }
222
+
205
223
  }
206
224
 
207
225
  export default Parser;
@@ -1 +1 @@
1
- {"version":3,"names":["Renderer","getValidURL","Parser","constructor","options","styles","baseUrl","renderer","headingStylesMap","h1","h2","h3","h4","h5","h6","parse","tokens","_parse","elements","map","token","_parseToken","filter","element","type","paragraphChildren","getNormalizedSiblingNodesForBlockAndInlineTokens","text","getViewNode","paragraph","getBlockquoteNode","blockquote","depth","getTextNode","getCodeBlockNode","code","em","hr","li","items","item","children","cItem","childTokens","listChildren","getListNode","ordered","list","linkStyle","link","href","getTextLinkNode","getImageNode","title","image","boldStyle","strong","italicStyle","codespan","strikethroughStyle","strikethrough","console","warn","raw","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","length","push","imageToken","getImageLinkNode"],"sourceRoot":"../../../src","sources":["lib/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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"}