ref: 18888e09bbb5325bdd63f2cd93116ff490dd37ab
parent: 1e5eb8679ece0ce8dab3aca6c3267d6a206b790d
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sun Feb 9 09:17:47 EST 2020
Fix bundle resource ordering regression Introduced in Hugo 0.64.0 Fixes #6851
--- a/hugofs/fileinfo.go
+++ b/hugofs/fileinfo.go
@@ -272,7 +272,7 @@
return nil
}
-func newDirNameOnlyFileInfo(name string, meta FileMeta, isOrdered bool, fileOpener func() (afero.File, error)) FileMetaInfo {
+func newDirNameOnlyFileInfo(name string, meta FileMeta, fileOpener func() (afero.File, error)) FileMetaInfo {
name = normalizeFilename(name)
_, base := filepath.Split(name)
@@ -281,7 +281,7 @@
m.setIfNotZero(metaKeyFilename, name)
}
m[metaKeyOpener] = fileOpener
- m[metaKeyIsOrdered] = isOrdered
+ m[metaKeyIsOrdered] = false
return NewFileMetaInfo(
&dirNameOnlyFileInfo{name: base},
--- a/hugofs/rootmapping_fs.go
+++ b/hugofs/rootmapping_fs.go
@@ -367,7 +367,7 @@
opener := func() (afero.File, error) {
return fs.Open(filepath.Join(rm.From, name))
}
- fi = newDirNameOnlyFileInfo(name, meta, false, opener)
+ fi = newDirNameOnlyFileInfo(name, meta, opener)
}
fis = append(fis, fi)
@@ -396,7 +396,7 @@
return fs.Open(path)
}
- fi := newDirNameOnlyFileInfo(name, nil, false, opener)
+ fi := newDirNameOnlyFileInfo(name, nil, opener)
fis = append(fis, fi)
return false
@@ -419,7 +419,7 @@
return fs.Open(rm.From)
}
- fi := newDirNameOnlyFileInfo(name, rm.Meta, false, opener)
+ fi := newDirNameOnlyFileInfo(name, rm.Meta, opener)
fis = append(fis, fi)
@@ -441,7 +441,7 @@
if fs.hasPrefix(key) {
// We have directories mounted below this.
// Make it look like a directory.
- return []FileMetaInfo{newDirNameOnlyFileInfo(name, nil, true, fs.virtualDirOpener(name))}, nil
+ return []FileMetaInfo{newDirNameOnlyFileInfo(name, nil, fs.virtualDirOpener(name))}, nil
}
// Find any real files or directories with this key.
@@ -484,7 +484,7 @@
if fileCount == 0 {
// Dir only.
- return []FileMetaInfo{newDirNameOnlyFileInfo(name, roots[0].Meta, true, fs.virtualDirOpener(name))}, nil
+ return []FileMetaInfo{newDirNameOnlyFileInfo(name, roots[0].Meta, fs.virtualDirOpener(name))}, nil
}
if fileCount > 1 {
--- a/hugolib/pagebundler_test.go
+++ b/hugolib/pagebundler_test.go
@@ -1336,3 +1336,35 @@
}
}
+
+func TestPageBundlerHome(t *testing.T) {
+ t.Parallel()
+ c := qt.New(t)
+
+ workDir, clean, err := htesting.CreateTempDir(hugofs.Os, "hugo-bundler-home")
+ c.Assert(err, qt.IsNil)
+
+ cfg := viper.New()
+ cfg.Set("workingDir", workDir)
+ fs := hugofs.NewFrom(hugofs.Os, cfg)
+
+ os.MkdirAll(filepath.Join(workDir, "content"), 0777)
+
+ defer clean()
+
+ b := newTestSitesBuilder(t)
+ b.Fs = fs
+
+ b.WithWorkingDir(workDir).WithViper(cfg)
+
+ b.WithContent("_index.md", "---\ntitle: Home\n---\n![Alt text](image.jpg)")
+ b.WithSourceFile("content/data.json", "DATA")
+
+ b.WithTemplates("index.html", `Title: {{ .Title }}|First Resource: {{ index .Resources 0 }}|Content: {{ .Content }}`)
+ b.WithTemplates("_default/_markup/render-image.html", `Hook Len Page Resources {{ len .Page.Resources }}`)
+
+ b.Build(BuildCfg{})
+ b.AssertFileContent("public/index.html", `
+Title: Home|First Resource: data.json|Content: <p>Hook Len Page Resources 1</p>
+`)
+}