class before extends Paged.Handler { constructor(chunker, polisher, caller) { super(chunker, polisher, caller); } beforeParsed(content) { paragraphId(content); portfolioSpread(content); } } Paged.registerHandlers(before); function paragraphId(content) { content.querySelectorAll("p, li").forEach((paragraph, index) => { let words = paragraph.textContent .trim() .split(/\s+/) .map(word => word.replace(/[^\wÀ-ÿ]/g, "")) // Supprime la ponctuation .filter(word => word.length > 0); let id = words.slice(0, 10).map(word => word.charAt(0)).join("").toLowerCase(); id = "p-" + id; if (!id) id = `para-${index}`; // Si le paragraphe est vide, on donne un id par défaut paragraph.dataset.uniqueId = id; }); } function portfolioSpread(content){ content.querySelectorAll('.portfolio-spread').forEach(block => { const clone = block.cloneNode(true); clone.classList.add('portfolio-spread-right'); block.classList.add('portfolio-spread-left'); block.parentNode.insertBefore(clone, block.nextSibling); }); }