shithub: hugo

Download patch

ref: 29e786aac5b3674b26f24fae6a8dd6ad92a12137
parent: e764a6e638b8a9e31df6d929c071c5a289441735
author: Piotr Kowalczuk <[email protected]>
date: Thu Jun 25 07:46:09 EDT 2015

Proper parsing structured array from yaml based FrontMatter

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -518,11 +518,21 @@
 			default: // handle array of strings as well
 				switch vvv := vv.(type) {
 				case []interface{}:
-					var a = make([]string, len(vvv))
-					for i, u := range vvv {
-						a[i] = cast.ToString(u)
+					if len(vvv) > 0 {
+						switch vvv[0].(type) {
+						case map[interface{}]interface{}: // Proper parsing structured array from yaml based FrontMatter
+							p.Params[loki] = vvv
+						default:
+							a := make([]string, len(vvv))
+							for i, u := range vvv {
+								a[i] = cast.ToString(u)
+							}
+
+							p.Params[loki] = a
+						}
+					} else {
+						p.Params[loki] = []string{}
 					}
-					p.Params[loki] = a
 				default:
 					p.Params[loki] = vv
 				}