add releases page; fix HUGE static file perf regression

This commit is contained in:
ari melody 2025-10-21 17:15:26 +01:00
parent 31fd5da44b
commit 065a34a744
Signed by: ari
GPG key ID: CF99829C92678188
20 changed files with 233 additions and 73 deletions

View file

@ -1,12 +1,12 @@
package templates
import (
"arimelody-web/log"
"fmt"
"html/template"
"strings"
"time"
_ "embed"
"arimelody-web/log"
_ "embed"
"fmt"
"html/template"
"strings"
"time"
)
//go:embed "html/layout.html"
@ -35,10 +35,18 @@ var logsHTML string
//go:embed "html/edit-account.html"
var editAccountHTML string
//go:embed "html/edit-artist.html"
var editArtistHTML string
//go:embed "html/releases.html"
var releasesHTML string
//go:embed "html/artists.html"
var artistsHTML string
//go:embed "html/tracks.html"
var tracksHTML string
//go:embed "html/edit-release.html"
var editReleaseHTML string
//go:embed "html/edit-artist.html"
var editArtistHTML string
//go:embed "html/edit-track.html"
var editTrackHTML string
@ -62,9 +70,18 @@ var componentAddTrackHTML string
//go:embed "html/components/tracks/edittracks.html"
var componentEditTracksHTML string
var BaseTemplate = template.Must(template.New("base").Parse(
strings.Join([]string{ layoutHTML, prideflagHTML }, "\n"),
))
var BaseTemplate = template.Must(
template.New("base").Funcs(
template.FuncMap{
"hasPrefix": func(s string, prefix string) bool {
fmt.Printf("does \"%s\" start with \"%s\"?\n", s, prefix)
return strings.HasPrefix(s, prefix)
},
},
).Parse(strings.Join([]string{
layoutHTML,
prideflagHTML,
}, "\n")))
var IndexTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(
strings.Join([]string{
@ -108,6 +125,15 @@ var LogsTemplate = template.Must(template.Must(BaseTemplate.Clone()).Funcs(templ
},
}).Parse(logsHTML))
var ReleasesTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(
strings.Join([]string{
releasesHTML,
componentReleaseListItemHTML,
}, "\n"),
))
var ArtistsTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(artistsHTML))
var TracksTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(tracksHTML))
var EditReleaseTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(editReleaseHTML))
var EditArtistTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(editArtistHTML))
var EditTrackTemplate = template.Must(template.Must(BaseTemplate.Clone()).Parse(