From 35cd040122776ee369e1fbb9bc1dee0cdf3c2f03 Mon Sep 17 00:00:00 2001 From: haopengzhan Date: Wed, 25 Feb 2026 23:38:18 -0800 Subject: [PATCH] fix: embed fruit.svg to resolve container initialization failure --- pkg/learnnumber/data/icons.go | 34 +++++++++++++++++++++++++--------- pkg/learnnumber/tool.go | 4 ++-- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/pkg/learnnumber/data/icons.go b/pkg/learnnumber/data/icons.go index 4f4c39c..6b9932c 100644 --- a/pkg/learnnumber/data/icons.go +++ b/pkg/learnnumber/data/icons.go @@ -1,12 +1,15 @@ package data import ( + _ "embed" "encoding/xml" "fmt" - "os" "strings" ) +//go:embed fruit.svg +var fruitSVGContent []byte + type Icon struct { Name string Paths []string @@ -42,16 +45,24 @@ type Path struct { D string `xml:"d,attr"` } -func LoadIcons(filePath string) error { - data, err := os.ReadFile(filePath) - if err != nil { return err } +func LoadIconsFromEmbed() error { var svg SVG - if err := xml.Unmarshal(data, &svg); err != nil { return err } + if err := xml.Unmarshal(fruitSVGContent, &svg); err != nil { + return err + } + var objectsG *G for i := range svg.Groups { - if svg.Groups[i].ID == "objects" { objectsG = &svg.Groups[i]; break } + if svg.Groups[i].ID == "objects" { + objectsG = &svg.Groups[i] + break + } } - if objectsG == nil { return nil } + + if objectsG == nil { + return nil + } + var fruitIcons []Icon for i, g := range objectsG.Groups { paths := collectPaths(g) @@ -62,6 +73,7 @@ func LoadIcons(filePath string) error { }) } } + IconCategories["fruits"] = fruitIcons return nil } @@ -70,8 +82,12 @@ func collectPaths(g G) []string { var paths []string for _, p := range g.Paths { d := strings.TrimSpace(p.D) - if d != "" { paths = append(paths, d) } + if d != "" { + paths = append(paths, d) + } + } + for _, subG := range g.Groups { + paths = append(paths, collectPaths(subG)...) } - for _, subG := range g.Groups { paths = append(paths, collectPaths(subG)...) } return paths } diff --git a/pkg/learnnumber/tool.go b/pkg/learnnumber/tool.go index 1223137..418dd5c 100644 --- a/pkg/learnnumber/tool.go +++ b/pkg/learnnumber/tool.go @@ -23,8 +23,8 @@ func (t *learnNumberTool) Emoji() string { return "🔢" } func (t *learnNumberTool) Init() error { fmt.Println("Initializing Learn-Number tool...") - // 动态加载匿名对象 - return data.LoadIcons("pkg/learnnumber/data/fruit.svg") + // 从内嵌资源加载匿名对象 + return data.LoadIconsFromEmbed() } func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) {