Welcome to Quartz v4.2.2 quartz/plugins/transformers/lastmod.ts else if (source === "frontmatter" && file.data.frontmatter) { created ||= file.data.frontmatter.created_at as MaybeDate modified ||= file.data.frontmatter.updated_at as MaybeDate modified ||= file.data.frontmatter.updated_at as MaybeDate modified ||= file.data.frontmatter["last-modified"] as MaybeDate published ||= file.data.frontmatter.publishDate as MaybeDate } quartz/cfg.ts export interface GlobalConfiguration { /** Whether to use created, modified, or published as the default type of date */ defaultDateType: ValidDateType displayDateType: ValidDateType[] } quartz.config.ts defaultDateType: "created", displayDateType: ["created", "modified"], quartz/components/Date.tsx export function getDate(cfg: GlobalConfiguration, data: QuartzPluginData): Date | undefined { if (!cfg.defaultDateType) { throw new Error( `Field 'defaultDateType' was not set in the configuration object of quartz.config.ts. See https://quartz.jzhao.xyz/configuration#general-configuration for more details.`, ) } return data.dates?.[cfg.defaultDateType] } quartz/components/ContentMeta.tsx function ContentMetadata({ cfg, fileData, displayClass }: QuartzComponentProps) { const text = fileData.text if (text) { const segments: string[] = [] if (fileData.dates) { // segments.push(formatDate(getDate(cfg, fileData)!, cfg.locale)) cfg.displayDateType.forEach((dateType) => { let dateTypeLabel = (dateType ==="created") ? 'Created:': 'Modified:'; segments.push(`${dateTypeLabel} ${formatDate(fileData.dates?.[dateType]!)}`) }) } // Display reading time if enabled if (options.showReadingTime) { const { text: timeTaken, words: _words } = readingTime(text) segments.push(timeTaken) } return <p class={classNames(displayClass, "content-meta")}>{segments.join(", ")}</p> } else { return null } }