mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
Fix Viperized .Site.Params
git bisect identified 62dd1d4 as the breaking commit; when github.com/spf13/viper was introduced, the Params field was always empty. Given a map in YAML in Viper, the return type is `map[interface{}]interface{}`, _not_ `map[string]interface{}`, even if `.SetDefault()` has been called with an item of `map[string]interface{}{}` so the cast assertion on the `.Get("Params")` always failed.
This commit is contained in:
@ -260,9 +260,17 @@ func (s *Site) initialize() (err error) {
|
||||
}
|
||||
|
||||
func (s *Site) initializeSiteInfo() {
|
||||
params, ok := viper.Get("Params").(map[string]interface{})
|
||||
paramsV, ok := viper.Get("Params").(map[interface{}]interface{})
|
||||
// Warning: viper.Get(map_item) returns map[interface{}]interface{}
|
||||
// even if .SetDefault called with a map[string]interface{}
|
||||
if !ok {
|
||||
params = make(map[string]interface{})
|
||||
paramsV = make(map[interface{}]interface{})
|
||||
}
|
||||
params := make(map[string]interface{}, len(paramsV))
|
||||
for k, v := range paramsV {
|
||||
if s, ok := k.(string); ok {
|
||||
params[s] = v
|
||||
}
|
||||
}
|
||||
|
||||
permalinks := make(PermalinkOverrides)
|
||||
|
Reference in New Issue
Block a user