tijl.dev-core/internal/assets/svg.go

51 lines
938 B
Go
Raw Normal View History

2024-08-19 22:32:43 +02:00
package assets
import (
"html/template"
"path/filepath"
"strings"
2024-08-20 13:35:49 +02:00
2024-08-22 12:57:38 +02:00
"git.tijl.dev/tijl/tijl.dev/assets"
2024-08-21 01:08:47 +02:00
"git.tijl.dev/tijl/tijl.dev/modules/logger"
2024-08-19 22:32:43 +02:00
)
var SVGData map[string]string
2024-08-20 13:35:49 +02:00
func loadSVGs() {
2024-08-19 22:32:43 +02:00
SVGData = make(map[string]string)
2024-08-22 12:57:38 +02:00
files, err := assets.Embed.ReadDir("icons")
2024-08-19 22:32:43 +02:00
if err != nil {
2024-08-21 01:08:47 +02:00
log.Fatal().Err(err)
2024-08-19 22:32:43 +02:00
}
for _, file := range files {
2024-08-22 12:57:38 +02:00
if file.IsDir() {
continue
}
if filepath.Ext(file.Name()) != ".svg" {
continue
}
data, err := assets.Embed.ReadFile(filepath.Join("icons", file.Name()))
2024-08-19 22:32:43 +02:00
if err != nil {
2024-08-21 01:08:47 +02:00
log.Fatal().Err(err)
2024-08-19 22:32:43 +02:00
continue
}
2024-08-22 12:57:38 +02:00
filename := file.Name()
2024-08-19 22:32:43 +02:00
key := strings.TrimSuffix(filename, filepath.Ext(filename))
SVGData[key] = string(data)
2024-08-22 12:57:38 +02:00
log.Debug().Str("filename", filename).Msg("assets.loadSVGs: loaded")
2024-08-19 22:32:43 +02:00
}
2024-08-20 13:35:49 +02:00
2024-08-22 13:47:16 +02:00
log.Info().Msg("loaded svg files")
2024-08-19 22:32:43 +02:00
}
func Svg(name string) template.HTML {
if svg, ok := SVGData[name]; ok {
return template.HTML(svg)
}
return ""
}