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]
|
first := indices[0]
|
||||||
v, found := m[strings.ToLower(cast.ToString(first))]
|
v, found := m[strings.ToLower(cast.ToString(first))]
|
||||||
if !found {
|
if !found {
|
||||||
|
if len(indices) == 1 {
|
||||||
|
return nil, first, m
|
||||||
|
}
|
||||||
return nil, "", nil
|
return nil, "", nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(indices) == 1 {
|
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_color", "_", m), qt.Equals, "blue")
|
||||||
c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green")
|
c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green")
|
||||||
c.Assert(must("string.name", ".", m), qt.IsNil)
|
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 {
|
} else {
|
||||||
v.Set(key, val)
|
v.Set(key, val)
|
||||||
}
|
}
|
||||||
|
} else if nestedKey != "" {
|
||||||
|
owner[nestedKey] = valStr
|
||||||
} else {
|
} else {
|
||||||
v.Set(key, valStr)
|
v.Set(key, valStr)
|
||||||
}
|
}
|
||||||
|
|
|
@ -495,7 +495,6 @@ stringSlice = ["a", "b"]
|
||||||
[imaging]
|
[imaging]
|
||||||
anchor = "smart"
|
anchor = "smart"
|
||||||
quality = 75
|
quality = 75
|
||||||
resamplefilter = "CatmullRom"
|
|
||||||
`
|
`
|
||||||
|
|
||||||
b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
|
b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
|
||||||
|
@ -505,6 +504,7 @@ resamplefilter = "CatmullRom"
|
||||||
"HUGO_NEW", "new", // key not in config.toml
|
"HUGO_NEW", "new", // key not in config.toml
|
||||||
"HUGO_ENABLEGITINFO", "false",
|
"HUGO_ENABLEGITINFO", "false",
|
||||||
"HUGO_IMAGING_ANCHOR", "top",
|
"HUGO_IMAGING_ANCHOR", "top",
|
||||||
|
"HUGO_IMAGING_RESAMPLEFILTER", "CatmullRom",
|
||||||
"HUGO_STRINGSLICE", `["c", "d"]`,
|
"HUGO_STRINGSLICE", `["c", "d"]`,
|
||||||
"HUGO_INTSLICE", `[5, 8, 9]`,
|
"HUGO_INTSLICE", `[5, 8, 9]`,
|
||||||
"HUGO_FLOATSLICE", `[5.32]`,
|
"HUGO_FLOATSLICE", `[5.32]`,
|
||||||
|
@ -519,6 +519,7 @@ resamplefilter = "CatmullRom"
|
||||||
c.Assert(cfg.Get("new"), qt.Equals, "new")
|
c.Assert(cfg.Get("new"), qt.Equals, "new")
|
||||||
c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top")
|
c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top")
|
||||||
c.Assert(cfg.Get("imaging.quality"), qt.Equals, int64(75))
|
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("stringSlice"), qt.DeepEquals, []interface{}{"c", "d"})
|
||||||
c.Assert(cfg.Get("floatSlice"), qt.DeepEquals, []interface{}{5.32})
|
c.Assert(cfg.Get("floatSlice"), qt.DeepEquals, []interface{}{5.32})
|
||||||
c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})
|
c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})
|
||||||
|
|
Loading…
Reference in a new issue