aboutsummaryrefslogtreecommitdiff
path: root/data.go
diff options
context:
space:
mode:
authorWilliam Hergès <william@herges.fr>2025-08-15 21:30:44 +0200
committerWilliam Hergès <william@herges.fr>2025-08-15 21:30:44 +0200
commit3b37150f6ee5d4aa40028f249891bbed73c96f1c (patch)
tree4152b4a58df33b74ab362731fee6fd9cabb72710 /data.go
parent91f2ef06c09b7dce9c5a9708f6d9d40ee157a90f (diff)
refactor(config): scope folder per config file
Diffstat (limited to 'data.go')
-rw-r--r--data.go28
1 files changed, 8 insertions, 20 deletions
diff --git a/data.go b/data.go
index 94cd08d..103207b 100644
--- a/data.go
+++ b/data.go
@@ -32,6 +32,7 @@ type Config struct {
Legal string `json:"legal" toml:"legal"`
RelMeLinks []string `json:"rel_me_links" toml:"rel_me_links"`
CustomPages []string `json:"custom_pages" toml:"custom_pages"`
+ folder string
}
type Person struct {
@@ -82,23 +83,6 @@ func getImage(s string) string {
return golatt.GetStaticPath(s)
}
-func getPath(filename string) string {
- if !strings.Contains(configPath, "/") {
- return filename
- }
- sp := strings.Split(configPath, "/")
- before := strings.Join(sp[1:len(sp)-1], "/")
- if configPath[0] != '/' && !strings.HasPrefix(configPath, "./") {
- if len(before) == 0 {
- before = sp[0]
- } else {
- before = sp[0] + "/" + before
- }
- }
- before += "/"
- return before + filename
-}
-
func (c *Config) GetBackground() template.CSS {
return c.Color.GetBackground()
}
@@ -119,7 +103,7 @@ var legalContent template.HTML
func (c *Config) GetLegal() (template.HTML, error) {
if legalContent == "" {
- b, err := os.ReadFile(getPath(c.Legal))
+ b, err := os.ReadFile(c.folder + c.Legal)
if err != nil {
return "", err
}
@@ -135,6 +119,7 @@ type CustomPage struct {
Description string `json:"description" toml:"description"`
Color *Color `json:"colors" toml:"colors"`
Content string `json:"content" toml:"content"`
+ folder string
}
func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
@@ -144,7 +129,7 @@ func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
}
var pages []*CustomPage
for _, cp := range c.CustomPages {
- b, err := os.ReadFile(getPath(cp))
+ b, err := os.ReadFile(c.folder + cp)
if err != nil {
return nil, err
}
@@ -159,6 +144,9 @@ func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
if err != nil {
return nil, err
}
+
+ p.folder = getFolder(c.folder + cp)
+
pages = append(pages, &p)
}
return pages, nil
@@ -213,7 +201,7 @@ var contentsMap = map[string]template.HTML{}
func (p *CustomPage) GetContent() (template.HTML, error) {
res, ok := contentsMap[p.URI]
if !ok {
- b, err := os.ReadFile(getPath(p.Content))
+ b, err := os.ReadFile(p.folder + p.Content)
if err != nil {
return "", err
}