react-native-marked 4.0.3 → 4.1.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.
- package/README.md +1 -1
- package/dist/commonjs/components/MDSvg.js +110 -0
- package/dist/commonjs/components/MDSvg.js.map +1 -0
- package/dist/commonjs/lib/Parser.js +6 -1
- package/dist/commonjs/lib/Parser.js.map +1 -1
- package/dist/commonjs/lib/Renderer.js +12 -1
- package/dist/commonjs/lib/Renderer.js.map +1 -1
- package/dist/commonjs/utils/svg.js +23 -0
- package/dist/commonjs/utils/svg.js.map +1 -0
- package/dist/module/components/MDSvg.js +94 -0
- package/dist/module/components/MDSvg.js.map +1 -0
- package/dist/module/lib/Parser.js +6 -1
- package/dist/module/lib/Parser.js.map +1 -1
- package/dist/module/lib/Renderer.js +11 -1
- package/dist/module/lib/Renderer.js.map +1 -1
- package/dist/module/utils/svg.js +13 -0
- package/dist/module/utils/svg.js.map +1 -0
- package/dist/typescript/components/MDSvg.d.ts +8 -0
- package/dist/typescript/components/MDSvg.d.ts.map +1 -0
- package/dist/typescript/lib/Parser.d.ts.map +1 -1
- package/dist/typescript/lib/Renderer.d.ts.map +1 -1
- package/dist/typescript/utils/svg.d.ts +6 -0
- package/dist/typescript/utils/svg.d.ts.map +1 -0
- package/package.json +12 -7
- package/src/components/MDSvg.tsx +108 -0
- package/src/lib/Parser.tsx +5 -0
- package/src/lib/Renderer.tsx +6 -1
- package/src/utils/svg.ts +14 -0
package/README.md
CHANGED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
var _reactNativeSvg = require("react-native-svg");
|
|
13
|
+
|
|
14
|
+
var _svg = require("./../utils/svg");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
const MDSvg = _ref => {
|
|
21
|
+
let {
|
|
22
|
+
uri,
|
|
23
|
+
alt = "image"
|
|
24
|
+
} = _ref;
|
|
25
|
+
const isFirstLoad = (0, _react.useRef)(false);
|
|
26
|
+
const [layoutWidth, setLayoutWidth] = (0, _react.useState)(0);
|
|
27
|
+
const [svgState, setSvgState] = (0, _react.useState)({
|
|
28
|
+
viewBox: "",
|
|
29
|
+
width: 0,
|
|
30
|
+
height: 0,
|
|
31
|
+
svg: "",
|
|
32
|
+
isLoading: true,
|
|
33
|
+
error: false,
|
|
34
|
+
aspectRatio: undefined
|
|
35
|
+
});
|
|
36
|
+
(0, _react.useEffect)(() => {
|
|
37
|
+
const fetchSvg = async () => {
|
|
38
|
+
try {
|
|
39
|
+
const res = await fetch(uri);
|
|
40
|
+
const text = await res.text();
|
|
41
|
+
|
|
42
|
+
if (res.status !== 200) {
|
|
43
|
+
throw new Error("Status is not 200");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const {
|
|
47
|
+
viewBox,
|
|
48
|
+
width,
|
|
49
|
+
height
|
|
50
|
+
} = (0, _svg.getSvgDimensions)(text);
|
|
51
|
+
setSvgState({
|
|
52
|
+
width,
|
|
53
|
+
height,
|
|
54
|
+
viewBox,
|
|
55
|
+
svg: text,
|
|
56
|
+
isLoading: false,
|
|
57
|
+
error: false,
|
|
58
|
+
aspectRatio: width / height
|
|
59
|
+
});
|
|
60
|
+
} catch (e) {
|
|
61
|
+
setSvgState(state => ({ ...state,
|
|
62
|
+
error: true,
|
|
63
|
+
isLoading: false
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
fetchSvg();
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
const onLayout = event => {
|
|
72
|
+
if (!isFirstLoad.current) {
|
|
73
|
+
setLayoutWidth(event.nativeEvent.layout.width ?? 0);
|
|
74
|
+
isFirstLoad.current = true;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const getWidth = () => {
|
|
79
|
+
if (layoutWidth && svgState.width) {
|
|
80
|
+
return Math.min(layoutWidth, svgState.width);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return "100%";
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
87
|
+
style: {
|
|
88
|
+
width: getWidth(),
|
|
89
|
+
aspectRatio: svgState.aspectRatio
|
|
90
|
+
},
|
|
91
|
+
onLayout: onLayout
|
|
92
|
+
}, svgState.isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
93
|
+
size: "small"
|
|
94
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactNativeSvg.SvgFromXml, {
|
|
95
|
+
xml: svgState.svg,
|
|
96
|
+
width: "100%",
|
|
97
|
+
height: "100%",
|
|
98
|
+
viewBox: svgState.viewBox,
|
|
99
|
+
"aria-label": alt,
|
|
100
|
+
accessibilityRole: "image",
|
|
101
|
+
accessibilityLabel: alt,
|
|
102
|
+
accessibilityHint: undefined,
|
|
103
|
+
testID: "react-native-marked-md-svg"
|
|
104
|
+
}));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var _default = /*#__PURE__*/(0, _react.memo)(MDSvg);
|
|
108
|
+
|
|
109
|
+
exports.default = _default;
|
|
110
|
+
//# sourceMappingURL=MDSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MDSvg","uri","alt","isFirstLoad","useRef","layoutWidth","setLayoutWidth","useState","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","useEffect","fetchSvg","res","fetch","text","status","Error","getSvgDimensions","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min","memo"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"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"}
|
|
@@ -110,8 +110,13 @@ class Parser {
|
|
|
110
110
|
|
|
111
111
|
case "link":
|
|
112
112
|
{
|
|
113
|
-
//
|
|
113
|
+
// Don't render anchors without text and children
|
|
114
|
+
if (token.text.trim.length < 1 && token.tokens.length < 1) {
|
|
115
|
+
return null;
|
|
116
|
+
} // Note: Linking Images (https://www.markdownguide.org/basic-syntax/#linking-images) are wrapped
|
|
114
117
|
// in paragraph token, so will be handled via `getNormalizedSiblingNodesForBlockAndInlineTokens`
|
|
118
|
+
|
|
119
|
+
|
|
115
120
|
const linkStyle = { ...styles,
|
|
116
121
|
...this.styles.link // To override color property
|
|
117
122
|
|
|
@@ -1 +1 @@
|
|
|
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","startIndex","parseInt","start","toString","Number","isNaN","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","header","row","i","getTableColAlignmentStyle","align","rows","cols","col","table","tableRow","tableCell","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","
|
|
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","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","href","getValidURL","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","header","row","i","getTableColAlignmentStyle","align","rows","cols","col","table","tableRow","tableCell","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ var _handlers = require("../utils/handlers");
|
|
|
25
25
|
|
|
26
26
|
var _table = require("../utils/table");
|
|
27
27
|
|
|
28
|
+
var _MDSvg = _interopRequireDefault(require("./../components/MDSvg"));
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
32
|
class Renderer {
|
|
@@ -97,8 +99,17 @@ class Renderer {
|
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
image(uri, alt, style) {
|
|
102
|
+
const key = this.getKey();
|
|
103
|
+
|
|
104
|
+
if (uri.endsWith(".svg")) {
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement(_MDSvg.default, {
|
|
106
|
+
uri: uri,
|
|
107
|
+
key: key
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
100
111
|
return /*#__PURE__*/_react.default.createElement(_MDImage.default, {
|
|
101
|
-
key:
|
|
112
|
+
key: key,
|
|
102
113
|
uri: uri,
|
|
103
114
|
alt: alt,
|
|
104
115
|
style: style
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;AAEA,MAAMA,QAAN,CAA4C;EACnCC,UAAU,GAAG,yBAAH;;EAGlBC,WAAW,GAAG;IACb,KAAKC,OAAL,GAAe,IAAIC,eAAJ,EAAf;;IACA,MAAM;MAAEC;IAAF,IAAYC,uBAAA,CAAWC,GAAX,CAAe,QAAf,CAAlB;;IACA,KAAKC,WAAL,GAAmBH,KAAnB;EACA;;EAEDI,SAAS,CAACC,QAAD,EAAwBC,MAAxB,EAAuD;IAC/D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDE,UAAU,CAACH,QAAD,EAAwBC,MAAxB,EAAuD;IAChE,OAAO,KAAKG,iBAAL,CAAuBJ,QAAvB,EAAiCC,MAAjC,CAAP;EACA;;EAEDI,OAAO,CAACC,IAAD,EAA6BL,MAA7B,EAA4D;IAClE,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDO,IAAI,CACHF,IADG,EAEHG,SAFG,EAGHC,cAHG,EAIHC,SAJG,EAKS;IACZ,oBACC,6BAAC,uBAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAE,KAAKC,MAAL,EAFN;MAGC,qBAAqB,EAAEF;IAHxB,gBAKC,6BAAC,iBAAD;MAAM,UAAU,MAAhB;MAAiB,KAAK,EAAEC;IAAxB,GACEL,IADF,CALD,CADD;EAWA;;EAEDO,EAAE,CAACZ,MAAD,EAAgC;IACjC,OAAO,KAAKC,WAAL,CAAiB,IAAjB,EAAuBD,MAAvB,CAAP;EACA;;EAEDa,QAAQ,CAACd,QAAD,EAAwBC,MAAxB,EAAuD;IAC9D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDc,IAAI,CACHC,OADG,EAEHC,EAFG,EAGHC,SAHG,EAIHP,SAJG,EAKHQ,UALG,EAMS;IACZ,oBACC,6BAAC,sBAAD;MACC,eAAe,EAAEH,OAAO,GAAGI,gBAAH,GAAaC,aADtC;MAEC,eAAe,EAAEV,SAFlB;MAGC,cAAc,EAAEO,SAHjB;MAIC,GAAG,EAAE,KAAKN,MAAL,EAJN;MAKC,UAAU,EAAEO;IALb,GAOEF,EAAE,CAACK,GAAH,CAAQC,IAAD,IAAUA,IAAjB,CAPF,CADD;EAWA;;EAEDC,MAAM,CAAClB,IAAD,EAAeL,MAAf,EAA8C;IACnD,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDwB,IAAI,CACHzB,QADG,EAEH0B,IAFG,EAGHzB,MAHG,EAIS;IACZ,oBACC,6BAAC,iBAAD;MACC,UAAU,MADX;MAEC,iBAAiB,EAAC,MAFnB;MAGC,iBAAiB,EAAC,uBAHnB;MAIC,GAAG,EAAE,KAAKW,MAAL,EAJN;MAKC,OAAO,EAAE,IAAAe,qBAAA,EAAYD,IAAZ,CALV;MAMC,KAAK,EAAEzB;IANR,GAQED,QARF,CADD;EAYA;;EAED4B,KAAK,CAACC,GAAD,EAAcC,GAAd,EAA4BC,KAA5B,EAA2D;IAC/D,oBAAO,6BAAC,
|
|
1
|
+
{"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSvgDimensions = void 0;
|
|
7
|
+
|
|
8
|
+
var _svgParser = require("svg-parser");
|
|
9
|
+
|
|
10
|
+
const getSvgDimensions = svg => {
|
|
11
|
+
var _rootChild$properties, _rootChild$properties2, _rootChild$properties3;
|
|
12
|
+
|
|
13
|
+
const parsed = (0, _svgParser.parse)(svg);
|
|
14
|
+
const rootChild = parsed.children[0];
|
|
15
|
+
return {
|
|
16
|
+
width: parseInt(String(((_rootChild$properties = rootChild.properties) === null || _rootChild$properties === void 0 ? void 0 : _rootChild$properties.width) ?? "0")),
|
|
17
|
+
height: parseInt(String(((_rootChild$properties2 = rootChild.properties) === null || _rootChild$properties2 === void 0 ? void 0 : _rootChild$properties2.height) ?? "0")),
|
|
18
|
+
viewBox: String(((_rootChild$properties3 = rootChild.properties) === null || _rootChild$properties3 === void 0 ? void 0 : _rootChild$properties3.viewBox) ?? "")
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.getSvgDimensions = getSvgDimensions;
|
|
23
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getSvgDimensions","svg","parsed","parse","rootChild","children","width","parseInt","String","properties","height","viewBox"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":";;;;;;;AACA;;AAEO,MAAMA,gBAAgB,GAAIC,GAAD,IAAiB;EAAA;;EAChD,MAAMC,MAAM,GAAG,IAAAC,gBAAA,EAAMF,GAAN,CAAf;EAEA,MAAMG,SAAS,GAAGF,MAAM,CAACG,QAAP,CAAgB,CAAhB,CAAlB;EAEA,OAAO;IACNC,KAAK,EAAEC,QAAQ,CAACC,MAAM,CAAC,0BAAAJ,SAAS,CAACK,UAAV,gFAAsBH,KAAtB,KAA+B,GAAhC,CAAP,CADT;IAENI,MAAM,EAAEH,QAAQ,CAACC,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBC,MAAtB,KAAgC,GAAjC,CAAP,CAFV;IAGNC,OAAO,EAAEH,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBE,OAAtB,KAAiC,EAAlC;EAHT,CAAP;AAKA,CAVM"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import React, { memo, useEffect, useState, useRef } from "react";
|
|
2
|
+
import { ActivityIndicator, View } from "react-native";
|
|
3
|
+
import { SvgFromXml } from "react-native-svg";
|
|
4
|
+
import { getSvgDimensions } from "./../utils/svg";
|
|
5
|
+
|
|
6
|
+
const MDSvg = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
uri,
|
|
9
|
+
alt = "image"
|
|
10
|
+
} = _ref;
|
|
11
|
+
const isFirstLoad = useRef(false);
|
|
12
|
+
const [layoutWidth, setLayoutWidth] = useState(0);
|
|
13
|
+
const [svgState, setSvgState] = useState({
|
|
14
|
+
viewBox: "",
|
|
15
|
+
width: 0,
|
|
16
|
+
height: 0,
|
|
17
|
+
svg: "",
|
|
18
|
+
isLoading: true,
|
|
19
|
+
error: false,
|
|
20
|
+
aspectRatio: undefined
|
|
21
|
+
});
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const fetchSvg = async () => {
|
|
24
|
+
try {
|
|
25
|
+
const res = await fetch(uri);
|
|
26
|
+
const text = await res.text();
|
|
27
|
+
|
|
28
|
+
if (res.status !== 200) {
|
|
29
|
+
throw new Error("Status is not 200");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const {
|
|
33
|
+
viewBox,
|
|
34
|
+
width,
|
|
35
|
+
height
|
|
36
|
+
} = getSvgDimensions(text);
|
|
37
|
+
setSvgState({
|
|
38
|
+
width,
|
|
39
|
+
height,
|
|
40
|
+
viewBox,
|
|
41
|
+
svg: text,
|
|
42
|
+
isLoading: false,
|
|
43
|
+
error: false,
|
|
44
|
+
aspectRatio: width / height
|
|
45
|
+
});
|
|
46
|
+
} catch (e) {
|
|
47
|
+
setSvgState(state => ({ ...state,
|
|
48
|
+
error: true,
|
|
49
|
+
isLoading: false
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
fetchSvg();
|
|
55
|
+
}, []);
|
|
56
|
+
|
|
57
|
+
const onLayout = event => {
|
|
58
|
+
if (!isFirstLoad.current) {
|
|
59
|
+
setLayoutWidth(event.nativeEvent.layout.width ?? 0);
|
|
60
|
+
isFirstLoad.current = true;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const getWidth = () => {
|
|
65
|
+
if (layoutWidth && svgState.width) {
|
|
66
|
+
return Math.min(layoutWidth, svgState.width);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return "100%";
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
73
|
+
style: {
|
|
74
|
+
width: getWidth(),
|
|
75
|
+
aspectRatio: svgState.aspectRatio
|
|
76
|
+
},
|
|
77
|
+
onLayout: onLayout
|
|
78
|
+
}, svgState.isLoading ? /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
79
|
+
size: "small"
|
|
80
|
+
}) : /*#__PURE__*/React.createElement(SvgFromXml, {
|
|
81
|
+
xml: svgState.svg,
|
|
82
|
+
width: "100%",
|
|
83
|
+
height: "100%",
|
|
84
|
+
viewBox: svgState.viewBox,
|
|
85
|
+
"aria-label": alt,
|
|
86
|
+
accessibilityRole: "image",
|
|
87
|
+
accessibilityLabel: alt,
|
|
88
|
+
accessibilityHint: undefined,
|
|
89
|
+
testID: "react-native-marked-md-svg"
|
|
90
|
+
}));
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export default /*#__PURE__*/memo(MDSvg);
|
|
94
|
+
//# sourceMappingURL=MDSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useState","useRef","ActivityIndicator","View","SvgFromXml","getSvgDimensions","MDSvg","uri","alt","isFirstLoad","layoutWidth","setLayoutWidth","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","fetchSvg","res","fetch","text","status","Error","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"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"}
|
|
@@ -102,8 +102,13 @@ class Parser {
|
|
|
102
102
|
|
|
103
103
|
case "link":
|
|
104
104
|
{
|
|
105
|
-
//
|
|
105
|
+
// Don't render anchors without text and children
|
|
106
|
+
if (token.text.trim.length < 1 && token.tokens.length < 1) {
|
|
107
|
+
return null;
|
|
108
|
+
} // Note: Linking Images (https://www.markdownguide.org/basic-syntax/#linking-images) are wrapped
|
|
106
109
|
// in paragraph token, so will be handled via `getNormalizedSiblingNodesForBlockAndInlineTokens`
|
|
110
|
+
|
|
111
|
+
|
|
107
112
|
const linkStyle = { ...styles,
|
|
108
113
|
...this.styles.link // To override color property
|
|
109
114
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getValidURL","getTableColAlignmentStyle","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","startIndex","parseInt","start","toString","Number","isNaN","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","header","row","i","align","rows","cols","col","table","tableRow","tableCell","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","
|
|
1
|
+
{"version":3,"names":["getValidURL","getTableColAlignmentStyle","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","startIndex","parseInt","start","toString","Number","isNaN","li","items","item","flatMap","cItem","childTokens","listChildren","listItem","list","ordered","escape","trim","length","linkStyle","link","href","image","title","boldStyle","strong","italicStyle","codespan","br","strikethroughStyle","strikethrough","del","raw","console","warn","html","header","row","i","align","rows","cols","col","table","tableRow","tableCell","textStyle","tokenRenderQueue","siblingNodes","forEach","t","parsed","push","imageToken","linkImage"],"sourceRoot":"../../../src","sources":["lib/Parser.tsx"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { Table, Cell, TableWrapper } from "react-native-table-component";
|
|
|
8
8
|
import MDImage from "./../components/MDImage";
|
|
9
9
|
import { onLinkPress } from "../utils/handlers";
|
|
10
10
|
import { getTableWidthArr } from "../utils/table";
|
|
11
|
+
import MDSvg from "./../components/MDSvg";
|
|
11
12
|
|
|
12
13
|
class Renderer {
|
|
13
14
|
slugPrefix = "react-native-marked-ele";
|
|
@@ -77,8 +78,17 @@ class Renderer {
|
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
image(uri, alt, style) {
|
|
81
|
+
const key = this.getKey();
|
|
82
|
+
|
|
83
|
+
if (uri.endsWith(".svg")) {
|
|
84
|
+
return /*#__PURE__*/React.createElement(MDSvg, {
|
|
85
|
+
uri: uri,
|
|
86
|
+
key: key
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
80
90
|
return /*#__PURE__*/React.createElement(MDImage, {
|
|
81
|
-
key:
|
|
91
|
+
key: key,
|
|
82
92
|
uri: uri,
|
|
83
93
|
alt: alt,
|
|
84
94
|
style: style
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"AAAA,OAAOA,KAAP,MAAsC,OAAtC;AACA,SACCC,UADD,EAECC,IAFD,EAGCC,IAHD,EAICC,kBAJD,EAQCC,UARD,QASO,cATP;AAUA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,IAAP,MAAiB,mCAAjB;AACA,OAAOC,OAAP,MAAoB,sCAApB;AACA,SAASC,OAAT,QAAwB,QAAxB;AACA,SAASC,KAAT,EAAgBC,IAAhB,EAAsBC,YAAtB,QAA0C,8BAA1C;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,SAASC,gBAAT,QAAiC,gBAAjC;;AAEA,MAAMC,QAAN,CAA4C;EACnCC,UAAU,GAAG,yBAAH;;EAGlBC,WAAW,GAAG;IACb,KAAKC,OAAL,GAAe,
|
|
1
|
+
{"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","MDSvg","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { parse } from "svg-parser";
|
|
2
|
+
export const getSvgDimensions = svg => {
|
|
3
|
+
var _rootChild$properties, _rootChild$properties2, _rootChild$properties3;
|
|
4
|
+
|
|
5
|
+
const parsed = parse(svg);
|
|
6
|
+
const rootChild = parsed.children[0];
|
|
7
|
+
return {
|
|
8
|
+
width: parseInt(String(((_rootChild$properties = rootChild.properties) === null || _rootChild$properties === void 0 ? void 0 : _rootChild$properties.width) ?? "0")),
|
|
9
|
+
height: parseInt(String(((_rootChild$properties2 = rootChild.properties) === null || _rootChild$properties2 === void 0 ? void 0 : _rootChild$properties2.height) ?? "0")),
|
|
10
|
+
viewBox: String(((_rootChild$properties3 = rootChild.properties) === null || _rootChild$properties3 === void 0 ? void 0 : _rootChild$properties3.viewBox) ?? "")
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parse","getSvgDimensions","svg","parsed","rootChild","children","width","parseInt","String","properties","height","viewBox"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":"AACA,SAASA,KAAT,QAAsB,YAAtB;AAEA,OAAO,MAAMC,gBAAgB,GAAIC,GAAD,IAAiB;EAAA;;EAChD,MAAMC,MAAM,GAAGH,KAAK,CAACE,GAAD,CAApB;EAEA,MAAME,SAAS,GAAGD,MAAM,CAACE,QAAP,CAAgB,CAAhB,CAAlB;EAEA,OAAO;IACNC,KAAK,EAAEC,QAAQ,CAACC,MAAM,CAAC,0BAAAJ,SAAS,CAACK,UAAV,gFAAsBH,KAAtB,KAA+B,GAAhC,CAAP,CADT;IAENI,MAAM,EAAEH,QAAQ,CAACC,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBC,MAAtB,KAAgC,GAAjC,CAAP,CAFV;IAGNC,OAAO,EAAEH,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBE,OAAtB,KAAiC,EAAlC;EAHT,CAAP;AAKA,CAVM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MDSvg.d.ts","sourceRoot":"","sources":["../../../src/components/MDSvg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAKf,KAAK,UAAU,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;;AA6FF,wBAA2B"}
|
|
@@ -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;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,SAAS,CAAC;AAIhE,cAAM,MAAM;IACX,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,aAAa;IAclC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;IAI5B,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/lib/Parser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,SAAS,CAAC;AAIhE,cAAM,MAAM;IACX,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,aAAa;IAclC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;IAI5B,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IAkLnB,OAAO,CAAC,gDAAgD;CAsDxD;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAKN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/utils/svg.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,QAAS,MAAM;;;;CAU3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-marked",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.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",
|
|
@@ -52,16 +52,17 @@
|
|
|
52
52
|
"@babel/core": "7.21.8",
|
|
53
53
|
"@babel/preset-env": "7.21.5",
|
|
54
54
|
"@commitlint/config-conventional": "17.6.3",
|
|
55
|
-
"@evilmartians/lefthook": "1.
|
|
55
|
+
"@evilmartians/lefthook": "1.4.0",
|
|
56
56
|
"@release-it/conventional-changelog": "5.1.1",
|
|
57
57
|
"@testing-library/jest-native": "5.4.2",
|
|
58
58
|
"@testing-library/react-native": "12.1.2",
|
|
59
59
|
"@types/jest": "29.5.1",
|
|
60
|
-
"@types/marked": "4.
|
|
61
|
-
"@types/node": "18.16.
|
|
60
|
+
"@types/marked": "4.3.1",
|
|
61
|
+
"@types/node": "18.16.13",
|
|
62
62
|
"@types/react": "18.2.6",
|
|
63
63
|
"@types/react-native": "0.72.0",
|
|
64
64
|
"@types/react-native-table-component": "1.2.4",
|
|
65
|
+
"@types/svg-parser": "^2.0.3",
|
|
65
66
|
"commitlint": "17.6.3",
|
|
66
67
|
"danger": "11.2.6",
|
|
67
68
|
"jest": "29.5.0",
|
|
@@ -75,12 +76,13 @@
|
|
|
75
76
|
"react-test-renderer": "18.2.0",
|
|
76
77
|
"reassure": "0.9.0",
|
|
77
78
|
"release-it": "15.10.3",
|
|
78
|
-
"rome": "12.1.
|
|
79
|
+
"rome": "12.1.2",
|
|
79
80
|
"typescript": "5.0.4"
|
|
80
81
|
},
|
|
81
82
|
"peerDependencies": {
|
|
82
83
|
"react": "^16.8.6 || ^17.0.0 || ^18.0.0",
|
|
83
|
-
"react-native": ">=0.60.0"
|
|
84
|
+
"react-native": ">=0.60.0",
|
|
85
|
+
"react-native-svg": ">=13.0.0"
|
|
84
86
|
},
|
|
85
87
|
"jest": {
|
|
86
88
|
"preset": "react-native",
|
|
@@ -159,6 +161,9 @@
|
|
|
159
161
|
"@jsamr/counter-style": "2.0.2",
|
|
160
162
|
"@jsamr/react-native-li": "2.3.1",
|
|
161
163
|
"marked": "4.3.0",
|
|
162
|
-
"react-native-
|
|
164
|
+
"react-native-svg": "13.9.0",
|
|
165
|
+
"react-native-table-component": "1.2.2",
|
|
166
|
+
"svg-parser": "^2.0.4",
|
|
167
|
+
"svgps": "0.8.0"
|
|
163
168
|
}
|
|
164
169
|
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
memo,
|
|
3
|
+
type FunctionComponent,
|
|
4
|
+
useEffect,
|
|
5
|
+
useState,
|
|
6
|
+
useRef,
|
|
7
|
+
} from "react";
|
|
8
|
+
import { ActivityIndicator, View, type LayoutChangeEvent } from "react-native";
|
|
9
|
+
import { SvgFromXml } from "react-native-svg";
|
|
10
|
+
import { getSvgDimensions } from "./../utils/svg";
|
|
11
|
+
|
|
12
|
+
type MDSvgProps = {
|
|
13
|
+
uri: string;
|
|
14
|
+
alt?: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
type MdSvgState = {
|
|
18
|
+
viewBox: string;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
svg: string;
|
|
22
|
+
isLoading: boolean;
|
|
23
|
+
error: boolean;
|
|
24
|
+
aspectRatio?: number;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const MDSvg: FunctionComponent<MDSvgProps> = ({ uri, alt = "image" }) => {
|
|
28
|
+
const isFirstLoad = useRef<boolean>(false);
|
|
29
|
+
const [layoutWidth, setLayoutWidth] = useState<number>(0);
|
|
30
|
+
const [svgState, setSvgState] = useState<MdSvgState>({
|
|
31
|
+
viewBox: "",
|
|
32
|
+
width: 0,
|
|
33
|
+
height: 0,
|
|
34
|
+
svg: "",
|
|
35
|
+
isLoading: true,
|
|
36
|
+
error: false,
|
|
37
|
+
aspectRatio: undefined,
|
|
38
|
+
});
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const fetchSvg = async () => {
|
|
41
|
+
try {
|
|
42
|
+
const res = await fetch(uri);
|
|
43
|
+
const text = await res.text();
|
|
44
|
+
if (res.status !== 200) {
|
|
45
|
+
throw new Error("Status is not 200");
|
|
46
|
+
}
|
|
47
|
+
const { viewBox, width, height } = getSvgDimensions(text);
|
|
48
|
+
|
|
49
|
+
setSvgState({
|
|
50
|
+
width,
|
|
51
|
+
height,
|
|
52
|
+
viewBox,
|
|
53
|
+
svg: text,
|
|
54
|
+
isLoading: false,
|
|
55
|
+
error: false,
|
|
56
|
+
aspectRatio: width / height,
|
|
57
|
+
});
|
|
58
|
+
} catch (e) {
|
|
59
|
+
setSvgState((state) => ({
|
|
60
|
+
...state,
|
|
61
|
+
error: true,
|
|
62
|
+
isLoading: false,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
fetchSvg();
|
|
68
|
+
}, []);
|
|
69
|
+
|
|
70
|
+
const onLayout = (event: LayoutChangeEvent) => {
|
|
71
|
+
if (!isFirstLoad.current) {
|
|
72
|
+
setLayoutWidth(event.nativeEvent.layout.width ?? 0);
|
|
73
|
+
isFirstLoad.current = true;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const getWidth = () => {
|
|
78
|
+
if (layoutWidth && svgState.width) {
|
|
79
|
+
return Math.min(layoutWidth, svgState.width);
|
|
80
|
+
}
|
|
81
|
+
return "100%";
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<View
|
|
86
|
+
style={{ width: getWidth(), aspectRatio: svgState.aspectRatio }}
|
|
87
|
+
onLayout={onLayout}
|
|
88
|
+
>
|
|
89
|
+
{svgState.isLoading ? (
|
|
90
|
+
<ActivityIndicator size={"small"} />
|
|
91
|
+
) : (
|
|
92
|
+
<SvgFromXml
|
|
93
|
+
xml={svgState.svg}
|
|
94
|
+
width={"100%"}
|
|
95
|
+
height={"100%"}
|
|
96
|
+
viewBox={svgState.viewBox}
|
|
97
|
+
aria-label={alt}
|
|
98
|
+
accessibilityRole="image"
|
|
99
|
+
accessibilityLabel={alt}
|
|
100
|
+
accessibilityHint={undefined}
|
|
101
|
+
testID="react-native-marked-md-svg"
|
|
102
|
+
/>
|
|
103
|
+
)}
|
|
104
|
+
</View>
|
|
105
|
+
);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export default memo(MDSvg);
|
package/src/lib/Parser.tsx
CHANGED
|
@@ -117,6 +117,11 @@ class Parser {
|
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
case "link": {
|
|
120
|
+
// Don't render anchors without text and children
|
|
121
|
+
if (token.text.trim.length < 1 && token.tokens.length < 1) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
|
|
120
125
|
// Note: Linking Images (https://www.markdownguide.org/basic-syntax/#linking-images) are wrapped
|
|
121
126
|
// in paragraph token, so will be handled via `getNormalizedSiblingNodesForBlockAndInlineTokens`
|
|
122
127
|
const linkStyle = {
|
package/src/lib/Renderer.tsx
CHANGED
|
@@ -18,6 +18,7 @@ import MDImage from "./../components/MDImage";
|
|
|
18
18
|
import { onLinkPress } from "../utils/handlers";
|
|
19
19
|
import type { RendererInterface } from "./types";
|
|
20
20
|
import { getTableWidthArr } from "../utils/table";
|
|
21
|
+
import MDSvg from "./../components/MDSvg";
|
|
21
22
|
|
|
22
23
|
class Renderer implements RendererInterface {
|
|
23
24
|
private slugPrefix = "react-native-marked-ele";
|
|
@@ -112,7 +113,11 @@ class Renderer implements RendererInterface {
|
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
image(uri: string, alt?: string, style?: ImageStyle): ReactNode {
|
|
115
|
-
|
|
116
|
+
const key = this.getKey();
|
|
117
|
+
if (uri.endsWith(".svg")) {
|
|
118
|
+
return <MDSvg uri={uri} key={key} />;
|
|
119
|
+
}
|
|
120
|
+
return <MDImage key={key} uri={uri} alt={alt} style={style} />;
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
strong(children: ReactNode[], styles?: TextStyle): ReactNode {
|
package/src/utils/svg.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ElementNode } from "svg-parser";
|
|
2
|
+
import { parse } from "svg-parser";
|
|
3
|
+
|
|
4
|
+
export const getSvgDimensions = (svg: string) => {
|
|
5
|
+
const parsed = parse(svg);
|
|
6
|
+
|
|
7
|
+
const rootChild = parsed.children[0] as ElementNode;
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
width: parseInt(String(rootChild.properties?.width ?? "0")),
|
|
11
|
+
height: parseInt(String(rootChild.properties?.height ?? "0")),
|
|
12
|
+
viewBox: String(rootChild.properties?.viewBox ?? ""),
|
|
13
|
+
};
|
|
14
|
+
};
|