return false, nil
}
- date, err := htime.ToTimeInDefaultLocationE(v, d.Location)
- if err != nil {
- return false, nil
+ var date time.Time
+ if vt, ok := v.(time.Time); ok && vt.Location() == d.Location {
+ date = vt
+ } else {
+ var err error
+ date, err = htime.ToTimeInDefaultLocationE(v, d.Location)
+ if err != nil {
+ return false, nil
+ }
+ d.PageConfig.Params[key] = date
}
// We map several date keys to one, so, for example,
// "expirydate", "unpublishdate" will all set .ExpiryDate (first found).
setter(d, date)
- // This is the params key as set in front matter.
- d.PageConfig.Params[key] = date
-
return true, nil
}
}
--- /dev/null
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package pagemeta_test
+
+import (
+ "testing"
+
+ "github.com/gohugoio/hugo/hugolib"
+)
+
+func TestLastModEq(t *testing.T) {
+ files := `
+-- hugo.toml --
+timeZone = "Europe/London"
+-- content/p1.md --
+---
+title: p1
+date: 2024-03-13T06:00:00
+---
+-- layouts/_default/single.html --
+Date: {{ .Date }}
+Lastmod: {{ .Lastmod }}
+Eq: {{ eq .Date .Lastmod }}
+
+`
+
+ b := hugolib.Test(t, files)
+
+ b.AssertFileContent("public/p1/index.html", `
+Date: 2024-03-13 06:00:00 +0000 GMT
+Lastmod: 2024-03-13 06:00:00 +0000 GMT
+Eq: true
+`)
+}