pagr

A 'static site generator', built using dati.
Log | Files | Refs | Atom

commit b286bd6d6d2eb76a9f37153df6baa1a1ef447987
parent 0a1168d69074d28401aa878482d8d400b2a9c090
Author: gearsix <gearsix@tuta.io>
Date:   Tue, 27 Jul 2021 20:23:28 +0100

Config.Contents->Config->Pages

Diffstat:
Mconfig.go | 8++++----
Mpage.go | 62+++++++++++++++++++++++++++++++-------------------------------
Mpagr.go | 2+-
3 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/config.go b/config.go @@ -9,20 +9,20 @@ import ( // Config is the data structure containing all key/values to be loaded // in pagr configuration files type Config struct { - Contents string + Pages string Templates string Output string } // relPaths sets all filepath values in `cfg` relative to `dir` func (cfg *Config) relPaths(dir string) { - var paths = []string{cfg.Contents, cfg.Templates, cfg.Output} + var paths = []string{cfg.Pages, cfg.Templates, cfg.Output} for i, path := range paths { if !filepath.IsAbs(path) { paths[i] = filepath.Join(dir, path) } } - cfg.Contents = paths[0] + cfg.Pages = paths[0] cfg.Templates = paths[1] cfg.Output = paths[2] return @@ -31,7 +31,7 @@ func (cfg *Config) relPaths(dir string) { // NewConfig returns a Config with default values func NewConfig() Config { return Config{ - Contents: "./content", + Pages: "./content", Templates: "./templates", Output: "./out", } diff --git a/page.go b/page.go @@ -18,37 +18,6 @@ import ( "sort" ) -func titleFromPath(path string) (title string) { - if title = filepath.Base(path); title == "/" { - title = "Home" - } - title = strings.TrimSuffix(title, filepath.Ext(title)) - title = strings.ReplaceAll(title, "-", " ") - title = strings.Title(title) - return -} - -func lastFileMod(fpath string) time.Time { - t := time.Now() // default/error ret - if fd, e := os.Stat(fpath); e != nil { - return t - } else if !fd.IsDir() { - return fd.ModTime() - } else { - t = fd.ModTime() - } - if dir, err := os.ReadDir(fpath); err != nil { - return t - } else { - for _, d := range dir { - if fd, err := d.Info(); err == nil && fd.ModTime().After(t) { - t = fd.ModTime() - } - } - } - return t -} - // Sitemap parses `pages` to determine the `.Nav` values for each element in `pages` // based on their `.Path` value. These values will be set in the returned Content func BuildSitemap(pages []Page) []Page { @@ -104,6 +73,37 @@ func BuildSitemap(pages []Page) []Page { return pages } +func titleFromPath(path string) (title string) { + if title = filepath.Base(path); title == "/" { + title = "Home" + } + title = strings.TrimSuffix(title, filepath.Ext(title)) + title = strings.ReplaceAll(title, "-", " ") + title = strings.Title(title) + return +} + +func lastFileMod(fpath string) time.Time { + t := time.Now() // default/error ret + if fd, e := os.Stat(fpath); e != nil { + return t + } else if !fd.IsDir() { + return fd.ModTime() + } else { + t = fd.ModTime() + } + if dir, err := os.ReadDir(fpath); err != nil { + return t + } else { + for _, d := range dir { + if fd, err := d.Info(); err == nil && fd.ModTime().After(t) { + t = fd.ModTime() + } + } + } + return t +} + var contentExts = [5]string{ ".txt", // plain-text ".html", // HTML diff --git a/pagr.go b/pagr.go @@ -54,7 +54,7 @@ func main() { vlog("loaded config: %s\n", config) var c []Page - c, err = LoadContentDir(config.Contents) + c, err = LoadContentDir(config.Pages) check(err) log.Printf("loaded %d content pages", len(c))