diff options
| author | Gab Virebent <gabriel1@virebent.art> | 2026-07-07 16:24:28 +0200 |
|---|---|---|
| committer | Gab Virebent <gabriel1@virebent.art> | 2026-07-07 16:24:28 +0200 |
| commit | 37f156c30e2a2b01c840d39f0dd2bdbf811732d6 (patch) | |
| tree | e2ce84dc7f88ce0eb312899448f91b7bb93ca8a3 /internal/cms/config.go | |
| download | gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.gz gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.xz gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.zip | |
Diffstat (limited to 'internal/cms/config.go')
| -rw-r--r-- | internal/cms/config.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/cms/config.go b/internal/cms/config.go new file mode 100644 index 0000000..de34a5c --- /dev/null +++ b/internal/cms/config.go @@ -0,0 +1,40 @@ +package cms + +import ( + "fmt" + "os" + "path/filepath" +) + +func LoadConfig(root string) (Config, error) { + data, err := os.ReadFile(filepath.Join(root, "capsule.toml")) + if err != nil { + return Config{}, err + } + table, err := parseSimpleTable(string(data)) + if err != nil { + return Config{}, fmt.Errorf("parse capsule.toml: %w", err) + } + cfg := Config{ + Title: table.values["title"], + Host: table.values["host"], + Author: table.values["author"], + Language: table.values["language"], + Theme: table.values["theme"], + } + if cfg.Language == "" { + cfg.Language = "en" + } + if cfg.Theme == "" { + cfg.Theme = "default" + } + return cfg, nil +} + +func renderConfig(cfg Config) string { + return "title = " + formatString(cfg.Title) + "\n" + + "host = " + formatString(cfg.Host) + "\n" + + "author = " + formatString(cfg.Author) + "\n" + + "language = " + formatString(cfg.Language) + "\n" + + "theme = " + formatString(cfg.Theme) + "\n" +} |
