diff --git a/blocks/fragment/fragment.js b/blocks/fragment/fragment.js index 38d31a86..28da176b 100644 --- a/blocks/fragment/fragment.js +++ b/blocks/fragment/fragment.js @@ -85,11 +85,5 @@ export default async function decorate(block) { const link = block.querySelector('a'); const path = link ? link.getAttribute('href') : block.textContent.trim(); const fragment = await loadFragment(path); - if (fragment) { - const fragmentSection = fragment.querySelector(':scope .section'); - if (fragmentSection) { - block.closest('.section').classList.add(...fragmentSection.classList); - block.closest('.fragment').replaceWith(...fragment.childNodes); - } - } + if (fragment) block.replaceChildren(...fragment.childNodes); } diff --git a/scripts/scripts.js b/scripts/scripts.js index 79b9a8a1..7665b4b3 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -453,7 +453,7 @@ function buildPDPBlock(main) { function buildAutoBlocks(main) { try { // autoreplace fragment references - const fragments = main.querySelectorAll('a[href*="/fragments/"]'); + const fragments = [...main.querySelectorAll('a[href*="/fragments/"]')].filter((f) => !f.closest('.fragment')); if (fragments.length > 0) { // eslint-disable-next-line import/no-cycle import('../blocks/fragment/fragment.js').then(({ loadFragment }) => { @@ -461,7 +461,7 @@ function buildAutoBlocks(main) { try { const { pathname } = new URL(fragment.href); const frag = await loadFragment(pathname); - fragment.parentElement.replaceWith(frag.firstElementChild); + fragment.parentElement.replaceWith(...frag.children); } catch (error) { // eslint-disable-next-line no-console console.error('Fragment loading failed', error);