All green. You're good to build and deploy. Here's a summary of everything done since your last commit:
--- **🐛 Bugs fixed** - Study hub/lesson pages turned gold — CSS merge error with `.study-index-page` fixed - Lesson announcements not saving — `announcement` field missing from `sanitizeColossiansStudySections` whitelist - 2FA email method blocked with "not configured" — guard checked `totpSecret` instead of `twoFaMethod` - `STUDY_REMINDERS_FILE` constant never defined — server would crash on first reminder write - `sanitizeStudyUsers` stripped all 2FA fields — data lost on every restart - `scheduleStudyReminders` missing from refactored modules **✨ Features added** - Commentary supports paragraph formatting (double newline = new paragraph) - Lesson announcement banner — full-width gold stripe at top of lesson page - "Take the Quiz" renamed to "Discussion Questions" throughout - Students must complete checkpoint before unlocking next lesson (lesson list + Next Lesson button both gate on it) - No checkpoint questions → simple Mark as Completed button as fallback - Truth For Life syndication widget on homepage - Newsletter welcome email updated to your new HTML template **🔧 Maintenance** - `server.js` refactored from 6,013 lines into 12 focused modules
This commit is contained in:
@@ -191,12 +191,10 @@ export function register(app) {
|
||||
: DEFAULT_SEO.canonicalUrl
|
||||
const welcomeSubject = process.env.RESEND_WELCOME_SUBJECT ?? emailConfig.welcomeEmailSubject ?? 'Welcome to Verse by Verse with Nate'
|
||||
const welcomeGreetingPrefix = emailConfig.welcomeEmailGreetingPrefix?.trim() || "Glad you're here"
|
||||
const welcomeHeading = greetingName
|
||||
? `${escapeHtml(welcomeGreetingPrefix)}, ${escapeHtml(greetingName)}.`
|
||||
: `${escapeHtml(welcomeGreetingPrefix)}.`
|
||||
const { buildAbsoluteUrl } = await import('../helpers.js')
|
||||
const welcomeTemplate = buildContactWelcomeEmailTemplate({
|
||||
greetingName,
|
||||
welcomeGreetingPrefix,
|
||||
welcomeIntro: emailConfig.welcomeEmailIntro?.trim() || 'Thanks for subscribing to Verse by Verse with Nate - a Bible teaching podcast where we slow down, dig into the text, and pull out the nuggets God has for us word by word.',
|
||||
welcomeCurrentSeries: emailConfig.welcomeEmailCurrentSeries?.trim() || "Right now we're working through the book of Titus - a short letter packed with practical wisdom about grace, godliness, and what the Christian life looks like when it's rooted in sound doctrine.",
|
||||
welcomeStartHereTitle: emailConfig.welcomeEmailStartHereTitle?.trim() || 'Episode 1 - Introduction to Titus',
|
||||
@@ -207,7 +205,6 @@ export function register(app) {
|
||||
welcomeScripture: emailConfig.welcomeEmailScripture?.trim() || 'For the grace of God has appeared, bringing salvation to all people.',
|
||||
welcomeScriptureRef: emailConfig.welcomeEmailScriptureRef?.trim() || 'Titus 2:11 - BSB',
|
||||
welcomeSignoff: emailConfig.welcomeEmailSignoff?.trim() || 'Grace and peace,\nNate',
|
||||
welcomeHeading,
|
||||
welcomeSpotifyUrl: buildAbsoluteUrl(welcomeBaseUrl, process.env.RESEND_WELCOME_SPOTIFY_URL ?? emailConfig.welcomeEmailSpotifyUrl ?? '/spotify'),
|
||||
welcomeAppleUrl: buildAbsoluteUrl(welcomeBaseUrl, process.env.RESEND_WELCOME_APPLE_URL ?? emailConfig.welcomeEmailAppleUrl ?? '/apple'),
|
||||
welcomeAmazonUrl: buildAbsoluteUrl(welcomeBaseUrl, process.env.RESEND_WELCOME_AMAZON_URL ?? emailConfig.welcomeEmailAmazonUrl ?? '/amazon'),
|
||||
|
||||
Reference in New Issue
Block a user