From 3d871d2de34e5ed6993dd3f48d74b5543a9e0d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Menu?= Date: Mon, 28 Dec 2020 15:59:52 +0100 Subject: [PATCH] Add default {{date}} argument --- adapter/handlebars/handlebars.go | 2 +- adapter/handlebars/handlebars_test.go | 5 +++++ adapter/handlebars/helpers/date.go | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/adapter/handlebars/handlebars.go b/adapter/handlebars/handlebars.go index b478e88..051d8c9 100644 --- a/adapter/handlebars/handlebars.go +++ b/adapter/handlebars/handlebars.go @@ -78,7 +78,7 @@ func (hr *HandlebarsRenderer) loadTemplate(content string) (*raymond.Template, e // loadFileTemplate loads the template at given path into the renderer if needed. // Returns the parsed template. func (hr *HandlebarsRenderer) loadFileTemplate(path string) (*raymond.Template, error) { - wrap := errors.Wrapperf("load template file failed: %v", path) + wrap := errors.Wrapper("load template file failed") path, err := filepath.Abs(path) if err != nil { diff --git a/adapter/handlebars/handlebars_test.go b/adapter/handlebars/handlebars_test.go index aedcd24..55358ec 100644 --- a/adapter/handlebars/handlebars_test.go +++ b/adapter/handlebars/handlebars_test.go @@ -64,6 +64,11 @@ func TestSlugHelper(t *testing.T) { func TestDateHelper(t *testing.T) { sut := NewRenderer() + // Default + res, err := sut.Render("{{date}}", nil) + assert.Nil(t, err) + assert.Equal(t, res, "2009-11-17") + test := func(format string, expected string) { res, err := sut.Render(fmt.Sprintf("{{date '%s'}}", format), nil) assert.Nil(t, err) diff --git a/adapter/handlebars/helpers/date.go b/adapter/handlebars/helpers/date.go index c6e81a5..a86e8b7 100644 --- a/adapter/handlebars/helpers/date.go +++ b/adapter/handlebars/helpers/date.go @@ -16,8 +16,14 @@ import ( // {{date "medium"}} -> Nov 17, 2009 // {{date "%Y-%m"}} -> 2009-11 func RegisterDate(logger util.Logger, date date.Provider) { - raymond.RegisterHelper("date", func(arg string) string { - format := findFormat(arg) + raymond.RegisterHelper("date", func(opt interface{}) string { + format := "%Y-%m-%d" + + arg, ok := opt.(string) + if ok { + format = findFormat(arg) + } + res, err := strftime.Format(format, date.Date(), strftime.WithUnixSeconds('s')) if err != nil { logger.Printf("the {{date}} template helper failed to format the date: %v", err)