shithub: hugo

Download patch

ref: 7e19fa40e7e28dc77be20f9bd94d9503490c378e
parent: b15eb889e8c05885d6a58dc4f49eb5005e8b9c0b
author: spf13 <[email protected]>
date: Fri Aug 29 19:51:29 EDT 2014

Making direction optional (and setting defaults) for GroupBy Pages functionality.

--- a/hugolib/pageGroup.go
+++ b/hugolib/pageGroup.go
@@ -62,7 +62,6 @@
 	return v
 }
 
-func (p Pages) GroupBy(key, order string) ([]PageGroup, error) {
 type PagesGroup []PageGroup
 
 func (p PagesGroup) Reverse() PagesGroup {
@@ -73,12 +72,15 @@
 	return p
 }
 
+func (p Pages) GroupBy(key string, order ...string) (PagesGroup, error) {
 	if len(p) < 1 {
 		return nil, nil
 	}
 
-	if order != "asc" && order != "desc" {
-		return nil, errors.New("order argument must be 'asc' or 'desc'")
+	direction := "asc"
+
+	if len(order) > 0 && (strings.ToLower(order[0]) == "desc" || strings.ToLower(order[0]) == "rev" || strings.ToLower(order[0]) == "reverse") {
+		direction = "desc"
 	}
 
 	ppt := reflect.TypeOf(&Page{})
@@ -105,17 +107,14 @@
 	return r, nil
 }
 
-func (p Pages) GroupByDate(format, order string) ([]PageGroup, error) {
+func (p Pages) GroupByDate(format string, order ...string) (PagesGroup, error) {
 	if len(p) < 1 {
 		return nil, nil
 	}
 
-	if order != "asc" && order != "desc" {
-		return nil, errors.New("order argument must be 'asc' or 'desc'")
-	}
-
 	sp := p.ByDate()
-	if order == "desc" {
+
+	if !(len(order) > 0 && (strings.ToLower(order[0]) == "asc" || strings.ToLower(order[0]) == "rev" || strings.ToLower(order[0]) == "reverse")) {
 		sp = sp.Reverse()
 	}