1
0
Fork 0
photos/cmd/web/templates.go

46 lines
945 B
Go

package main
import (
"html/template"
lib "git.makerforce.io/photos/photos/pkg/bucket"
)
var funcs = template.FuncMap{
"ar": func(p Photo) float64 { return float64(p.Width) / float64(p.Height) },
"mul": func(a, b float64) float64 { return a * b },
"preview": preview,
}
type IndexTemplateData struct {
Assets string
Metadata lib.BucketMetadata
Photos []Photo
}
type Photo struct {
lib.Photo
lib.PhotoMetadata
}
var indexTemplate = mustTemplateAsset("index")
func mustTemplateAsset(name string) *template.Template {
buf, err := Asset("view/" + name + ".tmpl")
if err != nil {
panic(err)
}
return template.Must(
template.New(name).Funcs(funcs).Parse(string(buf)),
)
}
func preview(p Photo, height int, format lib.PhotoFormat, quality int) template.Srcset {
preview := p.GetPreview(lib.PreviewOption{
Height: height,
Format: format,
Quality: quality,
})
return template.Srcset(preview.String())
}