diff --git a/quartz/cfg.ts b/quartz/cfg.ts index bdb8ef1d7..9027c461f 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -1,4 +1,3 @@ -import { ValidDateType } from "./components/Date" import { QuartzComponent } from "./components/types" import { ValidLocale } from "./i18n" import { PluginSpecifier } from "./plugins/loader/types" @@ -68,8 +67,6 @@ export interface GlobalConfiguration { analytics: Analytics /** Glob patterns to not search */ ignorePatterns: string[] - /** Whether to use created, modified, or published as the default type of date */ - defaultDateType: ValidDateType /** Base URL to use for CNAME files, sitemaps, and RSS feeds that require an absolute URL. * Quartz will avoid using this as much as possible and use relative URLs most of the time */ diff --git a/quartz/cli/plugin-data.js b/quartz/cli/plugin-data.js index e8617ca0b..e5cdfecfe 100644 --- a/quartz/cli/plugin-data.js +++ b/quartz/cli/plugin-data.js @@ -334,7 +334,6 @@ export function createConfigFromDefault() { locale: "en-US", baseUrl: "quartz.jzhao.xyz", ignorePatterns: ["private", "templates", ".obsidian"], - defaultDateType: "created", theme: { cdnCaching: true, typography: { diff --git a/quartz/components/Date.tsx b/quartz/components/Date.tsx index 15be573e8..096cdc69b 100644 --- a/quartz/components/Date.tsx +++ b/quartz/components/Date.tsx @@ -1,4 +1,3 @@ -import { GlobalConfiguration } from "../cfg" import { ValidLocale } from "../i18n" import { QuartzPluginData } from "../plugins/vfile" @@ -9,13 +8,13 @@ interface Props { export type ValidDateType = keyof Required["dates"] -export function getDate(cfg: GlobalConfiguration, data: QuartzPluginData): Date | undefined { - if (!cfg.defaultDateType) { +export function getDate(data: QuartzPluginData): Date | undefined { + if (!data.defaultDateType) { throw new Error( - `Field 'defaultDateType' was not set in the configuration object of quartz.config.yaml. See https://quartz.jzhao.xyz/configuration#general-configuration for more details.`, + `Field 'defaultDateType' was not set. Ensure the CreatedModifiedDate plugin is configured with a 'defaultDateType' option. See https://quartz.jzhao.xyz/plugins/CreatedModifiedDate for more details.`, ) } - return data.dates?.[cfg.defaultDateType] + return data.dates?.[data.defaultDateType] } export function formatDate(d: Date, locale: ValidLocale = "en-US"): string { diff --git a/quartz/components/PageList.tsx b/quartz/components/PageList.tsx index 7bf23829c..51ceef76c 100644 --- a/quartz/components/PageList.tsx +++ b/quartz/components/PageList.tsx @@ -2,16 +2,15 @@ import { FullSlug, isFolderPath, resolveRelative } from "../util/path" import { QuartzPluginData } from "../plugins/vfile" import { Date, getDate } from "./Date" import { QuartzComponent, QuartzComponentProps } from "./types" -import { GlobalConfiguration } from "../cfg" export type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number -export function byDateAndAlphabetical(cfg: GlobalConfiguration): SortFn { +export function byDateAndAlphabetical(): SortFn { return (f1, f2) => { // Sort by date/alphabetical if (f1.dates && f2.dates) { // sort descending - return getDate(cfg, f2)!.getTime() - getDate(cfg, f1)!.getTime() + return getDate(f2)!.getTime() - getDate(f1)!.getTime() } else if (f1.dates && !f2.dates) { // prioritize files with dates return -1 @@ -26,7 +25,7 @@ export function byDateAndAlphabetical(cfg: GlobalConfiguration): SortFn { } } -export function byDateAndAlphabeticalFolderFirst(cfg: GlobalConfiguration): SortFn { +export function byDateAndAlphabeticalFolderFirst(): SortFn { return (f1, f2) => { // Sort folders first const f1IsFolder = isFolderPath(f1.slug ?? "") @@ -37,7 +36,7 @@ export function byDateAndAlphabeticalFolderFirst(cfg: GlobalConfiguration): Sort // If both are folders or both are files, sort by date/alphabetical if (f1.dates && f2.dates) { // sort descending - return getDate(cfg, f2)!.getTime() - getDate(cfg, f1)!.getTime() + return getDate(f2)!.getTime() - getDate(f1)!.getTime() } else if (f1.dates && !f2.dates) { // prioritize files with dates return -1 @@ -58,7 +57,7 @@ type Props = { } & QuartzComponentProps export const PageList: QuartzComponent = ({ cfg, fileData, allFiles, limit, sort }: Props) => { - const sorter = sort ?? byDateAndAlphabeticalFolderFirst(cfg) + const sorter = sort ?? byDateAndAlphabeticalFolderFirst() let list = allFiles.sort(sorter) if (limit) { list = list.slice(0, limit) @@ -73,9 +72,7 @@ export const PageList: QuartzComponent = ({ cfg, fileData, allFiles, limit, sort return (