diff options
author | 2022-07-26 17:31:57 -0400 | |
---|---|---|
committer | 2022-07-26 17:31:57 -0400 | |
commit | da5e6ca128985a26842f630c45fcc989ba3ecf3a (patch) | |
tree | 7576785c8d167b3bb25687a02623b864f3475218 /packages/markdown/remark/src | |
parent | c57242d5340fbf4bc9b0bfefc49fdbe2a79e82a5 (diff) | |
download | astro-da5e6ca128985a26842f630c45fcc989ba3ecf3a.tar.gz astro-da5e6ca128985a26842f630c45fcc989ba3ecf3a.tar.zst astro-da5e6ca128985a26842f630c45fcc989ba3ecf3a.zip |
Add tests for markdown content escaping (#4058)
Diffstat (limited to 'packages/markdown/remark/src')
-rw-r--r-- | packages/markdown/remark/src/rehype-escape.ts | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/markdown/remark/src/rehype-escape.ts b/packages/markdown/remark/src/rehype-escape.ts index e776c1bb1..e99e37e41 100644 --- a/packages/markdown/remark/src/rehype-escape.ts +++ b/packages/markdown/remark/src/rehype-escape.ts @@ -1,5 +1,9 @@ import { visit } from 'unist-util-visit'; +export function escapeEntities(value: string): string { + return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); +} + export default function rehypeEscape(): any { return function (node: any): any { return visit(node, 'element', (el) => { @@ -8,7 +12,7 @@ export default function rehypeEscape(): any { // Visit all raw children and escape HTML tags to prevent Markdown code // like "This is a `<script>` tag" from actually opening a script tag visit(el, 'raw', (raw) => { - raw.value = raw.value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + raw.value = escapeEntities(raw.value); }); } return el; |