/** * Injects "From Satirist to Serious →" link blocks from satirist-serious-links.json * into elements marked data-satirist-id on satirist.html. */ (function () { function esc(s) { const d = document.createElement('div'); d.textContent = s == null ? '' : String(s); return d.innerHTML; } function renderBlock(article) { const links = (article.serious_links || []) .map(function (l) { return '
  • ' + esc(l.label) + '
  • '; }) .join(''); let meta = ''; if (article.signal_score != null) { meta = 'GMIIE Signal ' + article.signal_score + '/100'; } if (article.rings && article.rings.length) { meta += (meta ? ' · ' : '') + article.rings.join(', ') + ' Ring' + (article.rings.length > 1 ? 's' : ''); } const metaHtml = meta ? '
    ' + esc(meta) + '
    ' : ''; return ( '
    ' + '
    From Satirist to Serious →
    ' + '' + metaHtml + '
    ' ); } function placeBlock(el, node) { var fc = el.querySelector('.fact-check-box'); if (fc) { fc.after(node); return; } var body = el.querySelector('.sc-body'); if (body) { body.after(node); return; } body = el.querySelector('.article-body'); if (body) { body.after(node); return; } var humor = el.querySelector('.lc-humor'); if (humor) { humor.after(node); return; } el.appendChild(node); } function injectLinks(data) { if (!data || !Array.isArray(data.articles)) return; var map = new Map(data.articles.map(function (a) { return [a.id, a]; })); document.querySelectorAll('[data-satirist-id]').forEach(function (el) { var id = el.getAttribute('data-satirist-id'); var article = map.get(id); if (!article || el.querySelector('.satirist-serious')) return; var wrap = document.createElement('div'); wrap.innerHTML = renderBlock(article); placeBlock(el, wrap.firstElementChild); }); } fetch('/data/satirist-serious-links.json', { signal: AbortSignal.timeout(5000) }) .then(function (r) { return r.ok ? r.json() : null; }) .then(injectLinks) .catch(function () {}); })();