refactor(pages): use html instead of json to render legal
This commit is contained in:
parent
f98647cabb
commit
2d74d8afc3
4 changed files with 18 additions and 45 deletions
|
@ -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",
|
||||
|
|
21
data.go
21
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 + ";")
|
||||
}
|
||||
|
|
9
main.go
9
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
|
||||
|
|
|
@ -1,19 +1,11 @@
|
|||
{{define "body"}}
|
||||
<div class="credits-legal" style="{{ .GetBackground }}">
|
||||
<h2>Legal information</h2>
|
||||
<p>
|
||||
Other legal information are available <a href="{{ .Legal.LegalInformationLink }}" target="_blank">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
The software behind this website was made by <a href="https://www.anhgelus.world/" target="_blank">Anhgelus Morhtuuzh</a>.
|
||||
It is available on <a href="https://github.com/anhgelus/now">GitHub</a> for free and licensed under the
|
||||
<a href="https://github.com/anhgelus/now/blob/main/LICENSE" target="_blank">AGPL</a> license.
|
||||
</p>
|
||||
<h3>Image credits</h3>
|
||||
{{ range $s := .Legal.ImagesSource }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
<h3>Font credits</h3>
|
||||
<p>{{ .Legal.FontSource }}</p>
|
||||
{{ .GetLegal }}
|
||||
</div>
|
||||
{{end}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue