react-native-marked 1.4.3 → 1.6.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 (55) hide show
  1. package/README.md +33 -11
  2. package/dist/commonjs/lib/Markdown.js +7 -4
  3. package/dist/commonjs/lib/Markdown.js.map +1 -1
  4. package/dist/commonjs/lib/Parser.js +11 -3
  5. package/dist/commonjs/lib/Parser.js.map +1 -1
  6. package/dist/commonjs/theme/colors.js.map +1 -1
  7. package/dist/commonjs/theme/spacing.js +15 -0
  8. package/dist/commonjs/theme/spacing.js.map +1 -0
  9. package/dist/commonjs/theme/styles.js +37 -28
  10. package/dist/commonjs/theme/styles.js.map +1 -1
  11. package/dist/commonjs/utils/url.js +29 -0
  12. package/dist/commonjs/utils/url.js.map +1 -0
  13. package/dist/module/lib/Markdown.js +7 -4
  14. package/dist/module/lib/Markdown.js.map +1 -1
  15. package/dist/module/lib/Parser.js +10 -3
  16. package/dist/module/lib/Parser.js.map +1 -1
  17. package/dist/module/theme/colors.js.map +1 -1
  18. package/dist/module/theme/spacing.js +8 -0
  19. package/dist/module/theme/spacing.js.map +1 -0
  20. package/dist/module/theme/styles.js +34 -28
  21. package/dist/module/theme/styles.js.map +1 -1
  22. package/dist/module/utils/url.js +20 -0
  23. package/dist/module/utils/url.js.map +1 -0
  24. package/dist/typescript/lib/Markdown.d.ts +1 -1
  25. package/dist/typescript/lib/Markdown.d.ts.map +1 -1
  26. package/dist/typescript/lib/Parser.d.ts +1 -0
  27. package/dist/typescript/lib/Parser.d.ts.map +1 -1
  28. package/dist/typescript/lib/types.d.ts +4 -3
  29. package/dist/typescript/lib/types.d.ts.map +1 -1
  30. package/dist/typescript/theme/colors.d.ts +3 -2
  31. package/dist/typescript/theme/colors.d.ts.map +1 -1
  32. package/dist/typescript/theme/spacing.d.ts +4 -0
  33. package/dist/typescript/theme/spacing.d.ts.map +1 -0
  34. package/dist/typescript/theme/styles.d.ts +2 -2
  35. package/dist/typescript/theme/styles.d.ts.map +1 -1
  36. package/dist/typescript/theme/types.d.ts +5 -3
  37. package/dist/typescript/theme/types.d.ts.map +1 -1
  38. package/dist/typescript/utils/url.d.ts +2 -0
  39. package/dist/typescript/utils/url.d.ts.map +1 -0
  40. package/package.json +11 -11
  41. package/src/lib/Markdown.tsx +8 -12
  42. package/src/lib/Parser.tsx +15 -3
  43. package/src/lib/types.ts +4 -3
  44. package/src/theme/colors.ts +3 -2
  45. package/src/theme/spacing.ts +10 -0
  46. package/src/theme/styles.ts +33 -29
  47. package/src/theme/types.ts +5 -4
  48. package/src/utils/url.ts +19 -0
  49. package/dist/commonjs/theme/theme.js +0 -19
  50. package/dist/commonjs/theme/theme.js.map +0 -1
  51. package/dist/module/theme/theme.js +0 -7
  52. package/dist/module/theme/theme.js.map +0 -1
  53. package/dist/typescript/theme/theme.d.ts +0 -4
  54. package/dist/typescript/theme/theme.d.ts.map +0 -1
  55. package/src/theme/theme.ts +0 -9
@@ -1,26 +1,32 @@
1
1
  import { StyleSheet } from 'react-native';
2
- import { getTheme } from './theme';
2
+ import spacing from './spacing';
3
+ import colors from './colors';
3
4
 
4
- const getFontStyles = theme => {
5
+ const getFontStyles = mdColors => {
5
6
  return StyleSheet.create({
6
7
  regular: {
7
8
  fontSize: 16,
8
9
  lineHeight: 24,
9
- color: theme.colors.text
10
+ color: mdColors.text
10
11
  },
11
12
  heading: {
12
13
  fontWeight: '500',
13
- color: theme.colors.text
14
+ color: mdColors.text
14
15
  }
15
16
  });
16
17
  };
17
18
 
18
- const getStyles = (userStyles, colorScheme) => {
19
- const theme = getTheme(colorScheme || 'light');
20
- const fontStyle = getFontStyles(theme);
19
+ const getStyles = (userStyles, colorScheme, userTheme) => {
20
+ const mdColors = { ...colors[colorScheme || 'light'],
21
+ ...(userTheme === null || userTheme === void 0 ? void 0 : userTheme.colors)
22
+ };
23
+ const mdSpacing = { ...spacing,
24
+ ...(userTheme === null || userTheme === void 0 ? void 0 : userTheme.spacing)
25
+ };
26
+ const fontStyle = getFontStyles(mdColors);
21
27
  const defaultStyles = StyleSheet.create({
22
28
  container: {
23
- backgroundColor: theme.colors.background
29
+ backgroundColor: mdColors.background
24
30
  },
25
31
  em: { ...fontStyle.regular,
26
32
  fontStyle: 'italic'
@@ -35,69 +41,69 @@ const getStyles = (userStyles, colorScheme) => {
35
41
  text: { ...fontStyle.regular
36
42
  },
37
43
  paragraph: { ...fontStyle.regular,
38
- paddingVertical: 8
44
+ paddingVertical: mdSpacing.m
39
45
  },
40
46
  link: { ...fontStyle.regular,
41
47
  fontStyle: 'italic',
42
- color: theme.colors.link
48
+ color: mdColors.link
43
49
  },
44
50
  blockquote: {
45
- borderLeftColor: theme.colors.border,
46
- paddingLeft: 16,
47
- borderLeftWidth: 5,
51
+ borderLeftColor: mdColors.border,
52
+ paddingLeft: mdSpacing.l,
53
+ borderLeftWidth: mdSpacing.s,
48
54
  opacity: 0.8
49
55
  },
50
56
  h1: {
51
57
  fontSize: 32,
52
58
  lineHeight: 40,
53
59
  fontWeight: 'bold',
54
- marginVertical: 8,
60
+ marginVertical: mdSpacing.m,
55
61
  letterSpacing: 0,
56
- paddingBottom: 4,
57
- borderBottomColor: theme.colors.border,
62
+ paddingBottom: mdSpacing.s,
63
+ borderBottomColor: mdColors.border,
58
64
  borderBottomWidth: 1
59
65
  },
60
66
  h2: { ...fontStyle.heading,
61
67
  fontSize: 28,
62
68
  lineHeight: 36,
63
- marginVertical: 8,
64
- paddingBottom: 4,
65
- borderBottomColor: theme.colors.border,
69
+ marginVertical: mdSpacing.m,
70
+ paddingBottom: mdSpacing.s,
71
+ borderBottomColor: mdColors.border,
66
72
  borderBottomWidth: 1
67
73
  },
68
74
  h3: { ...fontStyle.heading,
69
75
  fontSize: 24,
70
76
  lineHeight: 32,
71
- marginVertical: 4
77
+ marginVertical: mdSpacing.s
72
78
  },
73
79
  h4: { ...fontStyle.heading,
74
80
  fontSize: 22,
75
81
  lineHeight: 28,
76
- marginVertical: 4
82
+ marginVertical: mdSpacing.s
77
83
  },
78
84
  h5: { ...fontStyle.regular,
79
85
  ...fontStyle.heading,
80
- marginVertical: 2
86
+ marginVertical: mdSpacing.xs
81
87
  },
82
88
  h6: { ...fontStyle.heading,
83
89
  fontSize: 14,
84
90
  lineHeight: 20,
85
- marginVertical: 2
91
+ marginVertical: mdSpacing.xs
86
92
  },
87
93
  codespan: { ...fontStyle.regular,
88
94
  fontStyle: 'italic',
89
- backgroundColor: theme.colors.code,
95
+ backgroundColor: mdColors.code,
90
96
  fontWeight: '300'
91
97
  },
92
98
  code: {
93
- padding: 16,
94
- backgroundColor: theme.colors.code,
99
+ padding: mdSpacing.l,
100
+ backgroundColor: mdColors.code,
95
101
  minWidth: '100%'
96
102
  },
97
103
  hr: {
98
104
  borderBottomWidth: 1,
99
- borderBottomColor: theme.colors.border,
100
- marginVertical: 4
105
+ borderBottomColor: mdColors.border,
106
+ marginVertical: mdSpacing.s
101
107
  },
102
108
  li: { ...fontStyle.regular,
103
109
  flexShrink: 1
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","getTheme","getFontStyles","theme","create","regular","fontSize","lineHeight","color","colors","text","heading","fontWeight","getStyles","userStyles","colorScheme","fontStyle","defaultStyles","container","backgroundColor","background","em","strong","strikethrough","textDecorationLine","textDecorationStyle","paragraph","paddingVertical","link","blockquote","borderLeftColor","border","paddingLeft","borderLeftWidth","opacity","h1","marginVertical","letterSpacing","paddingBottom","borderBottomColor","borderBottomWidth","h2","h3","h4","h5","h6","codespan","code","padding","minWidth","hr","li","flexShrink","image","resizeMode"],"sourceRoot":"../../src","sources":["styles.ts"],"mappings":"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"}
1
+ {"version":3,"names":["StyleSheet","spacing","colors","getFontStyles","mdColors","create","regular","fontSize","lineHeight","color","text","heading","fontWeight","getStyles","userStyles","colorScheme","userTheme","mdSpacing","fontStyle","defaultStyles","container","backgroundColor","background","em","strong","strikethrough","textDecorationLine","textDecorationStyle","paragraph","paddingVertical","m","link","blockquote","borderLeftColor","border","paddingLeft","l","borderLeftWidth","s","opacity","h1","marginVertical","letterSpacing","paddingBottom","borderBottomColor","borderBottomWidth","h2","h3","h4","h5","xs","h6","codespan","code","padding","minWidth","hr","li","flexShrink","image","resizeMode"],"sourceRoot":"../../src","sources":["styles.ts"],"mappings":"AAAA,SAA0BA,UAA1B,QAA4C,cAA5C;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,MAAP,MAA4C,UAA5C;;AAGA,MAAMC,aAAa,GAAIC,QAAD,IAA8B;EAClD,OAAOJ,UAAU,CAACK,MAAX,CAAkB;IACvBC,OAAO,EAAE;MACPC,QAAQ,EAAE,EADH;MAEPC,UAAU,EAAE,EAFL;MAGPC,KAAK,EAAEL,QAAQ,CAACM;IAHT,CADc;IAMvBC,OAAO,EAAE;MACPC,UAAU,EAAE,KADL;MAEPH,KAAK,EAAEL,QAAQ,CAACM;IAFT;EANc,CAAlB,CAAP;AAWD,CAZD;;AAcA,MAAMG,SAAS,GAAG,CAChBC,UADgB,EAEhBC,WAFgB,EAGhBC,SAHgB,KAIC;EACjB,MAAMZ,QAAQ,GAAG,EAAE,GAAGF,MAAM,CAACa,WAAW,IAAI,OAAhB,CAAX;IAAqC,IAAGC,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEd,MAAd;EAArC,CAAjB;EACA,MAAMe,SAAS,GAAG,EAAE,GAAGhB,OAAL;IAAc,IAAGe,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEf,OAAd;EAAd,CAAlB;EAEA,MAAMiB,SAAS,GAAGf,aAAa,CAACC,QAAD,CAA/B;EACA,MAAMe,aAAa,GAAGnB,UAAU,CAACK,MAAX,CAAgC;IACpDe,SAAS,EAAE;MACTC,eAAe,EAAEjB,QAAQ,CAACkB;IADjB,CADyC;IAIpDC,EAAE,EAAE,EACF,GAAGL,SAAS,CAACZ,OADX;MAEFY,SAAS,EAAE;IAFT,CAJgD;IAQpDM,MAAM,EAAE,EACN,GAAGN,SAAS,CAACZ,OADP;MAENM,UAAU,EAAE;IAFN,CAR4C;IAYpDa,aAAa,EAAE,EACb,GAAGP,SAAS,CAACZ,OADA;MAEboB,kBAAkB,EAAE,cAFP;MAGbC,mBAAmB,EAAE;IAHR,CAZqC;IAiBpDjB,IAAI,EAAE,EACJ,GAAGQ,SAAS,CAACZ;IADT,CAjB8C;IAoBpDsB,SAAS,EAAE,EACT,GAAGV,SAAS,CAACZ,OADJ;MAETuB,eAAe,EAAEZ,SAAS,CAACa;IAFlB,CApByC;IAwBpDC,IAAI,EAAE,EACJ,GAAGb,SAAS,CAACZ,OADT;MAEJY,SAAS,EAAE,QAFP;MAGJT,KAAK,EAAEL,QAAQ,CAAC2B;IAHZ,CAxB8C;IA6BpDC,UAAU,EAAE;MACVC,eAAe,EAAE7B,QAAQ,CAAC8B,MADhB;MAEVC,WAAW,EAAElB,SAAS,CAACmB,CAFb;MAGVC,eAAe,EAAEpB,SAAS,CAACqB,CAHjB;MAIVC,OAAO,EAAE;IAJC,CA7BwC;IAmCpDC,EAAE,EAAE;MACFjC,QAAQ,EAAE,EADR;MAEFC,UAAU,EAAE,EAFV;MAGFI,UAAU,EAAE,MAHV;MAIF6B,cAAc,EAAExB,SAAS,CAACa,CAJxB;MAKFY,aAAa,EAAE,CALb;MAMFC,aAAa,EAAE1B,SAAS,CAACqB,CANvB;MAOFM,iBAAiB,EAAExC,QAAQ,CAAC8B,MAP1B;MAQFW,iBAAiB,EAAE;IARjB,CAnCgD;IA6CpDC,EAAE,EAAE,EACF,GAAG5B,SAAS,CAACP,OADX;MAEFJ,QAAQ,EAAE,EAFR;MAGFC,UAAU,EAAE,EAHV;MAIFiC,cAAc,EAAExB,SAAS,CAACa,CAJxB;MAKFa,aAAa,EAAE1B,SAAS,CAACqB,CALvB;MAMFM,iBAAiB,EAAExC,QAAQ,CAAC8B,MAN1B;MAOFW,iBAAiB,EAAE;IAPjB,CA7CgD;IAsDpDE,EAAE,EAAE,EACF,GAAG7B,SAAS,CAACP,OADX;MAEFJ,QAAQ,EAAE,EAFR;MAGFC,UAAU,EAAE,EAHV;MAIFiC,cAAc,EAAExB,SAAS,CAACqB;IAJxB,CAtDgD;IA4DpDU,EAAE,EAAE,EACF,GAAG9B,SAAS,CAACP,OADX;MAEFJ,QAAQ,EAAE,EAFR;MAGFC,UAAU,EAAE,EAHV;MAIFiC,cAAc,EAAExB,SAAS,CAACqB;IAJxB,CA5DgD;IAkEpDW,EAAE,EAAE,EACF,GAAG/B,SAAS,CAACZ,OADX;MAEF,GAAGY,SAAS,CAACP,OAFX;MAGF8B,cAAc,EAAExB,SAAS,CAACiC;IAHxB,CAlEgD;IAuEpDC,EAAE,EAAE,EACF,GAAGjC,SAAS,CAACP,OADX;MAEFJ,QAAQ,EAAE,EAFR;MAGFC,UAAU,EAAE,EAHV;MAIFiC,cAAc,EAAExB,SAAS,CAACiC;IAJxB,CAvEgD;IA6EpDE,QAAQ,EAAE,EACR,GAAGlC,SAAS,CAACZ,OADL;MAERY,SAAS,EAAE,QAFH;MAGRG,eAAe,EAAEjB,QAAQ,CAACiD,IAHlB;MAIRzC,UAAU,EAAE;IAJJ,CA7E0C;IAmFpDyC,IAAI,EAAE;MACJC,OAAO,EAAErC,SAAS,CAACmB,CADf;MAEJf,eAAe,EAAEjB,QAAQ,CAACiD,IAFtB;MAGJE,QAAQ,EAAE;IAHN,CAnF8C;IAwFpDC,EAAE,EAAE;MACFX,iBAAiB,EAAE,CADjB;MAEFD,iBAAiB,EAAExC,QAAQ,CAAC8B,MAF1B;MAGFO,cAAc,EAAExB,SAAS,CAACqB;IAHxB,CAxFgD;IA6FpDmB,EAAE,EAAE,EACF,GAAGvC,SAAS,CAACZ,OADX;MAEFoD,UAAU,EAAE;IAFV,CA7FgD;IAiGpDC,KAAK,EAAE;MACLC,UAAU,EAAE;IADP;EAjG6C,CAAhC,CAAtB;EAsGA,OAAO,EACL,GAAGzC,aADE;IAEL,GAAGL;EAFE,CAAP;AAID,CAnHD;;AAqHA,eAAeD,SAAf"}
@@ -0,0 +1,20 @@
1
+ export const getValidURL = (prefix, path) => {
2
+ // remove trailing slash from prefix
3
+ if (prefix.endsWith('/')) {
4
+ prefix = prefix.slice(0, -1);
5
+ } // path is valid url
6
+
7
+
8
+ if (path.startsWith('https') || path.startsWith('http')) {
9
+ return path;
10
+ } // absolute path
11
+
12
+
13
+ if (path.startsWith('/')) {
14
+ return `${prefix}${path}`;
15
+ } // relative path
16
+
17
+
18
+ return `${prefix}/${path}`;
19
+ };
20
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getValidURL","prefix","path","endsWith","slice","startsWith"],"sourceRoot":"../../src","sources":["url.ts"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAAkC;EAC3D;EACA,IAAID,MAAM,CAACE,QAAP,CAAgB,GAAhB,CAAJ,EAA0B;IACxBF,MAAM,GAAGA,MAAM,CAACG,KAAP,CAAa,CAAb,EAAgB,CAAC,CAAjB,CAAT;EACD,CAJ0D,CAM3D;;;EACA,IAAIF,IAAI,CAACG,UAAL,CAAgB,OAAhB,KAA4BH,IAAI,CAACG,UAAL,CAAgB,MAAhB,CAAhC,EAAyD;IACvD,OAAOH,IAAP;EACD,CAT0D,CAW3D;;;EACA,IAAIA,IAAI,CAACG,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;IACxB,OAAQ,GAAEJ,MAAO,GAAEC,IAAK,EAAxB;EACD,CAd0D,CAgB3D;;;EACA,OAAQ,GAAED,MAAO,IAAGC,IAAK,EAAzB;AACD,CAlBM"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { MarkdownProps } from './types';
3
- declare const _default: React.MemoExoticComponent<({ value, flatListProps, styles: userStyles, }: MarkdownProps) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ value, flatListProps, theme, baseUrl, styles: userStyles, }: MarkdownProps) => JSX.Element>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=Markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/lib/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAKrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;;AAgD7C,wBAA8B"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/lib/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAKrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;;AA4C7C,wBAA8B"}
@@ -6,6 +6,7 @@ declare class Parser {
6
6
  private renderer;
7
7
  private styles;
8
8
  private headingStylesMap;
9
+ private baseUrl;
9
10
  constructor(options: ParserOptions);
10
11
  parse(tokens: marked.Token[]): ReactNode[];
11
12
  parseInline(tokens: marked.Token[], styles?: ViewStyle | TextStyle | ImageStyle): ReactNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/lib/Parser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAwC;gBACpD,OAAO,EAAE,aAAa;IAalC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;IA0E5B,WAAW,CACT,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EACtB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU;IAqF7C,OAAO,CAAC,gDAAgD,CAsDtD;CACH;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/lib/Parser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,OAAO,CAAS;gBACZ,OAAO,EAAE,aAAa;IAclC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;IA0E5B,WAAW,CACT,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EACtB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU;IA6F7C,OAAO,CAAC,gDAAgD,CAuDtD;CACH;AAED,eAAe,MAAM,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { FlatListProps } from 'react-native';
3
- import type { MarkedStyles } from './../theme/types';
3
+ import type { MarkedStyles, UserTheme } from './../theme/types';
4
4
  export interface ParserOptions {
5
5
  styles?: MarkedStyles;
6
+ baseUrl?: string;
6
7
  }
7
- export interface MarkdownProps {
8
+ export interface MarkdownProps extends ParserOptions {
8
9
  value: string;
9
10
  flatListProps?: Omit<FlatListProps<ReactNode>, 'data' | 'renderItem' | 'horizontal'>;
10
- styles?: MarkedStyles;
11
+ theme?: UserTheme;
11
12
  }
12
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,IAAI,CAClB,aAAa,CAAC,SAAS,CAAC,EACxB,MAAM,GAAG,YAAY,GAAG,YAAY,CACrC,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,IAAI,CAClB,aAAa,CAAC,SAAS,CAAC,EACxB,MAAM,GAAG,YAAY,GAAG,YAAY,CACrC,CAAC;IACF,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB"}
@@ -1,4 +1,5 @@
1
- import type { ColorKeys } from './types';
2
- declare const colors: Record<'light' | 'dark', Record<ColorKeys, string>>;
1
+ export declare type ColorKeysType = 'background' | 'code' | 'link' | 'text' | 'border';
2
+ export declare type ColorsPropType = Record<ColorKeysType, string>;
3
+ declare const colors: Record<'light' | 'dark', ColorsPropType>;
3
4
  export default colors;
4
5
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAe/D,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC/E,oBAAY,cAAc,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAE3D,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,cAAc,CAepD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare type SpacingKeysType = 'xs' | 's' | 'm' | 'l';
2
+ declare const padding: Record<SpacingKeysType, number>;
3
+ export default padding;
4
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../../src/theme/spacing.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAErD,QAAA,MAAM,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK5C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ColorSchemeName } from 'react-native';
2
- import type { MarkedStyles } from './types';
3
- declare const getStyles: (userStyles?: MarkedStyles, colorScheme?: ColorSchemeName) => MarkedStyles;
2
+ import type { MarkedStyles, UserTheme } from './types';
3
+ declare const getStyles: (userStyles?: MarkedStyles, colorScheme?: ColorSchemeName, userTheme?: UserTheme) => MarkedStyles;
4
4
  export default getStyles;
5
5
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/theme/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAS,MAAM,SAAS,CAAC;AAgBnD,QAAA,MAAM,SAAS,gBACA,YAAY,gBACX,eAAe,KAC5B,YA6GF,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/theme/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,MAAM,cAAc,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAgBvD,QAAA,MAAM,SAAS,gBACA,YAAY,gBACX,eAAe,cACjB,SAAS,KACpB,YA+GF,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';
2
+ import type { ColorKeysType } from './colors';
3
+ import type { SpacingKeysType } from './spacing';
2
4
  export interface MarkedStyles {
3
5
  container?: ViewStyle;
4
6
  em?: TextStyle;
@@ -21,8 +23,8 @@ export interface MarkedStyles {
21
23
  li?: TextStyle;
22
24
  image?: ImageStyle;
23
25
  }
24
- export declare type ColorKeys = 'background' | 'code' | 'link' | 'text' | 'border';
25
- export interface Theme {
26
- colors: Record<ColorKeys, string>;
26
+ export interface UserTheme {
27
+ colors?: Record<ColorKeysType, string>;
28
+ spacing?: Record<SpacingKeysType, number>;
27
29
  }
28
30
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,oBAAY,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export declare const getValidURL: (prefix: string, path: string) => string;
2
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,WAAY,MAAM,QAAQ,MAAM,WAkBvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-marked",
3
- "version": "1.4.3",
3
+ "version": "1.6.0",
4
4
  "description": "Markdown renderer for React Native powered by marked.js",
5
5
  "main": "dist/commonjs/index",
6
6
  "module": "dist/module/index",
@@ -53,34 +53,34 @@
53
53
  "@evilmartians/lefthook": "1.1.3",
54
54
  "@react-native-community/eslint-config": "3.1.0",
55
55
  "@release-it/conventional-changelog": "5.1.1",
56
- "@testing-library/jest-native": "5.1.0",
56
+ "@testing-library/jest-native": "5.1.2",
57
57
  "@testing-library/react-native": "11.3.0",
58
58
  "@types/jest": "29.2.0",
59
59
  "@types/marked": "4.0.7",
60
- "@types/react": "18.0.21",
60
+ "@types/react": "18.0.24",
61
61
  "@types/react-native": "0.70.6",
62
- "@typescript-eslint/eslint-plugin": "5.40.1",
63
- "@typescript-eslint/parser": "5.40.1",
62
+ "@typescript-eslint/eslint-plugin": "5.41.0",
63
+ "@typescript-eslint/parser": "5.41.0",
64
64
  "commitlint": "17.1.2",
65
- "eslint": "8.25.0",
65
+ "eslint": "8.26.0",
66
66
  "eslint-config-prettier": "8.5.0",
67
67
  "eslint-plugin-jest": "27.1.3",
68
68
  "eslint-plugin-prettier": "4.2.1",
69
69
  "eslint-plugin-react-native-a11y": "3.3.0",
70
- "jest": "29.2.1",
71
- "jest-environment-jsdom": "29.2.1",
72
- "metro-react-native-babel-preset": "0.73.2",
70
+ "jest": "29.2.2",
71
+ "jest-environment-jsdom": "29.2.2",
72
+ "metro-react-native-babel-preset": "0.73.3",
73
73
  "pod-install": "0.1.38",
74
74
  "prettier": "2.7.1",
75
75
  "react": "18.2.0",
76
- "react-native": "0.70.3",
76
+ "react-native": "0.70.4",
77
77
  "react-native-builder-bob": "0.20.0",
78
78
  "react-test-renderer": "18.2.0",
79
79
  "release-it": "15.5.0",
80
80
  "typescript": "4.8.4"
81
81
  },
82
82
  "resolutions": {
83
- "@types/react": "18.0.21"
83
+ "@types/react": "18.0.24"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "react": "^16.8.6 || ^17.0.0 || ^18.0.0",
@@ -8,25 +8,21 @@ import type { MarkdownProps } from './types';
8
8
  const Markdown = ({
9
9
  value,
10
10
  flatListProps,
11
+ theme,
12
+ baseUrl,
11
13
  styles: userStyles,
12
14
  }: MarkdownProps) => {
13
- const systemTheme = useColorScheme();
15
+ const colorScheme = useColorScheme();
14
16
  const styles = useMemo(
15
- () => getStyles(userStyles, systemTheme),
16
- [userStyles, systemTheme]
17
+ () => getStyles(userStyles, colorScheme, theme),
18
+ [userStyles, colorScheme, theme]
17
19
  );
18
20
 
19
21
  const rnElements = useMemo(() => {
20
- const parser = new Parser({
21
- styles,
22
- });
23
- const tokens = marked.lexer(value, {
24
- mangle: false,
25
- gfm: true,
26
- });
27
-
22
+ const parser = new Parser({ styles, baseUrl });
23
+ const tokens = marked.lexer(value, { mangle: false, gfm: true });
28
24
  return parser.parse(tokens);
29
- }, [value, styles]);
25
+ }, [value, styles, baseUrl]);
30
26
 
31
27
  const renderItem = useCallback(({ item }: { item: ReactNode }) => {
32
28
  return <>{item}</>;
@@ -4,13 +4,16 @@ import type { marked } from 'marked';
4
4
  import Renderer from './Renderer';
5
5
  import type { MarkedStyles } from '../theme/types';
6
6
  import type { ParserOptions } from './types';
7
+ import { getValidURL } from './../utils/url';
7
8
 
8
9
  class Parser {
9
10
  private renderer;
10
11
  private styles: MarkedStyles;
11
12
  private headingStylesMap: Record<number, TextStyle | undefined>;
13
+ private baseUrl: string;
12
14
  constructor(options: ParserOptions) {
13
15
  this.styles = { ...options.styles };
16
+ this.baseUrl = options.baseUrl ?? '';
14
17
  this.renderer = new Renderer();
15
18
  this.headingStylesMap = {
16
19
  1: this.styles.h1,
@@ -115,9 +118,10 @@ class Parser {
115
118
  ...styles,
116
119
  ...this.styles.link, // To override color property
117
120
  };
121
+ const href = getValidURL(this.baseUrl, token.href);
118
122
  return this.renderer.getTextLinkNode(
119
123
  this.parseInline(token.tokens, linkStyle),
120
- token.href,
124
+ href,
121
125
  linkStyle
122
126
  );
123
127
  }
@@ -169,13 +173,20 @@ class Parser {
169
173
  }
170
174
  case 'text':
171
175
  case 'html': {
176
+ if (token.type === 'html')
177
+ console.warn(
178
+ 'react-native-marked: rendering html from markdown is not supported'
179
+ );
180
+
172
181
  return this.renderer.getTextNode(token.raw, {
173
182
  ...this.styles.text,
174
183
  ...styles,
175
184
  });
176
185
  }
177
186
  default: {
178
- console.warn(`Token with '${token.type}' type was not found.`);
187
+ console.warn(
188
+ `react-native-marked: token with '${token.type}' type was not found.`
189
+ );
179
190
  return null;
180
191
  }
181
192
  }
@@ -213,9 +224,10 @@ class Parser {
213
224
  siblingNodes.push(this.parseInline([t]));
214
225
  } else if (t.type === 'link') {
215
226
  const imageToken = t.tokens[0] as marked.Tokens.Image;
227
+ const href = getValidURL(this.baseUrl, t.href);
216
228
  siblingNodes.push(
217
229
  this.renderer.getImageLinkNode(
218
- t.href,
230
+ href,
219
231
  imageToken.href,
220
232
  imageToken.text || imageToken.title,
221
233
  this.styles.image
package/src/lib/types.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { FlatListProps } from 'react-native';
3
- import type { MarkedStyles } from './../theme/types';
3
+ import type { MarkedStyles, UserTheme } from './../theme/types';
4
4
 
5
5
  export interface ParserOptions {
6
6
  styles?: MarkedStyles;
7
+ baseUrl?: string;
7
8
  }
8
9
 
9
- export interface MarkdownProps {
10
+ export interface MarkdownProps extends ParserOptions {
10
11
  value: string;
11
12
  flatListProps?: Omit<
12
13
  FlatListProps<ReactNode>,
13
14
  'data' | 'renderItem' | 'horizontal'
14
15
  >;
15
- styles?: MarkedStyles;
16
+ theme?: UserTheme;
16
17
  }
@@ -1,6 +1,7 @@
1
- import type { ColorKeys } from './types';
1
+ export type ColorKeysType = 'background' | 'code' | 'link' | 'text' | 'border';
2
+ export type ColorsPropType = Record<ColorKeysType, string>;
2
3
 
3
- const colors: Record<'light' | 'dark', Record<ColorKeys, string>> = {
4
+ const colors: Record<'light' | 'dark', ColorsPropType> = {
4
5
  light: {
5
6
  background: '#ffffff',
6
7
  code: '#f6f8fa',
@@ -0,0 +1,10 @@
1
+ export type SpacingKeysType = 'xs' | 's' | 'm' | 'l';
2
+
3
+ const padding: Record<SpacingKeysType, number> = {
4
+ xs: 2,
5
+ s: 4,
6
+ m: 8,
7
+ l: 16,
8
+ };
9
+
10
+ export default padding;