feat: add frame resolution to page type dispatcher and config loader

This commit is contained in:
saberzero1 2026-02-28 04:31:51 +01:00
parent 995a5986a7
commit e6049847bd
No known key found for this signature in database
3 changed files with 10 additions and 0 deletions

View File

@ -543,6 +543,11 @@ export async function loadQuartzLayout(layoutOverrides?: {
}
}
// Apply frame template override
if (override.template) {
ptLayout.frame = override.template
}
byPageType[pageType] = ptLayout
}
}

View File

@ -159,6 +159,8 @@ export interface FlexGroupConfig {
export interface PageTypeLayoutOverride {
exclude?: string[]
positions?: Partial<Record<LayoutPosition, PluginLayoutDeclaration[]>>
/** Override the page frame template (e.g. "default", "full-width", "minimal") */
template?: string
}
/** Top-level layout section of quartz.config.yaml */

View File

@ -21,6 +21,8 @@ function resolveLayout(
byPageType: Record<string, Partial<FullPageLayout>>,
): FullPageLayout {
const overrides = byPageType[pageType.layout] ?? {}
// Frame priority: config override > page type declaration > default
const frame = overrides.frame ?? pageType.frame ?? "default"
return {
head: overrides.head ?? sharedDefaults.head!,
header: overrides.header ?? sharedDefaults.header ?? [],
@ -30,6 +32,7 @@ function resolveLayout(
left: overrides.left ?? sharedDefaults.left ?? [],
right: overrides.right ?? sharedDefaults.right ?? [],
footer: overrides.footer ?? sharedDefaults.footer!,
frame,
}
}