shithub: hugo

Download patch

ref: 70544f9e62e5577d1daac1af8849739e4bef98ad
parent: d7f364c27e3adc4e012ee07e71f1c5ad5cfeb56f
author: Wade Fitzpatrick <[email protected]>
date: Thu Aug 4 05:55:24 EDT 2016

tpl: Add time template func 

Fixes #2328

--- a/tpl/template_funcs.go
+++ b/tpl/template_funcs.go
@@ -1380,6 +1380,16 @@
 	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 @@
 		"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,
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -136,6 +136,7 @@
 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 @@
 substr: Bat
 substr: Man
 title: Bat Man
+time: 2015-01-21T00:00:00Z
 trim: Batman
 upper: BATMAN
 urlize: bat-man