diff --git a/hlx_statics/blocks/inlinealert/inlinealert.js b/hlx_statics/blocks/inlinealert/inlinealert.js index 23149c59..48b20b6e 100644 --- a/hlx_statics/blocks/inlinealert/inlinealert.js +++ b/hlx_statics/blocks/inlinealert/inlinealert.js @@ -1,3 +1,4 @@ +import decoratePreformattedCode from '../../components/code.js'; import { createTag, } from '../../scripts/lib-adobeio.js'; @@ -42,7 +43,7 @@ export function getVariant(classList) { export default async function decorate(block) { block.classList.add('spectrum-InLineAlert'); - const slots = block?.getAttribute('data-slots')?.split(','); + const slots = block?.getAttribute('data-slots')?.split(',').map(slot => slot.trim()); const classVariant = getVariant(block.classList); block.classList.add(classVariant.class); @@ -51,6 +52,10 @@ export default async function decorate(block) { // need to wrap content into p block.querySelectorAll(':scope > div > div').forEach((div, i) =>{ const className = slots?.[i] === 'heading' ? 'spectrum-InLineAlert-header' : 'spectrum-InLineAlert-content'; + const isCodeSlot = slots?.[i] === 'code'; + if (isCodeSlot) { + decoratePreformattedCode(div); + } const inlineP = createTag('p', { class: className }); inlineP.innerHTML = div.innerHTML; block.appendChild(inlineP); diff --git a/hlx_statics/components/code.js b/hlx_statics/components/code.js index 8d1c2915..9033e010 100644 --- a/hlx_statics/components/code.js +++ b/hlx_statics/components/code.js @@ -130,7 +130,7 @@ function applyDataAttributesFromCodeClasses(pre, code) { } export default function decoratePreformattedCode(block) { - const pre = block.querySelector('pre'); + const pre = block.querySelector('pre') || (block.tagName === 'PRE' && block) || null; const code = block.querySelector('code'); applyDataAttributesFromCodeClasses(pre, code); @@ -161,7 +161,7 @@ export default function decoratePreformattedCode(block) { code && processClasses(code); } - if (pre?.classList.contains("disableLineNumbers")) { + if (pre?.classList.contains('disableLineNumbers')) { pre?.classList.add('no-line-numbers'); } else {