48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { QuartzComponent } from "./components/types"
 | 
						|
import { PluginTypes } from "./plugins/types"
 | 
						|
import { Theme } from "./theme"
 | 
						|
 | 
						|
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: GlobalConfiguration,
 | 
						|
  plugins: PluginTypes,
 | 
						|
}
 | 
						|
 | 
						|
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">
 |