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>
61 lines
1013 B
Go
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),
|
|
}
|
|
}
|