shithub: hugo

Download patch

ref: 4b4bdcfe740d988e4cfb4fee53eced6985576abd
parent: 18836a71ce7b671fa71dd1318b99fc661755e94d
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sat Aug 17 12:22:24 EDT 2019

hugolib: Allow index.md inside bundles

Fixes #6208

--- a/hugolib/pagebundler_test.go
+++ b/hugolib/pagebundler_test.go
@@ -1176,3 +1176,45 @@
 	)
 
 }
+
+// #6208
+func TestBundleIndexInSubFolder(t *testing.T) {
+	config := `
+baseURL = "https://example.com"
+
+`
+
+	const pageContent = `---
+title: %q
+---
+`
+	createPage := func(s string) string {
+		return fmt.Sprintf(pageContent, s)
+	}
+
+	b := newTestSitesBuilder(t).WithConfigFile("toml", config)
+	b.WithLogger(loggers.NewWarningLogger())
+
+	b.WithTemplates("_default/single.html", `{{ range .Resources }}
+{{ .ResourceType }}|{{ .Title }}|
+{{ end }}
+
+
+`)
+
+	b.WithContent("bundle/index.md", createPage("bundle index"))
+	b.WithContent("bundle/p1.md", createPage("bundle p1"))
+	b.WithContent("bundle/sub/p2.md", createPage("bundle sub p2"))
+	b.WithContent("bundle/sub/index.md", createPage("bundle sub index"))
+	b.WithContent("bundle/sub/data.json", "data")
+
+	b.Build(BuildCfg{})
+
+	b.AssertFileContent("public/bundle/index.html", `
+        json|sub/data.json|
+        page|bundle p1|
+        page|bundle sub index|
+        page|bundle sub p2|
+`)
+
+}
--- a/hugolib/pages_capture.go
+++ b/hugolib/pages_capture.go
@@ -370,6 +370,11 @@
 	lang := c.getLang(info)
 	bundle := getBundle(lang)
 	isBundleHeader := c.isBundleHeader(info)
+	if bundle != nil && isBundleHeader {
+		// index.md file inside a bundle, see issue 6208.
+		info.Meta()["classifier"] = files.ContentClassContent
+		isBundleHeader = false
+	}
 	classifier := info.Meta().Classifier()
 	isContent := classifier == files.ContentClassContent
 	if bundle == nil {