diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-23 10:02:44 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-23 17:11:38 +0100 |
commit | 5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4 (patch) | |
tree | 83c58086d458fa3a7122dea78476489af0d2bf29 /resource/resource_test.go | |
parent | 78c863305f337ed4faf3cf0a23675f28b0ae5641 (diff) | |
download | hugo-5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4.tar.gz hugo-5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4.zip |
Merge matching resources params maps
This allows setting default params values in the more general resource matchers. I also allows override with more specific values if needed.
```toml
[[resources]]
src = "documents/photo_specs.pdf"
title = "Photo Specifications"
[resources.params]
ref = 90564687
icon = "photo"
[[resources]]
src = "documents/guide.pdf"
title = "Instruction Guide"
[resources.params]
ref = 90564568
[[resources]]
src = "documents/checklist.pdf"
title = "Document Checklist"
[resources.params]
ref = 90564572
[[resources]]
src = "documents/payment.docx"
title = "Proof of Payment"
[[resources]]
src = "documents/*.pdf"
title = "PDF file"
[resources.params]
icon = "pdf"
[[resources]]
src = "documents/*.docx"
title = "Word document"
[resources.params]
icon = "word"
```
In the above `TOML` example, `photo_specs.pdf` will get the `photo` icon, the other pdf files will get the default `pdf` icon.
Note that in the example above, the order matters: It will take the first value for a given params key, title or name that it finds.
Fixes #4315
Diffstat (limited to 'resource/resource_test.go')
-rw-r--r-- | resource/resource_test.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/resource/resource_test.go b/resource/resource_test.go index b4cf3ebed..54d200c1c 100644 --- a/resource/resource_test.go +++ b/resource/resource_test.go @@ -234,6 +234,7 @@ func TestAssignMetadata(t *testing.T) { "src": "*loGo*", "params": map[string]interface{}{ "Param1": true, + "icon": "logo", }, }, map[string]interface{}{ @@ -241,6 +242,7 @@ func TestAssignMetadata(t *testing.T) { "src": "*", "params": map[string]interface{}{ "Param2": true, + "icon": "resource", }, }, }, func(err error) { @@ -249,9 +251,22 @@ func TestAssignMetadata(t *testing.T) { assert.Equal("My Resource", foo3.Title()) _, p1 := logo2.Params()["param1"] _, p2 := foo2.Params()["param2"] + _, p1_2 := foo2.Params()["param1"] + _, p2_2 := logo2.Params()["param2"] + + icon1, _ := logo2.Params()["icon"] + icon2, _ := foo2.Params()["icon"] + assert.True(p1) assert.True(p2) + // Check merge + assert.True(p2_2) + assert.False(p1_2) + + assert.Equal("logo", icon1) + assert.Equal("resource", icon2) + }}, {[]map[string]interface{}{ map[string]interface{}{ |