hugolib: Prevent decoding pageParam in common cases
authorAlbert Nigmatzianov <albertnigma@gmail.com>
Thu, 6 Apr 2017 20:29:37 +0000 (22:29 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 22 Apr 2017 20:40:20 +0000 (22:40 +0200)
hugolib/page.go

index c63d416a807c0081a335d596164823f3f724d41f..1e9c06af74be114c12ac2739f4d36126892449a2 100644 (file)
@@ -606,15 +606,20 @@ func (p *Page) renderContent(content []byte) []byte {
 }
 
 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())
                }