package main import ( "encoding/json" "os" "git.jojodev.com/jolheiser/simpleicons" "github.com/google/go-jsonnet" ) type Link struct { Name string `json:"name"` URL string `json:"url"` IconName string `json:"icon"` } func (l Link) Icon() simpleicons.Icon { return simpleicons.Icons[l.IconName] } //go:generate go run . //go:generate tailwind-ctp-mocha -o ./dist/styles.css --minify func main() { var links struct { Links []Link `json:"links"` } vm := jsonnet.MakeVM() data, err := vm.EvaluateFile("links.jsonnet") if err != nil { panic(err) } if err := json.Unmarshal([]byte(data), &links); err != nil { panic(err) } if err := os.MkdirAll("dist", os.ModePerm); err != nil { panic(err) } html, err := os.Create("dist/index.html") if err != nil { panic(err) } defer html.Close() err = index(links.Links).Render(html) if err != nil { panic(err) } }