/** Einfache HTML-Hilfen für Rich-Text (Trainer-Content, kein öffentliches CMS). */ export function stripHtmlToText(html) { if (!html || typeof html !== 'string') return '' const d = document.createElement('div') d.innerHTML = html return (d.textContent || '').replace(/\s+/g, ' ').trim() } /** Entfernt script/iframes und Event-Handler-Attribute grob. */ export function sanitizeTrainerHtml(html) { if (!html || typeof html !== 'string') return '' const d = document.createElement('div') d.innerHTML = html d.querySelectorAll('script, iframe, object, embed').forEach((n) => n.remove()) d.querySelectorAll('*').forEach((el) => { for (const attr of [...el.attributes]) { const n = attr.name.toLowerCase() if (n.startsWith('on') || n === 'srcdoc') el.removeAttribute(attr.name) } }) return d.innerHTML }