]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
metadecoders: Add support for native org dates in frontmatter
authorjohannesengl <hello@johannesengl.com>
Mon, 6 Mar 2023 14:29:31 +0000 (15:29 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 6 Mar 2023 19:37:31 +0000 (20:37 +0100)
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

parser/metadecoders/decoder.go
parser/metadecoders/decoder_test.go

index 3f322ad92e4b168b77f5ec894f6d50730d15ffa7..a65731ae4ca633d7cb0a5e9dc586a9fe35be9480 100644 (file)
@@ -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
index 590c9fa9e0db95266f5ef9ec5976ce46d70b98f2..ff6f8c226a0ab2a024c69484a62446dc78147ef4 100644 (file)
@@ -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},