summaryrefslogtreecommitdiff
path: root/packages/markdown/remark/src
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-07-26 17:31:57 -0400
committerGravatar GitHub <noreply@github.com> 2022-07-26 17:31:57 -0400
commitda5e6ca128985a26842f630c45fcc989ba3ecf3a (patch)
tree7576785c8d167b3bb25687a02623b864f3475218 /packages/markdown/remark/src
parentc57242d5340fbf4bc9b0bfefc49fdbe2a79e82a5 (diff)
downloadastro-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.ts6
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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+}
+
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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+ raw.value = escapeEntities(raw.value);
});
}
return el;