fix: embed fruit.svg to resolve container initialization failure
Build and Push Docker Image / build (push) Successful in 2m10s
Build and Push Docker Image / build (push) Successful in 2m10s
This commit is contained in:
@@ -1,12 +1,15 @@
|
|||||||
package data
|
package data
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
_ "embed"
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//go:embed fruit.svg
|
||||||
|
var fruitSVGContent []byte
|
||||||
|
|
||||||
type Icon struct {
|
type Icon struct {
|
||||||
Name string
|
Name string
|
||||||
Paths []string
|
Paths []string
|
||||||
@@ -42,16 +45,24 @@ type Path struct {
|
|||||||
D string `xml:"d,attr"`
|
D string `xml:"d,attr"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadIcons(filePath string) error {
|
func LoadIconsFromEmbed() error {
|
||||||
data, err := os.ReadFile(filePath)
|
|
||||||
if err != nil { return err }
|
|
||||||
var svg SVG
|
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
|
var objectsG *G
|
||||||
for i := range svg.Groups {
|
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
|
var fruitIcons []Icon
|
||||||
for i, g := range objectsG.Groups {
|
for i, g := range objectsG.Groups {
|
||||||
paths := collectPaths(g)
|
paths := collectPaths(g)
|
||||||
@@ -62,6 +73,7 @@ func LoadIcons(filePath string) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IconCategories["fruits"] = fruitIcons
|
IconCategories["fruits"] = fruitIcons
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -70,8 +82,12 @@ func collectPaths(g G) []string {
|
|||||||
var paths []string
|
var paths []string
|
||||||
for _, p := range g.Paths {
|
for _, p := range g.Paths {
|
||||||
d := strings.TrimSpace(p.D)
|
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
|
return paths
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ func (t *learnNumberTool) Emoji() string { return "🔢" }
|
|||||||
|
|
||||||
func (t *learnNumberTool) Init() error {
|
func (t *learnNumberTool) Init() error {
|
||||||
fmt.Println("Initializing Learn-Number tool...")
|
fmt.Println("Initializing Learn-Number tool...")
|
||||||
// 动态加载匿名对象
|
// 从内嵌资源加载匿名对象
|
||||||
return data.LoadIcons("pkg/learnnumber/data/fruit.svg")
|
return data.LoadIconsFromEmbed()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) {
|
func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) {
|
||||||
|
|||||||
Reference in New Issue
Block a user