shithub: hugo

Download patch

ref: 837922d32bc1d0d2fbc50af07947e6b858df1550
parent: 0d17ee7ed4331513adb6e08f5697c4d803155655
author: bep <[email protected]>
date: Mon Jan 5 07:44:41 EST 2015

Add ERROR logging on invalid date and publishdate

Having correct dates is important in Hugo. Previously date parsing errors were swallowed, leading to confusing results.

This commit adds ERROR logging when date or publishdate in front matter cannot be parsed into a time.Time.

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -397,7 +397,7 @@
 		return fmt.Errorf("no metadata found")
 	}
 	m := f.(map[string]interface{})
-
+	var err error
 	for k, v := range m {
 		loki := strings.ToLower(k)
 		switch loki {
@@ -421,9 +421,15 @@
 		case "keywords":
 			page.Keywords = cast.ToStringSlice(v)
 		case "date":
-			page.Date = cast.ToTime(v)
+			page.Date, err = cast.ToTimeE(v)
+			if err != nil {
+				jww.ERROR.Printf("Failed to parse date '%v' in page %s", v, page.File.Path())
+			}
 		case "publishdate", "pubdate":
-			page.PublishDate = cast.ToTime(v)
+			page.PublishDate, err = cast.ToTimeE(v)
+			if err != nil {
+				jww.ERROR.Printf("Failed to parse publishdate '%v' in page %s", v, page.File.Path())
+			}
 		case "draft":
 			page.Draft = cast.ToBool(v)
 		case "layout":