diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2021-07-15 01:10:41 -0400 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2021-07-15 01:10:41 -0400 |
| commit | 8b1d8bf26452f3ce8b38228a39755a6b8e18775a (patch) | |
| tree | f30f5cc86ce6758589d3d42607e829d0f537e70b /cmd/server/app.go | |
| parent | 904e37a88a6a2eab3919f7f2c40bbb2c07544a7c (diff) | |
| download | go-website-8b1d8bf26452f3ce8b38228a39755a6b8e18775a.tar.gz go-website-8b1d8bf26452f3ce8b38228a39755a6b8e18775a.tar.xz | |
Start on the example website. Remove some chunks of code. Fix up author handling in the feeds.
Diffstat (limited to 'cmd/server/app.go')
| -rw-r--r-- | cmd/server/app.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/cmd/server/app.go b/cmd/server/app.go new file mode 100644 index 0000000..743a389 --- /dev/null +++ b/cmd/server/app.go @@ -0,0 +1,63 @@ +package main + +import ( + "os" + + "gopkg.in/yaml.v3" + "riedstra.dev/mitch/go-website/page" +) + +var FeedPrefixDefault = ".feeds" + +type App struct { + ReIndexPath string + StaticDirectory string + BaseTemplate string + DocumentSplit string + Suffix string + + // Related to the Atom feed + Title string + Description string // aka, "subtitle" + Author Author + SiteURL string + FeedId string + Updated page.PageTime + FeedPrefix string +} + +func loadConf(fn string) (*App, error) { + fh, err := os.Open(fn) + if err != nil { + return nil, err + } + dec := yaml.NewDecoder(fh) + + app := &App{} + err = dec.Decode(app) + if err != nil { + return nil, err + } + + if app.StaticDirectory == "" { + app.StaticDirectory = "static" + } + if app.FeedPrefix == "" { + app.FeedPrefix = FeedPrefixDefault + } + if app.BaseTemplate != "" { + page.BaseTemplate = app.BaseTemplate + } + if app.DocumentSplit != "" { + page.DocumentSplit = app.DocumentSplit + } + if app.Suffix != "" { + page.Suffix = app.Suffix + } + + page.Global = map[string]interface{}{ + "App": app, + } + + return app, nil +} |
