From 156abc161a27d50cd12f4e1af4b3b747fd86ce5d Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Mon, 1 Jun 2026 15:23:19 -0700 Subject: [PATCH] Feat: add newsletter page renderer + sitemap entry Co-authored-by: Opus 4.8 --- scripts/lib/renderers.mjs | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/scripts/lib/renderers.mjs b/scripts/lib/renderers.mjs index b8e9d35..f1819f8 100644 --- a/scripts/lib/renderers.mjs +++ b/scripts/lib/renderers.mjs @@ -85,6 +85,98 @@ ${nav} ${footer} `; +export const renderNewsletterPage = () => ` +${shellHead({ + title: "Newsletter — apophenia.news", + desc: "Subscribe to the apophenia.news newsletter. We won't spam you with everything — only the good stuff.", + image: "https://direct-img.link/cosmic+newsletter+signal+envelope+minimal", + url: `${SITE_URL}/newsletter/`, + type: "website" +})} +${nav} +
+
+

Newsletter

+

Get the signal, skip the noise

+

+ The sharpest pattern analysis, delivered straight to your inbox. We won't spam you with everything — only the good stuff. No filler, no daily blasts, just the pieces worth your attention. +

+ +
+
+ + +
+ +

+ + You're in. Welcome to the pattern. +

+

+ + +

+ +

Unsubscribe anytime. We never share your email.

+
+
+ + +
+${footer} +`; + export const renderWritePage = () => ` ${shellHead({ title: "Become a writer for apophenia.news", @@ -199,6 +291,7 @@ export const renderSitemap = (articles, authors = []) => { const now = toISODate(new Date()); const urls = [ { loc: `${SITE_URL}/`, lastmod: now }, + { loc: `${SITE_URL}/newsletter/`, lastmod: now }, { loc: `${SITE_URL}/write/`, lastmod: now }, ...authors.map((a) => ({ loc: `${SITE_URL}/author/${a.slug}/`, lastmod: now })), ...articles.map((a) => ({ loc: `${SITE_URL}/${a.slug}/`, lastmod: toISODate(a.date || new Date()) }))