diff --git a/config.schema.json b/config.schema.json index 9b325c3..2e8a7c1 100644 --- a/config.schema.json +++ b/config.schema.json @@ -92,27 +92,8 @@ "type": "string" }, "legal": { - "type": "object", - "properties": { - "font_source": { - "type": "string" - }, - "images_source": { - "type": "array", - "items": { - "type": "string" - } - }, - "legal_information_link": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "legal_information_link", - "images_source", - "font_source" - ] + "type": "string", + "additionalProperties": false }, "links": { "type": "array", diff --git a/data.go b/data.go index 140f914..8c134b1 100644 --- a/data.go +++ b/data.go @@ -34,7 +34,7 @@ type Config struct { Person *Person `json:"person" toml:"person"` Color *Color `json:"colors" toml:"colors"` Links []*Link `json:"links" toml:"links"` - Legal *Legal `json:"legal" toml:"legal"` + Legal string `json:"legal" toml:"legal"` CustomPages []string `json:"custom_pages" toml:"custom_pages"` } @@ -79,12 +79,6 @@ type Link struct { Content string `json:"content" toml:"content"` } -type Legal struct { - LegalInformationLink string `json:"legal_information_link" toml:"legal_information_link"` - ImagesSource []string `json:"images_source" toml:"images_source"` - FontSource string `json:"font_source" toml:"font_source"` -} - func (c *Config) GetBackground() template.CSS { return c.Color.GetBackground() } @@ -142,6 +136,19 @@ func (c *Config) LoadCustomPages() ([]*CustomPage, error) { return pages, nil } +var legalContent template.HTML + +func (c *Config) GetLegal() (template.HTML, error) { + if legalContent == "" { + b, err := os.ReadFile(c.Legal) + if err != nil { + return "", err + } + legalContent = template.HTML(b) + } + return legalContent, nil +} + func (t *Color) GetTextColor() template.CSS { return template.CSS("--text-color: " + t.Text + ";") } diff --git a/main.go b/main.go index 0bc9dc9..bf5905e 100644 --- a/main.go +++ b/main.go @@ -172,14 +172,7 @@ func generateConfigFile(isToml bool) { {"/foo", "Blog"}, {"https://www.youtube.com/@anhgelus", "YouTube"}, }, - Legal: &Legal{ - LegalInformationLink: "/bar", - ImagesSource: []string{ - "Profile picture: some one on website", - "Background picture: another one on another website", - }, - FontSource: "Name by some one on website", - }, + Legal: "legal.html", CustomPages: []string{"custom.json"}, } var b []byte diff --git a/templates/page/legal.gohtml b/templates/page/legal.gohtml index 0e37f49..8b617ab 100644 --- a/templates/page/legal.gohtml +++ b/templates/page/legal.gohtml @@ -1,19 +1,11 @@ {{define "body"}} {{end}}