From f64b73cb8aaae02c52fa438ac8361044cf67f6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20Gro=C3=9F?= Date: Mon, 20 Jan 2025 16:26:46 +0100 Subject: [PATCH] feat(server-islands): only encode ETAGO delimiter (#11513) Co-authored-by: Matt Kane Co-authored-by: Florian Lefebvre --- .changeset/fifty-socks-end.md | 5 +++++ .../src/runtime/server/render/server-islands.ts | 16 +++++++++++----- .../server-islands/ssr/src/pages/index.astro | 4 +++- packages/astro/test/server-islands.test.js | 7 +++++++ 4 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .changeset/fifty-socks-end.md diff --git a/.changeset/fifty-socks-end.md b/.changeset/fifty-socks-end.md new file mode 100644 index 0000000000..8b4476fbcf --- /dev/null +++ b/.changeset/fifty-socks-end.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Updates the server islands encoding logic to only escape the script end tag open delimiter and opening HTML comment syntax diff --git a/packages/astro/src/runtime/server/render/server-islands.ts b/packages/astro/src/runtime/server/render/server-islands.ts index e45b1e6d47..093254cd3e 100644 --- a/packages/astro/src/runtime/server/render/server-islands.ts +++ b/packages/astro/src/runtime/server/render/server-islands.ts @@ -15,13 +15,19 @@ export function containsServerDirective(props: Record) { return 'server:component-directive' in props; } +const SCRIPT_RE = /<\/script/giu; +const COMMENT_RE = /