diff options
author | Gareth Watts <gareth@omnipotent.net> | 2020-10-22 12:14:14 -0500 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-10-22 23:00:19 +0200 |
commit | 3400aff2588cbf9dd4629c05537d16b019d0fdf5 (patch) | |
tree | e3714b454b2366f891cdfc746c5e9d9549d3a973 /hugolib/cascade_test.go | |
parent | fdfa4a5fe62232f65f1dd8d6fe0c500374228788 (diff) |
Allow cascade _target to work with non toml fm
The TOML lib unmarshals slices of string maps to []map[string]interface{}
whereas YAML and JSON decode to []interface{}
The existing tests only check for TOML working correctly, and _target
with cascade did not work at all for frontmatter defined in other formats.
Add a function to normalize those slices
Fixes #7874
Diffstat (limited to 'hugolib/cascade_test.go')
-rw-r--r-- | hugolib/cascade_test.go | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/hugolib/cascade_test.go b/hugolib/cascade_test.go index 336acdcf3..a112fe10c 100644 --- a/hugolib/cascade_test.go +++ b/hugolib/cascade_test.go @@ -459,4 +459,58 @@ S1|p1:|p2:p2| }) + c.Run("slice with yaml _target", func(c *qt.C) { + b := newBuilder(c) + + b.WithContent("_index.md", `--- +title: "Home" +cascade: +- p1: p1 + _target: + path: "**p1**" +- p2: p2 + _target: + kind: "section" +--- +`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", ` +P1|p1:p1|p2:| +S1|p1:|p2:p2| +`) + + }) + + c.Run("slice with json _target", func(c *qt.C) { + b := newBuilder(c) + + b.WithContent("_index.md", `{ +"title": "Home", +"cascade": [ + { + "p1": "p1", + "_target": { + "path": "**p1**" + } + },{ + "p2": "p2", + "_target": { + "kind": "section" + } + } +] +} +`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", ` + P1|p1:p1|p2:| + S1|p1:|p2:p2| + `) + + }) + } |