package main import ( "html/template" "os" "time" sql "github.com/FloatTech/sqlite" "github.com/fumiama/emozi" ) const head = `// Code generated by codegen/radical. 已经经过修改, 不要手动重新运行. package emozi // 部首后备 内嵌的部首到颜文字的映射, 是第二优先查询顺位. 第一顺位是数据库的部首表. 第三位是回落到 🈳. var 部首后备 = map[rune]string{ {{range .}} '{{.R}}': string(EmptyMark),{{end}} } ` func main() { db := sql.Sqlite{DBPath: emozi.EmoziDatabasePath} err := db.Open(time.Minute) if err != nil { panic(err) } defer db.Close() type r struct { R rune } type sr struct { R string } var s r var ss = []sr{} db.QueryFor("SELECT DISTINCT R FROM emozi;", &s, func() error { ss = append(ss, sr{R: string(s.R)}) return nil }) t, err := template.New("list").Parse(head) if err != nil { panic(err) } f, err := os.Create("radical.go") if err != nil { panic(err) } defer f.Close() err = t.Execute(f, ss) if err != nil { panic(err) } }