mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
6d95dc9d74
commit
8a1c637c44
4 changed files with 32 additions and 1 deletions
|
@ -37,7 +37,11 @@ func getNested(m map[string]interface{}, indices []string) (interface{}, string,
|
|||
first := indices[0]
|
||||
v, found := m[strings.ToLower(cast.ToString(first))]
|
||||
if !found {
|
||||
if len(indices) == 1 {
|
||||
return nil, first, m
|
||||
}
|
||||
return nil, "", nil
|
||||
|
||||
}
|
||||
|
||||
if len(indices) == 1 {
|
||||
|
|
|
@ -47,5 +47,29 @@ func TestGetNestedParam(t *testing.T) {
|
|||
c.Assert(must("nested_color", "_", m), qt.Equals, "blue")
|
||||
c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green")
|
||||
c.Assert(must("string.name", ".", m), qt.IsNil)
|
||||
c.Assert(must("nested.foo", ".", m), qt.IsNil)
|
||||
|
||||
}
|
||||
|
||||
// https://github.com/gohugoio/hugo/issues/7903
|
||||
func TestGetNestedParamFnNestedNewKey(t *testing.T) {
|
||||
|
||||
c := qt.New(t)
|
||||
|
||||
nested := map[string]interface{}{
|
||||
"color": "blue",
|
||||
}
|
||||
m := map[string]interface{}{
|
||||
"nested": nested,
|
||||
}
|
||||
|
||||
existing, nestedKey, owner, err := GetNestedParamFn("nested.new", ".", func(key string) interface{} {
|
||||
return m[key]
|
||||
})
|
||||
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(existing, qt.IsNil)
|
||||
c.Assert(nestedKey, qt.Equals, "new")
|
||||
c.Assert(owner, qt.DeepEquals, nested)
|
||||
|
||||
}
|
||||
|
|
|
@ -198,6 +198,8 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
|
|||
} else {
|
||||
v.Set(key, val)
|
||||
}
|
||||
} else if nestedKey != "" {
|
||||
owner[nestedKey] = valStr
|
||||
} else {
|
||||
v.Set(key, valStr)
|
||||
}
|
||||
|
|
|
@ -495,7 +495,6 @@ stringSlice = ["a", "b"]
|
|||
[imaging]
|
||||
anchor = "smart"
|
||||
quality = 75
|
||||
resamplefilter = "CatmullRom"
|
||||
`
|
||||
|
||||
b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
|
||||
|
@ -505,6 +504,7 @@ resamplefilter = "CatmullRom"
|
|||
"HUGO_NEW", "new", // key not in config.toml
|
||||
"HUGO_ENABLEGITINFO", "false",
|
||||
"HUGO_IMAGING_ANCHOR", "top",
|
||||
"HUGO_IMAGING_RESAMPLEFILTER", "CatmullRom",
|
||||
"HUGO_STRINGSLICE", `["c", "d"]`,
|
||||
"HUGO_INTSLICE", `[5, 8, 9]`,
|
||||
"HUGO_FLOATSLICE", `[5.32]`,
|
||||
|
@ -519,6 +519,7 @@ resamplefilter = "CatmullRom"
|
|||
c.Assert(cfg.Get("new"), qt.Equals, "new")
|
||||
c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top")
|
||||
c.Assert(cfg.Get("imaging.quality"), qt.Equals, int64(75))
|
||||
c.Assert(cfg.Get("imaging.resamplefilter"), qt.Equals, "CatmullRom")
|
||||
c.Assert(cfg.Get("stringSlice"), qt.DeepEquals, []interface{}{"c", "d"})
|
||||
c.Assert(cfg.Get("floatSlice"), qt.DeepEquals, []interface{}{5.32})
|
||||
c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})
|
||||
|
|
Loading…
Reference in a new issue