shithub: hugo

Download patch

ref: e98f885b8af27f5473a89d31d0b1f02e61e8a5ec
parent: 6498d73c08438c55d45900e64c2c04a375f747c2
author: Albert Nigmatzianov <[email protected]>
date: Thu Apr 6 18:29:37 EDT 2017

hugolib: Prevent decoding pageParam in common cases

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -606,15 +606,20 @@
 }
 
 func (p *Page) getRenderingConfig() *helpers.Blackfriday {
-
 	p.renderingConfigInit.Do(func() {
-		pageParam := cast.ToStringMap(p.GetParam("blackfriday"))
+		p.renderingConfig = p.s.ContentSpec.NewBlackfriday()
+
 		if p.Language() == nil {
 			panic(fmt.Sprintf("nil language for %s with source lang %s", p.BaseFileName(), p.lang))
 		}
-		p.renderingConfig = p.s.ContentSpec.NewBlackfriday()
 
-		if err := mapstructure.Decode(pageParam, p.renderingConfig); err != nil {
+		bfParam := p.GetParam("blackfriday")
+		if bfParam == nil {
+			return
+		}
+
+		pageParam := cast.ToStringMap(bfParam)
+		if err := mapstructure.Decode(pageParam, &p.renderingConfig); err != nil {
 			p.s.Log.FATAL.Printf("Failed to get rendering config for %s:\n%s", p.BaseFileName(), err.Error())
 		}