summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjohannesengl <hello@johannesengl.com>2023-03-06 15:29:31 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-03-06 20:37:31 +0100
commitbdbfacb86846237f968d790bc3819f81800afb08 (patch)
treecaceb3de031d6736c2ff2004654368129cc71f02
parent32ea40aa82736d33aebac246c2552d1342988d9d (diff)
metadecoders: Add support for native org dates in frontmatter
PR #7433 added support for Org timestamps for the DATE header. This PR widens the support with additional front matter headers LASTMOD, PUBLISHDATE and EXPIRYDATE. Fixes #8536
-rw-r--r--parser/metadecoders/decoder.go2
-rw-r--r--parser/metadecoders/decoder_test.go3
2 files changed, 4 insertions, 1 deletions
diff --git a/parser/metadecoders/decoder.go b/parser/metadecoders/decoder.go
index 3f322ad92..a65731ae4 100644
--- a/parser/metadecoders/decoder.go
+++ b/parser/metadecoders/decoder.go
@@ -244,7 +244,7 @@ func (d Decoder) unmarshalORG(data []byte, v any) error {
} else if k == "tags" || k == "categories" || k == "aliases" {
jww.WARN.Printf("Please use '#+%s[]:' notation, automatic conversion is deprecated.", k)
frontMatter[k] = strings.Fields(v)
- } else if k == "date" {
+ } else if k == "date" || k == "lastmod" || k == "publishdate" || k == "expirydate" {
frontMatter[k] = parseORGDate(v)
} else {
frontMatter[k] = v
diff --git a/parser/metadecoders/decoder_test.go b/parser/metadecoders/decoder_test.go
index 590c9fa9e..ff6f8c226 100644
--- a/parser/metadecoders/decoder_test.go
+++ b/parser/metadecoders/decoder_test.go
@@ -126,6 +126,9 @@ func TestUnmarshalToInterface(t *testing.T) {
{[]byte(nil), JSON, map[string]any{}},
{[]byte(`#+a: b`), ORG, expect},
{[]byte(`#+DATE: <2020-06-26 Fri>`), ORG, map[string]any{"date": "2020-06-26"}},
+ {[]byte(`#+LASTMOD: <2020-06-26 Fri>`), ORG, map[string]any{"lastmod": "2020-06-26"}},
+ {[]byte(`#+PUBLISHDATE: <2020-06-26 Fri>`), ORG, map[string]any{"publishdate": "2020-06-26"}},
+ {[]byte(`#+EXPIRYDATE: <2020-06-26 Fri>`), ORG, map[string]any{"expirydate": "2020-06-26"}},
{[]byte(`a = "b"`), TOML, expect},
{[]byte(`a: "b"`), YAML, expect},
{[]byte(`<root><a>b</a></root>`), XML, expect},