Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 7815269

Browse files
edwardreed81valentijnnieman
authored andcommitted
Adds boolean to Markdown for HTML escaping (#395)
* Updates react-markdown to most recent version * Adds boolean to Markdown for HTML escaping This allows the developer to render raw HTML inside Markdown if desired. * Updates prop name and docstring Now 100% more dangerous * Removes react-markdown upgrade * Adds default for escapeHtml * Changes property name and inverts boolean for react-markdown * Now 100% more Prettier
1 parent 06a07b9 commit 7815269

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/components/Markdown.react.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ function DashMarkdown(props) {
1313
props.children = props.children.join('\n');
1414
}
1515

16-
return <Markdown source={props.children} escapeHtml={true} {...props} />;
16+
return (
17+
<Markdown
18+
source={props.children}
19+
escapeHtml={!props.dangerously_allow_html}
20+
{...props}
21+
/>
22+
);
1723
}
1824

1925
DashMarkdown.propTypes = {
@@ -29,6 +35,14 @@ DashMarkdown.propTypes = {
2935
*/
3036
containerProps: PropTypes.object,
3137

38+
/**
39+
* A boolean to control raw HTML escaping.
40+
* Setting HTML from code is risky because it's easy to
41+
* inadvertently expose your users to a cross-site scripting (XSS)
42+
* (https://en.wikipedia.org/wiki/Cross-site_scripting) attack.
43+
*/
44+
dangerously_allow_html: PropTypes.bool,
45+
3246
/**
3347
* A markdown string (or array of strings) that adhreres to the CommonMark spec
3448
*/
@@ -38,4 +52,8 @@ DashMarkdown.propTypes = {
3852
]),
3953
};
4054

55+
DashMarkdown.defaultProps = {
56+
dangerously_allow_html: false,
57+
};
58+
4159
export default DashMarkdown;

0 commit comments

Comments
 (0)