summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser/metadecoders/decoder.go2
-rw-r--r--parser/metadecoders/decoder_test.go1
2 files changed, 2 insertions, 1 deletions
diff --git a/parser/metadecoders/decoder.go b/parser/metadecoders/decoder.go
index 3db0ae338..a31bcd5cd 100644
--- a/parser/metadecoders/decoder.go
+++ b/parser/metadecoders/decoder.go
@@ -112,7 +112,7 @@ func (d Decoder) UnmarshalStringTo(data string, typ any) (any, error) {
// Unmarshal will unmarshall data in format f into an interface{}.
// This is what's needed for Hugo's /data handling.
func (d Decoder) Unmarshal(data []byte, f Format) (any, error) {
- if data == nil {
+ if data == nil || len(data) == 0 {
switch f {
case CSV:
return make([][]string, 0), nil
diff --git a/parser/metadecoders/decoder_test.go b/parser/metadecoders/decoder_test.go
index 7b762667c..fbeab41a4 100644
--- a/parser/metadecoders/decoder_test.go
+++ b/parser/metadecoders/decoder_test.go
@@ -122,6 +122,7 @@ func TestUnmarshalToInterface(t *testing.T) {
}{
{`[ "Brecker", "Blake", "Redman" ]`, JSON, []any{"Brecker", "Blake", "Redman"}},
{`{ "a": "b" }`, JSON, expect},
+ {``, JSON, map[string]any{}},
{`#+a: b`, ORG, expect},
{`#+DATE: <2020-06-26 Fri>`, ORG, map[string]any{"date": "2020-06-26"}},
{`a = "b"`, TOML, expect},