ref: 5838420aa1f5dfb6aa73479caa60467cc27dee82
parent: fde47c5eb9435083cc492b8648517b374eb60c6b
author: Marek Janda <[email protected]>
date: Tue Nov 3 15:09:34 EST 2015
Move blackfriday site-wide config loading to NewBlackFriday()
--- a/helpers/content.go
+++ b/helpers/content.go
@@ -24,7 +24,9 @@
"unicode/utf8"
"github.com/miekg/mmark"
+ "github.com/mitchellh/mapstructure"
"github.com/russross/blackfriday"
+ "github.com/spf13/cast"
bp "github.com/spf13/hugo/bufferpool"
jww "github.com/spf13/jwalterweatherman"
"github.com/spf13/viper"
@@ -52,17 +54,33 @@
ExtensionsMask []string
}
-// NewBlackfriday creates a new Blackfriday with some sane defaults.
+// NewBlackfriday creates a new Blackfriday filled with site config or some sane defaults
func NewBlackfriday() *Blackfriday {
- return &Blackfriday{
- Smartypants: true,
- AngledQuotes: false,
- Fractions: true,
- HrefTargetBlank: false,
- SmartDashes: true,
- LatexDashes: true,
- PlainIDAnchors: false,
+ combinedParam := map[string]interface{}{
+ "smartypants": true,
+ "angledQuotes": false,
+ "fractions": true,
+ "hrefTargetBlank": false,
+ "smartDashes": true,
+ "latexDashes": true,
+ "plainIDAnchors": false,
}
+
+ siteParam := viper.GetStringMap("blackfriday")
+ if siteParam != nil {
+ siteConfig := cast.ToStringMap(siteParam)
+
+ for key, value := range siteConfig {
+ combinedParam[key] = value
+ }
+ }
+
+ combinedConfig := &Blackfriday{}
+ if err := mapstructure.Decode(combinedParam, combinedConfig); err != nil {
+ jww.FATAL.Printf("Failed to get site rendering config\n%s", err.Error())
+ }
+
+ return combinedConfig
}
var blackfridayExtensionMap = map[string]int{
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -246,26 +246,10 @@
func (p *Page) getRenderingConfig() *helpers.Blackfriday {
p.renderingConfigInit.Do(func() {
- pageParam := p.GetParam("blackfriday")
- siteParam := viper.GetStringMap("blackfriday")
+ pageParam := cast.ToStringMap(p.GetParam("blackfriday"))
- combinedParam := siteParam
-
- if pageParam != nil {
- combinedParam = make(map[string]interface{})
-
- for k, v := range siteParam {
- combinedParam[k] = v
- }
-
- pageConfig := cast.ToStringMap(pageParam)
-
- for key, value := range pageConfig {
- combinedParam[key] = value
- }
- }
p.renderingConfig = helpers.NewBlackfriday()
- if err := mapstructure.Decode(combinedParam, p.renderingConfig); err != nil {
+ if err := mapstructure.Decode(pageParam, p.renderingConfig); err != nil {
jww.FATAL.Printf("Failed to get rendering config for %s:\n%s", p.BaseFileName(), err.Error())
}
})