diff --git a/docs/plugins/CreatedModifiedDate.md b/docs/plugins/CreatedModifiedDate.md index f4134c478..7c644249c 100644 --- a/docs/plugins/CreatedModifiedDate.md +++ b/docs/plugins/CreatedModifiedDate.md @@ -12,6 +12,7 @@ This plugin determines the created, modified, and published dates for a document This plugin accepts the following configuration options: - `priority`: The data sources to consult for date information. Highest priority first. Possible values are `"frontmatter"`, `"git"`, and `"filesystem"`. Defaults to `["frontmatter", "git", "filesystem"]`. +- `defaultTimezone`: The timezone that is assumed (IANA format, e.g. `Africa/Algiers`) when the datetime frontmatter properties do not contain offsets/timezones. Defaults to `system`: the system's local timezone. > [!warning] > If you rely on `git` for dates, make sure `defaultDateType` is set to `modified` in `quartz.config.ts`. diff --git a/quartz/plugins/transformers/lastmod.ts b/quartz/plugins/transformers/lastmod.ts index 4043695e2..4c89fd218 100644 --- a/quartz/plugins/transformers/lastmod.ts +++ b/quartz/plugins/transformers/lastmod.ts @@ -7,10 +7,17 @@ import chalk from "chalk" export interface Options { priority: ("frontmatter" | "git" | "filesystem")[] + /** + * The default timezone used when parsing datetime strings which lack an offset/timezone + * Valid options are "system" (default), "utc", an IANA string, or a UTC offset + * https://moment.github.io/luxon/#/zones?id=specifying-a-zone + */ + defaultTimezone: "system" | string } const defaultOptions: Options = { priority: ["frontmatter", "git", "filesystem"], + defaultTimezone: "system", } function parseDateString( @@ -55,8 +62,9 @@ function parseDateString( export const CreatedModifiedDate: QuartzTransformerPlugin> = (userOpts) => { const opts = { ...defaultOptions, ...userOpts } - const parseOpts = { + const parseOpts: DateTimeOptions = { setZone: true, + zone: opts.defaultTimezone, } return { name: "CreatedModifiedDate",