From 7058de05686fb19e9156653c6ca0f4d62804de96 Mon Sep 17 00:00:00 2001 From: Lea Verou Date: Tue, 10 Dec 2024 15:23:16 -0500 Subject: [PATCH] Convert preview scripts to modules when using a manually slotted preview --- docs/_utils/code-examples.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/_utils/code-examples.js b/docs/_utils/code-examples.js index 1c5fd4c9b..1aa336295 100644 --- a/docs/_utils/code-examples.js +++ b/docs/_utils/code-examples.js @@ -78,7 +78,13 @@ const templates = { let preview = ''; if (attributes.viewport === undefined) { + // Slot in pre-rendered preview preview = `
${code.textContent}
`; + + // Run preview scripts as modules to prevent collisions + const root = parse(preview, { blockTextElements: { script: true } }); + root.querySelectorAll('script').forEach(script => script.setAttribute('type', 'module')); + preview = root.toString(); } return `${includes}