| | |
| | | import { PluginTypes } from "./plugins" |
| | | import { QuartzComponent } from "./components/types" |
| | | import { PluginTypes } from "./plugins/types" |
| | | import { Theme } from "./theme" |
| | | |
| | | export interface ColorScheme { |
| | | light: string, |
| | | lightgray: string, |
| | | gray: string, |
| | | darkgray: string, |
| | | dark: string, |
| | | secondary: string, |
| | | tertiary: string, |
| | | highlight: string |
| | | export type Analytics = null |
| | | | { |
| | | provider: 'plausible' |
| | | } |
| | | | { |
| | | provider: 'google', |
| | | tagId: 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[], |
| | | /** 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, |
| | | theme: Theme |
| | | } |
| | | |
| | | export interface QuartzConfig { |
| | | configuration: { |
| | | siteTitle: string, |
| | | /** How to resolve Markdown paths */ |
| | | markdownLinkResolution: 'absolute' | 'relative' |
| | | /** Strips folders from a link so that it looks nice */ |
| | | prettyLinks: boolean |
| | | /** Whether to process and render latex (increases bundle size) */ |
| | | enableLatex: boolean, |
| | | /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ |
| | | enableSPA: boolean, |
| | | /** Glob patterns to not search */ |
| | | ignorePatterns: string[], |
| | | }, |
| | | configuration: GlobalConfiguration, |
| | | plugins: PluginTypes, |
| | | theme: { |
| | | typography: { |
| | | header: string, |
| | | body: string, |
| | | code: string |
| | | }, |
| | | colors: { |
| | | lightMode: ColorScheme, |
| | | darkMode: ColorScheme |
| | | } |
| | | } |
| | | } |
| | | |
| | | export interface FullPageLayout { |
| | | head: QuartzComponent |
| | | header: QuartzComponent[], |
| | | beforeBody: QuartzComponent[], |
| | | pageBody: QuartzComponent, |
| | | left: QuartzComponent[], |
| | | right: QuartzComponent[], |
| | | footer: QuartzComponent, |
| | | } |
| | | |
| | | export type PageLayout = Pick<FullPageLayout, "beforeBody" | "left" | "right"> |