import { ValidDateType } from "./components/Date" import { QuartzComponent } from "./components/types" import { PluginTypes } from "./plugins/types" import { Theme } from "./util/theme" export type Analytics = | null | { provider: "plausible" } | { provider: "google" tagId: string } | { provider: "umami" websiteId: string } export interface GlobalConfiguration { pageTitle: string /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean /** Whether to display Wikipedia-style popovers when hovering over links */ enablePopovers: boolean /** Analytics mode */ 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 */ baseUrl?: string theme: Theme } export interface QuartzConfig { configuration: GlobalConfiguration plugins: PluginTypes } export interface FullPageLayout { head: QuartzComponent header: QuartzComponent[] beforeBody: QuartzComponent[] pageBody: QuartzComponent left: QuartzComponent[] right: QuartzComponent[] footer: QuartzComponent } export type PageLayout = Pick export type SharedLayout = Pick