From d25e04d8c736e5ee0a4bdc2531a6047dccc81013 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sat, 9 Nov 2024 21:52:13 +0100 Subject: feat(data): parse json and render simple thing --- data.go | 13 +++++++++++++ dist/styles.css | 0 example.json | 9 +++++++++ main.go | 39 ++++++++++++++++++++++++++++----------- templates/base/base.gohtml | 17 +++++++++++++++++ templates/base/opengraph.gohtml | 18 ++++++++++++++++++ templates/page/base.gohtml | 23 ----------------------- templates/page/index.gohtml | 12 ++++++++++++ templates/page/opengraph.gohtml | 18 ------------------ 9 files changed, 97 insertions(+), 52 deletions(-) create mode 100644 data.go create mode 100644 dist/styles.css create mode 100644 example.json create mode 100644 templates/base/base.gohtml create mode 100644 templates/base/opengraph.gohtml delete mode 100644 templates/page/base.gohtml create mode 100644 templates/page/index.gohtml delete mode 100644 templates/page/opengraph.gohtml diff --git a/data.go b/data.go new file mode 100644 index 0000000..e1cbf37 --- /dev/null +++ b/data.go @@ -0,0 +1,13 @@ +package main + +type Data struct { + Image string `json:"image"` + Description string `json:"description"` + Person *Person `json:"person"` +} + +type Person struct { + Name string `json:"name"` + Pronouns string `json:"pronouns"` + Image string `json:"image"` +} diff --git a/dist/styles.css b/dist/styles.css new file mode 100644 index 0000000..e69de29 diff --git a/example.json b/example.json new file mode 100644 index 0000000..75e887e --- /dev/null +++ b/example.json @@ -0,0 +1,9 @@ +{ + "image": "", + "description": "", + "person": { + "name": "", + "pronouns": "", + "image": "" + } +} \ No newline at end of file diff --git a/main.go b/main.go index 3c3d34b..50bc462 100644 --- a/main.go +++ b/main.go @@ -2,41 +2,58 @@ package main import ( "embed" + "encoding/json" "flag" "github.com/anhgelus/golatt" "log/slog" + "os" ) //go:embed templates var templates embed.FS var ( - domain string - data string + domain string + dataPath string ) func init() { flag.StringVar(&domain, "domain", "", "domain to use") - flag.StringVar(&data, "data", "", "data to use") + flag.StringVar(&dataPath, "data", "", "data to use") } func main() { flag.Parse() if domain == "" { - slog.Error("Domain not set. Set it with --domain value") - return + domain = os.Getenv("NOW_DOMAIN") + if domain == "" { + slog.Error("Domain not set. Set it with --domain value or with the env NOW_DOMAIN") + return + } } - if data == "" { - slog.Error("Data not set. Set it with --data relative path") - return + if dataPath == "" { + dataPath = os.Getenv("NOW_DATA") + if dataPath == "" { + slog.Error("Data not set. Set it with --data relative path or with the env NOW_DATA") + return + } + } + b, err := os.ReadFile(dataPath) + if err != nil { + panic(err) + } + var data Data + err = json.Unmarshal(b, &data) + if err != nil { + panic(err) } g := golatt.New(templates) g.DefaultSeoData = &golatt.SeoData{ - Image: "", - Description: "", + Image: data.Image, + Description: data.Description, Domain: domain, } - g.Templates = append(g.Templates, "templates/page/*.gohtml") + g.Templates = append(g.Templates, "templates/base/*.gohtml") //g.StartServer(":80") } diff --git a/templates/base/base.gohtml b/templates/base/base.gohtml new file mode 100644 index 0000000..5859805 --- /dev/null +++ b/templates/base/base.gohtml @@ -0,0 +1,17 @@ +{{define "base"}} + + + + + + + {{ .Title }} + + {{template "opengraph-base" .SEO}} + + + {{template "body" .}} + + + +{{end}} \ No newline at end of file diff --git a/templates/base/opengraph.gohtml b/templates/base/opengraph.gohtml new file mode 100644 index 0000000..f51d561 --- /dev/null +++ b/templates/base/opengraph.gohtml @@ -0,0 +1,18 @@ +{{define "opengraph-base"}} + + + + + + + + + + + + + + + + +{{end}} diff --git a/templates/page/base.gohtml b/templates/page/base.gohtml deleted file mode 100644 index 2de2ba4..0000000 --- a/templates/page/base.gohtml +++ /dev/null @@ -1,23 +0,0 @@ -{{define "base"}} - - - - - - - {{ .Title }} - - {{template "opengraph-base" .SEO}} - - - {{if .Data.HasNav}} - {{template "navbar" .}} - {{end}} - {{template "body" .}} - {{if .Data.HasFooter}} - {{template "footer" .}} - {{end}} - - - -{{end}} \ No newline at end of file diff --git a/templates/page/index.gohtml b/templates/page/index.gohtml new file mode 100644 index 0000000..dbc228a --- /dev/null +++ b/templates/page/index.gohtml @@ -0,0 +1,12 @@ +{{define "body"}} +
+
+
+ {{ .Person.Name }}'s image +
+

{{ .Person.Name }}

+

{{ .Person.Pronouns }}

+
+

{{ .Description }}

+
+{{end}} \ No newline at end of file diff --git a/templates/page/opengraph.gohtml b/templates/page/opengraph.gohtml deleted file mode 100644 index f51d561..0000000 --- a/templates/page/opengraph.gohtml +++ /dev/null @@ -1,18 +0,0 @@ -{{define "opengraph-base"}} - - - - - - - - - - - - - - - - -{{end}} -- cgit v1.2.3