[object Object]

← back to Re Flyer Aggregator

digest: dedicated Source column (outlet name + link) + table headers so every deal notes its source (TK-10708)

56eec3bfd85f15365a7d1185f459809c01ff566f · 2026-08-19 13:52:02 -0700 · Steve Abrams

Files touched

Diff

commit 56eec3bfd85f15365a7d1185f459809c01ff566f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Aug 19 13:52:02 2026 -0700

    digest: dedicated Source column (outlet name + link) + table headers so every deal notes its source (TK-10708)
---
 scripts/build-digest.mjs | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/scripts/build-digest.mjs b/scripts/build-digest.mjs
index cbeb008..8725d37 100644
--- a/scripts/build-digest.mjs
+++ b/scripts/build-digest.mjs
@@ -14,24 +14,27 @@ const edgar = read(`edgar-new-deals-${date}.json`);
 if (!news.length && !edgar.length) { process.stdout.write(''); process.exit(0); }
 
 const esc = s => String(s || '').replace(/[<>&]/g, c => ({ '<': '&lt;', '>': '&gt;', '&': '&amp;' }[c]));
+const HEAD = `<tr style="text-align:left;color:#9aa;font-size:11px;text-transform:uppercase;letter-spacing:.4px">
+  <th style="padding:4px 10px">Price</th><th style="padding:4px 10px">Where</th>
+  <th style="padding:4px 10px">Deal</th><th style="padding:4px 10px">Source</th></tr>`;
 const row = (price, where, title, src, link) =>
-  `<tr><td style="padding:6px 10px;font-weight:700;color:#0E7C4A;white-space:nowrap">${esc(price)}</td>
-   <td style="padding:6px 10px;color:#6B7280;white-space:nowrap">${esc(where)}</td>
-   <td style="padding:6px 10px"><a href="${esc(link)}" style="color:#16357A;text-decoration:none">${esc(title)}</a>
-   <span style="color:#9aa;font-size:11px"> · ${esc(src)}</span></td></tr>`;
+  `<tr><td style="padding:6px 10px;font-weight:700;color:#0E7C4A;white-space:nowrap;border-top:1px solid #eef0f6">${esc(price)}</td>
+   <td style="padding:6px 10px;color:#6B7280;white-space:nowrap;border-top:1px solid #eef0f6">${esc(where)}</td>
+   <td style="padding:6px 10px;border-top:1px solid #eef0f6"><a href="${esc(link)}" style="color:#16357A;text-decoration:none">${esc(title)}</a></td>
+   <td style="padding:6px 10px;white-space:nowrap;border-top:1px solid #eef0f6"><a href="${esc(link)}" style="color:#8A5A00;font-weight:600;font-size:12px;text-decoration:none">${esc(src)} ↗</a></td></tr>`;
 
 const newsRows = news.map(d => row(d.label || '$?', d.location || d.feed_region, d.title, d.feed, d.link)).join('');
 const edgarRows = edgar.map(d => row(d.price_label || '$? (see filing)', d.location || d.region,
   `${(d.filer || '').split('(')[0].trim()} — ${d.property_type || 'acquisition'}${d.kind === 'closed_deal' ? ' (Item 2.01 closed)' : ''}`,
-  'SEC 8-K', d.filing_url)).join('');
+  'SEC EDGAR 8-K', d.filing_url)).join('');
 
 const html = `<div style="font-family:-apple-system,Helvetica,Arial,sans-serif;color:#222;max-width:720px">
 <h2 style="margin:0 0 2px;color:#0E2350">🏙️ Closed CRE deals — ${date}</h2>
 <p style="color:#6B7280;font-size:13px;margin:0 0 14px">${news.length} from CRE trade press · ${edgar.length} from SEC filings · West footprint · free/same-day</p>
 ${news.length ? `<h3 style="color:#16357A;margin:14px 0 4px">Trade press (private + public)</h3>
-<table style="border-collapse:collapse;width:100%;font-size:14px">${newsRows}</table>` : ''}
+<table style="border-collapse:collapse;width:100%;font-size:14px">${HEAD}${newsRows}</table>` : ''}
 ${edgar.length ? `<h3 style="color:#16357A;margin:18px 0 4px">SEC 8-K filings (public REITs)</h3>
-<table style="border-collapse:collapse;width:100%;font-size:14px">${edgarRows}</table>` : ''}
+<table style="border-collapse:collapse;width:100%;font-size:14px">${HEAD}${edgarRows}</table>` : ''}
 <p style="color:#9aa;font-size:11px;margin-top:16px">re-flyer-aggregator · TK-10708 · deduped daily · $0 sources. Prices from headlines/filings — verify before publishing.</p>
 </div>`;
 process.stdout.write(html);

← 01cc8e0 morning email digest: build-digest.mjs + email-digest.sh sen  ·  back to Re Flyer Aggregator  ·  auto-data-snapshot: 2026-08-19T14:34:38 (1 data files) — dat 62ec7fb →