diff --git a/hugofs/fileinfo.go b/hugofs/fileinfo.go index 0f20ec386..255295b75 100644 --- a/hugofs/fileinfo.go +++ b/hugofs/fileinfo.go @@ -272,7 +272,7 @@ func (fi *dirNameOnlyFileInfo) Sys() interface{} { 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 @@ func newDirNameOnlyFileInfo(name string, meta FileMeta, isOrdered bool, fileOpen m.setIfNotZero(metaKeyFilename, name) } m[metaKeyOpener] = fileOpener - m[metaKeyIsOrdered] = isOrdered + m[metaKeyIsOrdered] = false return NewFileMetaInfo( &dirNameOnlyFileInfo{name: base}, diff --git a/hugofs/rootmapping_fs.go b/hugofs/rootmapping_fs.go index ea8b7e04d..26d6ffa3c 100644 --- a/hugofs/rootmapping_fs.go +++ b/hugofs/rootmapping_fs.go @@ -367,7 +367,7 @@ func (fs *RootMappingFs) collectDirEntries(prefix string) ([]os.FileInfo, error) 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 @@ func (fs *RootMappingFs) collectDirEntries(prefix string) ([]os.FileInfo, error) 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 @@ func (fs *RootMappingFs) collectDirEntries(prefix string) ([]os.FileInfo, error) 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 @@ func (fs *RootMappingFs) doLstat(name string) ([]FileMetaInfo, error) { 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 @@ func (fs *RootMappingFs) doLstat(name string) ([]FileMetaInfo, error) { 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 { diff --git a/hugolib/pagebundler_test.go b/hugolib/pagebundler_test.go index eeed51b91..62b041d7c 100644 --- a/hugolib/pagebundler_test.go +++ b/hugolib/pagebundler_test.go @@ -1336,3 +1336,35 @@ bundle min min key: {{ $jsonMinMin.Key }} } } + +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:

Hook Len Page Resources 1

+`) +}