Home

jolheiser.com @36a93af5a68df1db2faf9cbad58dc2972f056e7c - refs - log -
-
https://git.jolheiser.com/jolheiser.com.git
my website
jolheiser.com / main.go
- raw -
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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)
	}
}