})
if f.fs.opts.Component == files.ComponentFolderContent {
- // Finally filter out any duplicate content files, e.g. page.md and page.html.
+ // Finally filter out any duplicate content or resource files, e.g. page.md and page.html.
n := 0
seen := map[hstrings.Tuple]bool{}
for _, fi := range fis {
fim := fi.(FileMetaInfo)
pi := fim.Meta().PathInfo
- keep := fim.IsDir() || !pi.IsContent()
+ keep := fim.IsDir()
if !keep {
baseLang := hstrings.Tuple{First: pi.Base(), Second: fim.Meta().Lang}
b.AssertFileContent("public/index.html", "R: Data.")
}
+
+// Issue #11946.
+func TestBundleResourcesGetDuplicateSortOrder(t *testing.T) {
+ files := `
+-- hugo.toml --
+baseURL = "https://example.com"
+-- content/bundle/index.md --
+-- content/bundle/data-1.txt --
+data-1.txt
+-- content/bundle/data 1.txt --
+data 1.txt
+-- content/bundle/Data 1.txt --
+Data 1.txt
+-- content/bundle/Data-1.txt --
+Data-1.txt
+-- layouts/index.html --
+{{ $bundle := site.GetPage "bundle" }}
+{{ $r := $bundle.Resources.Get "data-1.txt" }}
+R: {{ with $r }}{{ .Content }}{{ end }}|Len: {{ len $bundle.Resources }}|$
+
+`
+
+ for i := 0; i < 3; i++ {
+ b := Test(t, files)
+ b.AssertFileContent("public/index.html", "R: Data 1.txt|", "Len: 1|")
+ }
+}