${esc(preview)}
    ${bodyHtml}

    ${esc(name)}

    ${esc(subject)}

    ${esc(footer).replace(/\n/g,'
    ')}
    Unsubscribe
    `; } function renderPreview() { const html = generateHtml(); const frame = $('#preview-frame'); const doc = frame.contentDocument || frame.contentWindow.document; doc.open(); doc.write(html); doc.close(); } function downloadHtml() { const html = generateHtml(); const blob = new Blob([html], {type:'text/html'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'newsletter.html'; a.click(); } function loadExample() { $('#senderName').value = 'GameZipper Updates'; $('#subject').value = 'June 2026 — New Tools & Features'; $('#previewText').value = 'Check out 5 new tools we just launched this month!'; $('#footer').value = '© 2026 GameZipper. 123 Tool Street, San Francisco, CA 94102'; $('#unsubscribe').value = 'https://tools.gamezipper.com/unsubscribe'; sections = [ { title: '🚀 5 New Tools This Month', body: 'We\'ve added 5 powerful new tools to our toolbox:\n\n• CSS Hover Effect Generator — design interactive hover states\n• Press Release Generator — create professional press releases\n• Newsletter Generator (this template!)\n• Emoji Combiner — mix and match emojis\n• Scroll Animation Generator — add smooth animations' }, { title: '💡 Pro Tip: Keyboard Shortcuts', body: 'Did you know most of our tools support keyboard shortcuts? Press Ctrl+Enter to submit, Ctrl+Shift+C to copy output, and Escape to clear.' }, { title: '📊 Community Stats', body: 'We now have 695+ free tools used by over 2 million people every month. Thank you for being part of our community!' } ]; renderSections(); renderPreview(); } function doClear() { $('#senderName').value = ''; $('#subject').value = ''; $('#previewText').value = ''; $('#footer').value = ''; $('#unsubscribe').value = ''; sections = []; renderSections(); renderPreview(); } // Event listeners ['#senderName','#subject','#previewText','#headerBg','#accentColor','#bgColor','#footer','#unsubscribe'].forEach(sel => { $(sel).addEventListener('input', renderPreview); }); $('#toolbar').innerHTML = ` `; renderPreview(); GZ.renderToolPage({ category: 'text', titleKey: 'toolTitle', descKey: 'toolDesc', howToSteps: ['step1','step2','step3','step4'], related: [ {icon:'📧', href:'/text/email-template.html', name:'Email Template'}, {icon:'📄', href:'/text/press-release-generator.html', name:'Press Release'}, {icon:'✉️', href:'/text/cover-letter-generator.html', name:'Cover Letter'}, {icon:'📋', href:'/text/invoice-generator.html', name:'Invoice Generator'}, ] });