First-class pongo2 theme with 4 color presets (Federation, Red Alert, Sickbay, Engineering), 3 custom blocks (header, sidebar, panel), 2 page templates, heading/text overrides, email wrapper, bundled Antonio font, and full LCARS CSS with elbow brackets, pill buttons, and rounded bars. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.8 KiB
Go
51 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"git.dev.alexdunmow.com/block/core/blocks"
|
|
"git.dev.alexdunmow.com/block/core/templates"
|
|
"git.dev.alexdunmow.com/block/core/templates/pongo"
|
|
)
|
|
|
|
var engine = pongo.NewEngine(TemplatesFS(), "/templates/lcars/style.css")
|
|
|
|
func Register(tr templates.TemplateRegistry, br blocks.BlockRegistry) error {
|
|
tr.RegisterSystemTemplate(templates.SystemTemplateMeta{
|
|
Key: "lcars",
|
|
Title: "LCARS",
|
|
Description: "Star Trek LCARS computer interface theme",
|
|
})
|
|
|
|
if err := tr.RegisterPageTemplate("lcars", templates.PageTemplateMeta{
|
|
Key: "default",
|
|
Title: "Standard Display",
|
|
Description: "Classic LCARS layout with sidebar and header frame",
|
|
Slots: []string{"header", "sidebar", "main", "footer"},
|
|
}, engine.MustPageTemplate("default.html")); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := tr.RegisterPageTemplate("lcars", templates.PageTemplateMeta{
|
|
Key: "full-display",
|
|
Title: "Full Display",
|
|
Description: "Full-width LCARS display without sidebar",
|
|
Slots: []string{"header", "main", "footer"},
|
|
}, engine.MustPageTemplate("full_display.html")); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := br.LoadSchemasFromFS(SchemasFS()); err != nil {
|
|
return err
|
|
}
|
|
|
|
br.Register(LCARSHeaderMeta, engine.MustBlockTemplateWithDefaults("blocks/header.html", headerDefaults))
|
|
br.Register(LCARSSidebarMeta, engine.MustBlockTemplateWithDefaults("blocks/sidebar.html", sidebarDefaults))
|
|
br.Register(LCARSPanelMeta, engine.MustBlockTemplate("blocks/panel.html"))
|
|
|
|
br.RegisterTemplateOverride("lcars", "heading", engine.MustTemplateOverride("blocks/heading_override.html"))
|
|
br.RegisterTemplateOverride("lcars", "text", engine.MustTemplateOverride("blocks/text_override.html"))
|
|
|
|
tr.RegisterEmailWrapper("lcars", engine.MustEmailWrapper("email_wrapper.html"))
|
|
|
|
return nil
|
|
}
|