Skip to content

Commit 74efc47

Browse files
committed
perf: disable mangle and remove entities package for decoding
By disabling mangle from marked.js we don't need to do entities decode. This will improve the performance and reduce the package size. As a side-effect we need to enable github flavoured markdown to support some additional emphasis.
1 parent 608466b commit 74efc47

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@
199199
"dependencies": {
200200
"@jsamr/counter-style": "^2.0.2",
201201
"@jsamr/react-native-li": "^2.3.1",
202-
"entities": "^4.4.0",
203202
"marked": "^4.0.18",
204203
"react-native-fit-image": "^1.5.5"
205204
}

src/lib/Markdown.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ const Markdown = ({
2020
const parser = new Parser({
2121
styles,
2222
});
23-
const tokens = marked.lexer(value);
23+
const tokens = marked.lexer(value, {
24+
mangle: false,
25+
gfm: true,
26+
});
2427

2528
return parser.parse(tokens);
2629
}, [value, styles]);

src/lib/Parser.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type { ReactNode } from 'react';
22
import type { TextStyle, ViewStyle, ImageStyle } from 'react-native';
33
import type { marked } from 'marked';
4-
import { decode } from 'entities';
54
import Renderer from './Renderer';
65
import type { MarkedStyles } from '../theme/types';
76
import type { ParserOptions } from './types';
@@ -172,7 +171,7 @@ class Parser {
172171
}
173172
case 'text':
174173
case 'html': {
175-
return this.renderer.getTextNode(decode(token.raw), {
174+
return this.renderer.getTextNode(token.raw, {
176175
...this.styles.text,
177176
...styles,
178177
});

0 commit comments

Comments
 (0)