Home

jolheiser.com @main - refs - log -
-
https://git.jolheiser.com/jolheiser.com.git
my website
tree log patch
feat: switch from yaml to jsonnet Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQCoCf7PmyqkIpwbuCIGnuvlIN/p7BLlgIFu0K5HCLcaDzb4PwBysMf+XXGMaWUk4ri H/dciHIRcRnjmURiWxVAw= -----END SSH SIGNATURE-----
jolheiser <git@jolheiser.com>
9 months ago
7 changed files, 42 additions(+), 41 deletions(-)
README.mdgo.modgo.mod.srigo.sumlinks.jsonnetlinks.yamlmain.go
M README.mdREADME.md
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
diff --git a/README.md b/README.md
index 77aaad8492f7d8a2f3a9fa55b30daa5355e8d8f8..ade5630f76373e291c6f0a1ff9af0cd5d8c5080b 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ My [personal website](https://jolheiser.com).
 
 Uses [tailwind](https://tailwindcss.com/) (with [catppuccin btw](https://github.com/catppuccin/tailwindcss)) and [templ](https://github.com/a-h/templ) as a simple static page generator. 
 
-Links are sourced from [links.yaml](links.yaml).
+Links are sourced from [links.jsonnet](links.jsonnet).
 
 ## Dev
 
M go.modgo.mod
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
diff --git a/go.mod b/go.mod
index b7fb607b96ed107a9de88c40fbfce3a0c857a05c..6fdac75d56847e20cd8856eba258905882139e5c 100644
--- a/go.mod
+++ b/go.mod
@@ -5,5 +5,10 @@
 require (
 	git.jojodev.com/jolheiser/simpleicons v0.0.3
 	github.com/a-h/templ v0.2.778
-	gopkg.in/yaml.v3 v3.0.1
+	github.com/google/go-jsonnet v0.20.0
+)
+
+require (
+	gopkg.in/yaml.v2 v2.2.7 // indirect
+	sigs.k8s.io/yaml v1.1.0 // indirect
 )
M go.mod.srigo.mod.sri
1
2
3
4
5
6
7
8
9
diff --git a/go.mod.sri b/go.mod.sri
index 0d33c4f4bea34299bce53af21a16581b76ebfde5..ac7c6efe8b49f46c1bdb25e6f2bcc2024896ea76 100644
--- a/go.mod.sri
+++ b/go.mod.sri
@@ -1 +1 @@
-sha256-EQclwPNQJxVv2sU5zBoeHjVIbezj7irqLVmoo2c/u5I=
\ No newline at end of file
+sha256-LCjIObTQdTuKwkM+0DESmaC5gWlbX8rGQkL1hn6Iy8Q=
\ No newline at end of file
M go.sumgo.sum
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/go.sum b/go.sum
index 662b7c7c6968a086f93d7cfd2c8b2db42a940cd9..58ab33e95c25fa0c8226165c68643ffb18ce76a9 100644
--- a/go.sum
+++ b/go.sum
@@ -4,7 +4,13 @@ github.com/a-h/templ v0.2.778 h1:VzhOuvWECrwOec4790lcLlZpP4Iptt5Q4K9aFxQmtaM=
 github.com/a-h/templ v0.2.778/go.mod h1:lq48JXoUvuQrU0VThrK31yFwdRjTCnIE5bcPCM9IP1w=
 github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-jsonnet v0.20.0 h1:WG4TTSARuV7bSm4PMB4ohjxe33IHT5WVTrJSU33uT4g=
+github.com/google/go-jsonnet v0.20.0/go.mod h1:VbgWF9JX7ztlv770x/TolZNGGFfiHEVx9G6ca2eUmeA=
+github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
+github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
+gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
+sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
I links.jsonnet
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff --git a/links.jsonnet b/links.jsonnet
new file mode 100644
index 0000000000000000000000000000000000000000..2111fd9118471bfca6d45969a9b536c16350c035
--- /dev/null
+++ b/links.jsonnet
@@ -0,0 +1,17 @@
+local Link(name, url, icon=std.asciiLower(name)) = {
+  icon: icon,
+  name: name,
+  url: url,
+};
+
+{
+  links: [
+    Link('Git', 'https://git.jolheiser.com'),
+    Link('GitHub', 'https://github.com/jolheiser'),
+    Link('Gitea', 'https://gitea.com/jolheiser'),
+    Link('JoJoDev', 'https://git.jojodev.com/jolheiser', 'gitea'),
+    Link('Fediverse', 'https://social.jolheiser.com/@jolheiser', 'activitypub'),
+    Link('Bluesky', 'https://bsky.app/profile/jolheiser.com'),
+    Link('LinkedIn', 'https://linkedin.com/in/jolheiser'),
+  ],
+}
D links.yaml
 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
diff --git a/links.yaml b/links.yaml
deleted file mode 100644
index e8d60a91f80ab7d119b8cd6b389e46b934f1f68d..0000000000000000000000000000000000000000
--- a/links.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-links:
-  - name: GitHub
-    url: https://github.com/jolheiser
-    icon: github
-  - name: Gitea
-    url: https://gitea.com/jolheiser
-    icon: gitea
-  - name: JoJoDev
-    url: https://git.jojodev.com/jolheiser
-    icon: gitea
-  - name: Fediverse
-    url: https://social.jolheiser.com/@jolheiser
-    icon: activitypub
-  - name: Bluesky
-    url: https://bsky.app/profile/jolheiser.com
-    icon: bluesky
-  - name: LinkedIn
-    url: https://linkedin.com/in/jolheiser
-    icon: linkedin
M main.gomain.go
 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
52
53
54
55
56
57
58
59
diff --git a/main.go b/main.go
index c0f8095001dd7b00c2abef122d27a1822d06aab7..05aa439e889bb65d9f4e3bb317b46346070d48ba 100644
--- a/main.go
+++ b/main.go
@@ -2,18 +2,17 @@ package main
 
 import (
 	"context"
-	"io"
+	"encoding/json"
 	"os"
 
 	"git.jojodev.com/jolheiser/simpleicons"
-	"github.com/a-h/templ"
-	"gopkg.in/yaml.v3"
+	"github.com/google/go-jsonnet"
 )
 
 type Link struct {
-	Name     string `yaml:"name"`
-	URL      string `yaml:"url"`
-	IconName string `yaml:"icon"`
+	Name     string `json:"name"`
+	URL      string `json:"url"`
+	IconName string `json:"icon"`
 }
 
 func (l Link) Icon() simpleicons.Icon {
@@ -31,15 +30,15 @@ //go:generate go run .
 //go:generate tailwind-ctp -i ./dist/styles.css -o ./dist/styles.css --minify
 func main() {
 	var links struct {
-		Links []Link `yaml:"links"`
+		Links []Link `json:"links"`
 	}
 
-	fi, err := os.Open("links.yaml")
+	vm := jsonnet.MakeVM()
+	data, err := vm.EvaluateFile("links.jsonnet")
 	if err != nil {
 		panic(err)
 	}
-	defer fi.Close()
-	if err := yaml.NewDecoder(fi).Decode(&links); err != nil {
+	if err := json.Unmarshal([]byte(data), &links); err != nil {
 		panic(err)
 	}
 
@@ -67,10 +66,3 @@ 	if _, err := css.WriteString(tailwindCSS); err != nil {
 		panic(err)
 	}
 }
-
-func SafeHTML(html string) templ.Component {
-	return templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) {
-		_, err = io.WriteString(w, html)
-		return
-	})
-}