41 lines
728 B
Go
41 lines
728 B
Go
|
package assets
|
||
|
|
||
|
import (
|
||
|
"html/template"
|
||
|
"log"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
var SVGData map[string]string
|
||
|
|
||
|
func LoadSVGs() {
|
||
|
SVGData = make(map[string]string)
|
||
|
|
||
|
dir := "static/assets"
|
||
|
|
||
|
files, err := filepath.Glob(filepath.Join(dir, "*.svg"))
|
||
|
if err != nil {
|
||
|
log.Fatalf("Error loading SVG files: %v", err)
|
||
|
}
|
||
|
|
||
|
for _, file := range files {
|
||
|
data, err := os.ReadFile(file)
|
||
|
if err != nil {
|
||
|
log.Printf("Error reading SVG file %s: %v", file, err)
|
||
|
continue
|
||
|
}
|
||
|
filename := filepath.Base(file)
|
||
|
key := strings.TrimSuffix(filename, filepath.Ext(filename))
|
||
|
SVGData[key] = string(data)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func Svg(name string) template.HTML {
|
||
|
if svg, ok := SVGData[name]; ok {
|
||
|
return template.HTML(svg)
|
||
|
}
|
||
|
return ""
|
||
|
}
|