themes-coffee/master_pages.go
Alex Dunmow 11c6c8c63e initial: theme plugin coffee
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/coffee.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 14:11:22 +08:00

96 lines
2.5 KiB
Go

package main
import "git.dev.alexdunmow.com/block/core/plugin"
// DefaultMasterPages returns the default master pages the Coffee theme seeds.
// Spec §7. Two masters: default-master (default + article templates) and
// landing-master (landing template only).
func DefaultMasterPages() []plugin.MasterPageDefinition {
return []plugin.MasterPageDefinition{
{
Key: "coffee:default-master",
Title: "Coffee Default Master",
PageTemplates: []string{"default", "article"},
Blocks: []plugin.MasterPageBlock{
{
BlockKey: "navbar",
Title: "Main Navigation",
Content: map[string]any{"menuName": "main"},
Slot: "header",
SortOrder: 0,
},
{
BlockKey: "coffee:hours_strip",
Title: "Hours Strip",
Content: map[string]any{"todayLabel": "Today"},
Slot: "header",
SortOrder: 1,
},
{
BlockKey: "slot",
Title: "Main Content",
Content: map[string]any{"slotName": "main", "placeholder": "Pour something in here"},
Slot: "main",
SortOrder: 0,
},
{
BlockKey: "coffee:footer",
Title: "Site Footer",
Content: map[string]any{"showLocation": true},
Slot: "footer",
SortOrder: 0,
},
},
},
{
Key: "coffee:landing-master",
Title: "Coffee Landing Master",
PageTemplates: []string{"landing"},
Blocks: []plugin.MasterPageBlock{
{
BlockKey: "navbar",
Title: "Main Navigation",
Content: map[string]any{"menuName": "main"},
Slot: "header",
SortOrder: 0,
},
{
BlockKey: "slot",
Title: "Hero Slot",
Content: map[string]any{"slotName": "hero", "placeholder": "Drop a hero block"},
Slot: "hero",
SortOrder: 0,
},
{
BlockKey: "coffee:featured_pour",
Title: "Featured Pour",
Content: map[string]any{},
Slot: "menu",
SortOrder: 0,
},
{
BlockKey: "slot",
Title: "Story Slot",
Content: map[string]any{"slotName": "story", "placeholder": "Tell the story"},
Slot: "story",
SortOrder: 0,
},
{
BlockKey: "coffee:location_card",
Title: "Location Card",
Content: map[string]any{},
Slot: "cta",
SortOrder: 0,
},
{
BlockKey: "coffee:footer",
Title: "Site Footer",
Content: map[string]any{"showLocation": true},
Slot: "footer",
SortOrder: 0,
},
},
},
}
}