Prevent site config being overwritten
authorbep <bjorn.erik.pedersen@gmail.com>
Sat, 31 Jan 2015 18:14:13 +0000 (19:14 +0100)
committerbep <bjorn.erik.pedersen@gmail.com>
Sat, 31 Jan 2015 18:14:13 +0000 (19:14 +0100)
Fixed #867

hugolib/page.go

index 2cae1f5616a4992189ce7f45c935942f9bbd70cb..6422474bf00635759998e168979e567c2b834f75 100644 (file)
@@ -199,14 +199,20 @@ func (p *Page) getRenderingConfig() *helpers.Blackfriday {
                pageParam := p.GetParam("blackfriday")
                siteParam := viper.GetStringMap("blackfriday")
 
+               combinedParam := make(map[string]interface{})
+
+               for k, v := range siteParam {
+                       combinedParam[k] = v
+               }
+
                if pageParam != nil {
                        pageConfig := cast.ToStringMap(pageParam)
                        for key, value := range pageConfig {
-                               siteParam[key] = value
+                               combinedParam[key] = value
                        }
                }
                p.renderingConfig = new(helpers.Blackfriday)
-               if err := mapstructure.Decode(siteParam, p.renderingConfig); err != nil {
+               if err := mapstructure.Decode(combinedParam, p.renderingConfig); err != nil {
                        jww.FATAL.Printf("Failed to get rendering config for %s:\n%s", p.BaseFileName(), err.Error())
                }
        })