package main import ( "context" "git.dev.alexdunmow.com/block/core/templates/bn" ) // Brutalist default page template: header / 12-col body / colophon footer. templ Brutalist(data PageData) { @bn.Head(bn.HeadData{ Title: data.Title, Settings: data.SiteSettings, PageMeta: data.PageMeta, ThemeMode: data.ThemeMode, ThemeCSS: data.ThemeCSS, PluginStyles: []string{"/templates/brutalist/style.css"}, StructuredData: data.StructuredData, CSSHash: data.CSSHash, PageviewNonce: data.PageviewNonce, EngagementConfig: data.EngagementConfig, }) @bn.AdminBypassBanner(data.SiteSettings)
@templ.Raw(data.Slots["header"])
if main, ok := data.Slots["main"]; ok && main != "" { @templ.Raw(main) } else {

NO CONTENT BLOCKS ASSIGNED TO THIS PAGE.

}
@bn.BodyEnd(data.SiteSettings) } // BrutalistLanding: oversized headline + project ledger. templ BrutalistLanding(data PageData) { @bn.Head(bn.HeadData{ Title: data.Title, Settings: data.SiteSettings, PageMeta: data.PageMeta, ThemeMode: data.ThemeMode, ThemeCSS: data.ThemeCSS, PluginStyles: []string{"/templates/brutalist/style.css"}, StructuredData: data.StructuredData, CSSHash: data.CSSHash, PageviewNonce: data.PageviewNonce, EngagementConfig: data.EngagementConfig, }) @bn.AdminBypassBanner(data.SiteSettings)
@templ.Raw(data.Slots["hero"])
if ledger, ok := data.Slots["ledger"]; ok && ledger != "" { @templ.Raw(ledger) }
@bn.BodyEnd(data.SiteSettings) } // BrutalistArticle: case study with metadata strip. templ BrutalistArticle(data PageData) { @bn.Head(bn.HeadData{ Title: data.Title, Settings: data.SiteSettings, PageMeta: data.PageMeta, ThemeMode: data.ThemeMode, ThemeCSS: data.ThemeCSS, PluginStyles: []string{"/templates/brutalist/style.css"}, StructuredData: data.StructuredData, CSSHash: data.CSSHash, PageviewNonce: data.PageviewNonce, EngagementConfig: data.EngagementConfig, }) @bn.AdminBypassBanner(data.SiteSettings)
@templ.Raw(data.Slots["header"])
@templ.Raw(data.Slots["meta"])
if main, ok := data.Slots["main"]; ok && main != "" { @templ.Raw(main) }
@bn.BodyEnd(data.SiteSettings) } // BrutalistFullWidth: edge-to-edge gallery layout. templ BrutalistFullWidth(data PageData) { @bn.Head(bn.HeadData{ Title: data.Title, Settings: data.SiteSettings, PageMeta: data.PageMeta, ThemeMode: data.ThemeMode, ThemeCSS: data.ThemeCSS, PluginStyles: []string{"/templates/brutalist/style.css"}, StructuredData: data.StructuredData, CSSHash: data.CSSHash, PageviewNonce: data.PageviewNonce, EngagementConfig: data.EngagementConfig, }) @bn.AdminBypassBanner(data.SiteSettings)
@templ.Raw(data.Slots["header"])
if main, ok := data.Slots["main"]; ok && main != "" { @templ.Raw(main) }
@bn.BodyEnd(data.SiteSettings) } func RenderBrutalist(ctx context.Context, doc map[string]any) templ.Component { return Brutalist(parseBrutalistPageData(doc)) } func RenderBrutalistLanding(ctx context.Context, doc map[string]any) templ.Component { return BrutalistLanding(parseBrutalistPageData(doc)) } func RenderBrutalistArticle(ctx context.Context, doc map[string]any) templ.Component { return BrutalistArticle(parseBrutalistPageData(doc)) } func RenderBrutalistFullWidth(ctx context.Context, doc map[string]any) templ.Component { return BrutalistFullWidth(parseBrutalistPageData(doc)) }