themes-lcars/embed.go
Alex Dunmow e992d8247d feat: LCARS theme plugin — Star Trek computer interface
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>
2026-06-02 23:11:11 +08:00

61 lines
1013 B
Go

package main
import (
"embed"
"io/fs"
"net/http"
"git.dev.alexdunmow.com/block/core/plugin"
)
//go:embed assets/*
var assetsFS embed.FS
//go:embed schemas/*
var schemasFS embed.FS
//go:embed templates/*
var templateFS embed.FS
//go:embed presets.json
var presetsData []byte
//go:embed fonts.json
var fontsData []byte
//go:embed plugin.mod
var pluginModBytes []byte
func Assets() fs.FS {
sub, _ := fs.Sub(assetsFS, "assets")
return sub
}
func SchemasFS() fs.FS {
sub, _ := fs.Sub(schemasFS, "schemas")
return sub
}
func TemplatesFS() fs.FS {
sub, _ := fs.Sub(templateFS, "templates")
return sub
}
func AssetsHandler() http.Handler {
return http.FileServer(http.FS(Assets()))
}
func ThemePresets() []byte { return presetsData }
func BundledFonts() []byte { return fontsData }
func ThemeCSSManifest() *plugin.CSSManifest {
css, err := assetsFS.ReadFile("assets/style.css")
if err != nil {
return &plugin.CSSManifest{}
}
return &plugin.CSSManifest{
InputCSSAppend: string(css),
}
}