]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
resources/resource: Fix GroupByParamDate with raw TOML dates
authorJoe Mooring <joe.mooring@veriphor.com>
Mon, 13 Nov 2023 21:34:41 +0000 (13:34 -0800)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 22 Nov 2023 11:09:48 +0000 (12:09 +0100)
Closes #11563

resources/integration_test.go
resources/resource/resource_helpers.go

index 5570b15d669d6471564926ef81feaa957b6638e1..51a00362598cab3ff69b947fa6bf6c6d6419a98f 100644 (file)
@@ -81,10 +81,10 @@ func TestSVGError(t *testing.T) {
        files := `
 -- config.toml --
 -- assets/circle.svg --
-<svg height="100" width="100"><circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /></svg> 
+<svg height="100" width="100"><circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /></svg>
 -- layouts/index.html --
 {{ $svg := resources.Get "circle.svg" }}
-Width: {{ $svg.Width }}        
+Width: {{ $svg.Width }}
 `
 
        b, err := hugolib.NewIntegrationTestBuilder(
@@ -168,3 +168,66 @@ resize 2|RelPermalink: {{ $image.RelPermalink }}|MediaType: {{ $image.MediaType
                "resize 2|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_6707036659822075562.jpg|MediaType: image/jpeg|Width: 20|Height: 30|",
        )
 }
+
+// Issue #11563
+func TestGroupByParamDate(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- config.toml --
+disableKinds = ['section','rss','sitemap','taxonomy','term']
+-- layouts/index.html --
+{{- range site.RegularPages.GroupByParamDate "eventDate" "2006-01" }}
+       {{- .Key }}|{{ range .Pages }}{{ .Title }}|{{ end }}
+{{- end }}
+-- content/p1.md --
++++
+title = 'p1'
+eventDate = 2023-09-01
++++
+-- content/p2.md --
++++
+title = 'p2'
+eventDate = '2023-09-01'
++++
+-- content/p3.md --
+---
+title: p3
+eventDate: 2023-09-01
+---
+-- content/p4.md --
++++
+title = 'p4'
+eventDate = 2023-10-01T08:00:00
++++
+-- content/p5.md --
++++
+title = 'p5'
+eventDate = '2023-10-01T08:00:00'
++++
+-- content/p6.md --
+---
+title: p6
+eventDate: 2023-10-01T08:00:00
+---
+-- content/p7.md --
++++
+title = 'p7'
+eventDate = 2023-11-01T07:00:00-08:00
++++
+-- content/p8.md --
++++
+title = 'p8'
+eventDate = '2023-11-01T07:00:00-08:00'
++++
+-- content/p9.md --
+---
+title: p9
+eventDate: 2023-11-01T07:00:00-08:00
+---
+  `
+
+       b := hugolib.Test(t, files)
+
+       b.AssertFileContent("public/index.html", "2023-11|p9|p8|p7|2023-10|p6|p5|p4|2023-09|p3|p2|p1|")
+}
index 29f783ce3297bd6d6e278b03effd4d7bf2e6dbbc..90075f983abd2383aed51c457272e1f5efc4c6ad 100644 (file)
@@ -18,6 +18,7 @@ import (
        "time"
 
        "github.com/gohugoio/hugo/helpers"
+       "github.com/pelletier/go-toml/v2"
 
        "github.com/spf13/cast"
 )
@@ -55,6 +56,10 @@ func getParam(r Resource, key string, stringToLower bool) any {
                return cast.ToFloat64(v)
        case time.Time:
                return val
+       case toml.LocalDate:
+               return val.AsTime(time.UTC)
+       case toml.LocalDateTime:
+               return val.AsTime(time.UTC)
        case []string:
                if stringToLower {
                        return helpers.SliceToLower(val)
@@ -65,6 +70,5 @@ func getParam(r Resource, key string, stringToLower bool) any {
        case map[any]any:
                return v
        }
-
        return nil
 }