piekarnikgosipl/html/image.templ
2026-06-02 23:39:03 +02:00

29 lines
537 B
Text

package html
import (
"crypto/sha256"
"encoding/hex"
"log"
"piekarnikgosi/utils"
)
func imageSrcDst(input string) (src, dst string) {
src = "img/" + input
hash := sha256.Sum256([]byte(input))
dst = "www/images/" + hex.EncodeToString(hash[:])[:16] + ".avif"
return src, dst
}
func ProcessImage(fileName string) string {
dst, err := utils.CopyIfNotExists(imageSrcDst(fileName))
if err != nil {
log.Fatal(err)
}
return dst[4:]
}
templ AvifImage(srcPath, alt string) {
<img src={ ProcessImage(srcPath) } alt={ alt }/>
}