feat: add favicon
3 files changed, 14 insertions(+), 35 deletions(-)
M frontend/assets.go → frontend/assets.go
@@ -5,6 +5,7 @@ "fmt" "hash/fnv" "io" "io/fs" + "path/filepath" "github.com/Southclaws/fault" "github.com/Southclaws/fault/fmsg"@@ -56,51 +57,28 @@ Filename: filename, }, nil } -func (a *AssetCollection) hashScripts() error { - scripts, err := fs.Glob(Files, "static/**.js") +func (a *AssetCollection) Rehash() (err error) { + a.Scripts = []*Asset{} + a.Stylesheets = []*Asset{} + + files, err := fs.Glob(Files, "static/**") if err != nil { return fault.Wrap(err, fmsg.With("could not glob files")) } - for _, filename := range scripts { + + for _, filename := range files { asset, err := newAsset(filename) if err != nil { return err } - a.Scripts = append(a.Scripts, asset) - a.ByPath[asset.URL] = asset - } - - return nil -} - -func (a *AssetCollection) hashStyles() error { - styles, err := fs.Glob(Files, "static/**.css") - if err != nil { - return fault.Wrap(err, fmsg.With("could not glob files")) - } - for _, filename := range styles { - asset, err := newAsset(filename) - if err != nil { - return err + switch filepath.Ext(filename) { + case ".js": + a.Scripts = append(a.Scripts, asset) + case ".css": + a.Stylesheets = append(a.Stylesheets, asset) } - a.Stylesheets = append(a.Stylesheets, asset) a.ByPath[asset.URL] = asset } return nil } - -func (a *AssetCollection) Rehash() (err error) { - a.Scripts = []*Asset{} - err = a.hashScripts() - if err != nil { - return err - } - a.Stylesheets = []*Asset{} - err = a.hashStyles() - if err != nil { - return err - } - - return nil -}
M internal/components/page.go → internal/components/page.go
@@ -21,6 +21,7 @@ Meta(Name("viewport"), Content("width=device-width, initial-scale=1")), TitleEl(g.Text("Searchix"), g.If(config.DevMode, g.Text(" (Dev)"))), g.Map(tdata.Assets.Stylesheets, css), g.Raw(tdata.ExtraHeadHTML), + Link(Rel("icon"), Href("/static/favicon.ico")), g.If(len(tdata.Sources) > 0, Link( Rel("search"),