From c538c151c7462ad0395ff2c15c5e11e89e362aa8 Mon Sep 17 00:00:00 2001
From: Striven <sg.striven@cutecat.club>
Date: Sat, 04 Apr 2026 19:47:16 +0000
Subject: [PATCH] Initial commit
---
quartz/cfg.ts | 105 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 82 insertions(+), 23 deletions(-)
diff --git a/quartz/cfg.ts b/quartz/cfg.ts
index 49698ab..c97d613 100644
--- a/quartz/cfg.ts
+++ b/quartz/cfg.ts
@@ -1,46 +1,105 @@
+import { ValidDateType } from "./components/Date"
import { QuartzComponent } from "./components/types"
+import { ValidLocale } from "./i18n"
import { PluginTypes } from "./plugins/types"
-import { Theme } from "./theme"
+import { Theme } from "./util/theme"
-export type Analytics = null
+export type Analytics =
+ | null
| {
- provider: 'plausible'
- }
+ provider: "plausible"
+ host?: string
+ }
| {
- provider: 'google',
- tagId: string
- }
+ provider: "google"
+ tagId: string
+ }
+ | {
+ provider: "umami"
+ websiteId: string
+ host?: string
+ }
+ | {
+ provider: "goatcounter"
+ websiteId: string
+ host?: string
+ scriptSrc?: string
+ }
+ | {
+ provider: "posthog"
+ apiKey: string
+ host?: string
+ }
+ | {
+ provider: "tinylytics"
+ siteId: string
+ }
+ | {
+ provider: "cabin"
+ host?: string
+ }
+ | {
+ provider: "clarity"
+ projectId?: string
+ }
+ | {
+ provider: "matomo"
+ host: string
+ siteId: string
+ }
+ | {
+ provider: "vercel"
+ }
+ | {
+ provider: "rybbit"
+ siteId: string
+ host?: string
+ }
export interface GlobalConfiguration {
- pageTitle: string,
+ pageTitle: string
+ pageTitleSuffix?: string
/** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */
- enableSPA: boolean,
+ enableSPA: boolean
/** Whether to display Wikipedia-style popovers when hovering over links */
- enablePopovers: boolean,
+ enablePopovers: boolean
/** Analytics mode */
- analytics: Analytics
+ analytics: Analytics
/** Glob patterns to not search */
- ignorePatterns: string[],
+ 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
- */
- canonicalUrl?: string,
+ * Quartz will avoid using this as much as possible and use relative URLs most of the time
+ */
+ baseUrl?: string
theme: Theme
+ /**
+ * Allow to translate the date in the language of your choice.
+ * Also used for UI translation (default: en-US)
+ * Need to be formatted following BCP 47: https://en.wikipedia.org/wiki/IETF_language_tag
+ * The first part is the language (en) and the second part is the script/region (US)
+ * Language Codes: https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
+ * Region Codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
+ */
+ locale: ValidLocale
}
export interface QuartzConfig {
- configuration: GlobalConfiguration,
- plugins: PluginTypes,
+ configuration: GlobalConfiguration
+ plugins: PluginTypes
}
export interface FullPageLayout {
head: QuartzComponent
- header: QuartzComponent[],
- beforeBody: QuartzComponent[],
- pageBody: QuartzComponent,
- left: QuartzComponent[],
- right: QuartzComponent[],
- footer: QuartzComponent,
+ header: QuartzComponent[]
+ beforeBody: QuartzComponent[]
+ pageBody: QuartzComponent
+ afterBody: QuartzComponent[]
+ left: QuartzComponent[]
+ right: QuartzComponent[]
+ footer: QuartzComponent
}
export type PageLayout = Pick<FullPageLayout, "beforeBody" | "left" | "right">
+export type SharedLayout = Pick<FullPageLayout, "head" | "header" | "footer" | "afterBody">
--
Gitblit v1.10.0