Add ERROR logging on invalid date and publishdate
authorbep <bjorn.erik.pedersen@gmail.com>
Mon, 5 Jan 2015 11:44:41 +0000 (12:44 +0100)
committerbep <bjorn.erik.pedersen@gmail.com>
Mon, 5 Jan 2015 11:44:41 +0000 (12:44 +0100)
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.

hugolib/page.go

index 7c189ca28a84aa708366089461a1dce5642a8cac..2ebc17b6bc141bfc369bbb5fbe5eb57d0bfdc017 100644 (file)
@@ -397,7 +397,7 @@ func (page *Page) update(f interface{}) error {
                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 @@ func (page *Page) update(f interface{}) error {
                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":