FEATURE: allow customizing default timezone for email. (#32964)

1. Changes default email format to llll (eg: Tue, May 8, 2018 2:00 AM)
from 2018-05-08T00:00:00Z UTC which is not nice on the eyes
2. Adds `discourse_local_dates_email_timezone` which allows configuring
default timezone in emails
3. Improved help text on site settings (format / timezone)

---------

Co-authored-by: Gary Pendergast <gary@pento.net>
This commit is contained in:
Sam
2025-05-29 14:17:37 +10:00
committed by GitHub
parent 0142d352a8
commit 2261d3711b
6 changed files with 58 additions and 5 deletions

View File

@ -30,8 +30,10 @@ function addLocalDate(attributes, state, buffer, applyDataAttributes) {
const emailFormat =
state.md.options.discourse.datesEmailFormat || moment.defaultFormat;
const emailTimezone =
state.md.options.discourse.datesEmailTimezone || "Etc/UTC";
attributes.emailPreview = `${dateTime.utc().format(emailFormat)} UTC`;
attributes.emailPreview = `${dateTime.utc().tz(emailTimezone).format(emailFormat)}`;
let token = new state.Token("span_open", "span", 1);
token.attrs = [["class", "discourse-local-date"]];
@ -112,6 +114,7 @@ export function setup(helper) {
helper.registerOptions((opts, siteSettings) => {
opts.datesEmailFormat = siteSettings.discourse_local_dates_email_format;
opts.datesEmailTimezone = siteSettings.discourse_local_dates_email_timezone;
opts.features["discourse-local-dates"] =
!!siteSettings.discourse_local_dates_enabled;