pagr

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

commit d32d15f49e8def390dd87676db8e6bd1e32c9647
parent a701ad7ab84223adaecc0e91ca771a318ab5edce
Author: gearsix <gearsix@tuta.io>
Date:   Wed,  6 Oct 2021 15:45:54 +0100

refactors to fix several renames

Diffstat:
Mconfig.go | 2+-
Mpage.go | 4++--
Mpage_test.go | 26+++++++++++++++-----------
Mpagr.go | 8+++-----
Mtemplate.go | 2+-
Mtemplate_test.go | 1+
6 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/config.go b/config.go @@ -52,7 +52,7 @@ func NewConfigFromFile(fpath string) (cfg Config, err error) { return } - if err = suti.LoadDataFile(fpath, &cfg); err != nil { + if err = suti.LoadDataFilepath(fpath, &cfg); err != nil { return } diff --git a/page.go b/page.go @@ -158,7 +158,7 @@ func LoadPagesDir(dir string) (p []Page, e error) { if suti.IsSupportedDataLang(filepath.Ext(fpath)) > -1 { var m Meta - if err = suti.LoadDataFile(fpath, &m); err == nil { + if err = suti.LoadDataFilepath(fpath, &m); err == nil { if strings.Contains(filepath.Base(fpath), "defaults.") { if meta, ok := dmetas[path]; ok { m.MergeMeta(meta, false) @@ -263,7 +263,7 @@ func NewPage(path string, updated time.Time) Page { // (in the order) and return the value of the first existing key as a string. // If `.Meta` neither has the key `template` or `Template`, then it will // return `DefaultTemplateName` from [./template.go]. -func (p *Page) GetTemplate() string { +func (p *Page) TemplateName() string { if v, ok := p.Meta["template"]; ok { return v.(string) } else if v, ok = p.Meta["Template"]; ok { diff --git a/page_test.go b/page_test.go @@ -137,12 +137,13 @@ func TestBuildSitemap(test *testing.T) { test.Parallel() var err error + /* writef := func(path, data string) { if err == nil { err = os.WriteFile(path, []byte(data), 0644) } } - + */ tdir := test.TempDir() // TODO write files to pages dir @@ -219,20 +220,20 @@ func TestNewPage(test *testing.T) { } } -func TestGetTemplate(test *testing.T) { +func TestTemplateName(test *testing.T) { test.Parallel() p := NewPage("/test", time.Now()) - if p.GetTemplate() != DefaultTemplateName { - test.Fatalf("'%s' not returned from GetTemplate()", DefaultTemplateName) + if p.TemplateName() != DefaultTemplateName { + test.Fatalf("'%s' not returned from TemplateName()", DefaultTemplateName) } p.Meta["Template"] = "test1" - if p.GetTemplate() != "test1" { - test.Fatalf("'test1' not returned from GetTemplate()") + if p.TemplateName() != "test1" { + test.Fatalf("'test1' not returned from TemplateName()") } p.Meta["template"] = "test2" - if p.GetTemplate() != "test2" { - test.Fatalf("'test2' not returned from GetTemplate()") + if p.TemplateName() != "test2" { + test.Fatalf("'test2' not returned from TemplateName()") } } @@ -330,7 +331,10 @@ func TestBuild(test *testing.T) { var err error tdir := test.TempDir() p := NewPage("/test", time.Now()) - t, err := suti.LoadTemplateString("tmpl", "test", "{{.Title}}") + t, err := suti.LoadTemplateString("tmpl", "test", `{{.Meta.Title}} {{template "p" .}}`, map[string]string{"p": "p"}) + if err != nil { + test.Error(err) + } var fpath string if fpath, err = p.Build(tdir, t); err != nil { @@ -340,8 +344,8 @@ func TestBuild(test *testing.T) { if fbuf, err = os.ReadFile(fpath); err != nil { test.Fatal(err) } - if string(fbuf) != "Test" { - test.Fatalf("invalid result parsed: '%s', expected: 'Test'", string(fbuf)) + if string(fbuf) != "Test p" { + test.Fatalf("invalid result parsed: '%s', expected: 'Test p'", string(fbuf)) } } diff --git a/pagr.go b/pagr.go @@ -72,7 +72,7 @@ func main() { tmpl, err = findTemplate(pg, t) if os.IsNotExist(err) { log.Printf("warning: skipping '%s', failed to find template '%s'\n", - pg.Path, pg.GetTemplate()) + pg.Path, pg.TemplateName()) continue } else { check(err) @@ -95,13 +95,11 @@ func main() { return } -func findTemplate(pg Page, templates []suti.Template) (suti.Template, error) { +func findTemplate(p Page, templates []suti.Template) (suti.Template, error) { var t suti.Template err := os.ErrNotExist - target := pg.GetTemplate() for _, t := range templates { - tname := filepath.Base(t.Source) - if tname == target || strings.TrimSuffix(tname, filepath.Ext(tname)) == target { + if t.Name == p.TemplateName() { return t, nil } } diff --git a/template.go b/template.go @@ -57,7 +57,7 @@ func LoadTemplateDir(dir string) ([]suti.Template, error) { var ret []suti.Template for t, partials := range paths { - tmpl, err := suti.LoadTemplateFile(t, partials...) + tmpl, err := suti.LoadTemplateFilepath(t, partials...) if err != nil { return nil, err } diff --git a/template_test.go b/template_test.go @@ -29,6 +29,7 @@ func TestLoadTemplateDir(t *testing.T) { var templates = map[string]string{ // [ext]template "tmpl": "{{.Contents}}", + "hmpl": "{{.Contents}}", "mst": "{{Contents}}", }