From: Wade Fitzpatrick Date: Wed, 3 Aug 2016 23:55:24 +0000 (+1000) Subject: tpl: Add time template func X-Git-Tag: v0.17~197 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=70544f9e62e5577d1daac1af8849739e4bef98ad;p=brevno-suite%2Fhugo tpl: Add time template func Fixes #2328 --- diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go index b04b3681..28ac1f88 100644 --- a/tpl/template_funcs.go +++ b/tpl/template_funcs.go @@ -1380,6 +1380,16 @@ func replaceRE(pattern, repl, src interface{}) (_ string, err error) { return re.ReplaceAllString(srcStr, replStr), nil } +// asTime converts the textual representation of the datetime string into +// a time.Time interface. +func asTime(v interface{}) (interface{}, error) { + t, err := cast.ToTimeE(v) + if err != nil { + return nil, err + } + return t, nil +} + // dateFormat converts the textual representation of the datetime string into // the other form or returns it of the time.Time value. These are formatted // with the layout string @@ -1869,6 +1879,7 @@ func init() { "sub": func(a, b interface{}) (interface{}, error) { return helpers.DoArithmetic(a, b, '-') }, "substr": substr, "title": func(a string) string { return strings.Title(a) }, + "time": asTime, "trim": trim, "upper": func(a string) string { return strings.ToUpper(a) }, "urlize": helpers.URLize, diff --git a/tpl/template_funcs_test.go b/tpl/template_funcs_test.go index 2d8f753b..6246bba0 100644 --- a/tpl/template_funcs_test.go +++ b/tpl/template_funcs_test.go @@ -136,6 +136,7 @@ sub: {{sub 3 2}} substr: {{substr "BatMan" 0 -3}} substr: {{substr "BatMan" 3 3}} title: {{title "Bat man"}} +time: {{ time "2015-01-21" }} trim: {{ trim "++Batman--" "+-" }} upper: {{upper "BatMan"}} urlize: {{ "Bat Man" | urlize }} @@ -199,6 +200,7 @@ sub: 1 substr: Bat substr: Man title: Bat Man +time: 2015-01-21T00:00:00Z trim: Batman upper: BATMAN urlize: bat-man