ref: 179225449ca812e52f10be532b5fa165f7cfadf5
parent: 4e0208d448a8793766d8835d6fd2228ddf822273
author: Vincent Batoufflet <vincent@batoufflet.info>
date: Thu May 8 10:56:28 EDT 2014
Add template comparison functions (Go 1.1 compat)
--- a/hugolib/template.go
+++ b/hugolib/template.go
@@ -16,7 +16,35 @@
"github.com/spf13/hugo/helpers"
)
-func Gt(a interface{}, b interface{}) bool {
+func Eq(x, y interface{}) bool {
+ return reflect.DeepEqual(x, y)
+}
+
+func Ne(x, y interface{}) bool {
+ return !Eq(x, y)
+}
+
+func Ge(a, b interface{}) bool {
+ left, right := compareGetInt(a, b)
+ return left >= right
+}
+
+func Gt(a, b interface{}) bool {
+ left, right := compareGetInt(a, b)
+ return left > right
+}
+
+func Le(a, b interface{}) bool {
+ left, right := compareGetInt(a, b)
+ return left <= right
+}
+
+func Lt(a, b interface{}) bool {
+ left, right := compareGetInt(a, b)
+ return left < right
+}
+
+func compareGetInt(a interface{}, b interface{}) (int64, int64) {
var left, right int64
av := reflect.ValueOf(a)
@@ -40,7 +68,7 @@
right, _ = strconv.ParseInt(bv.String(), 10, 64)
}
- return left > right
+ return left, right
}
// First is exposed to templates, to iterate over the first N items in a
@@ -163,7 +191,12 @@
funcMap := template.FuncMap{
"urlize": helpers.Urlize,
"sanitizeurl": helpers.SanitizeUrl,
+ "eq": Eq,
+ "ne": Ne,
"gt": Gt,
+ "ge": Ge,
+ "lt": Lt,
+ "le": Le,
"isset": IsSet,
"echoParam": ReturnWhenSet,
"safeHtml": SafeHtml,
--
⑨