hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 30aba7fb099678363b0a4828936ed28e740e00e2
parent 04a3b45db4cd28b4821b5c98cd67dfbf1d098957
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Mon,  1 Nov 2021 20:30:34 +0100

source: Make ContentBaseName() return the directory for branch bundles

Fixes #9112

Diffstat:
Mcreate/content_test.go | 8++++++++
Msource/fileInfo.go | 9++++-----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/create/content_test.go b/create/content_test.go
@@ -50,6 +50,8 @@ func TestNewContent(t *testing.T) {
 		{"No archetype", "", "sample-3.md", []string{`title: "Sample 3"`}},                        // no archetype
 		{"Empty archetype", "product", "product/sample-4.md", []string{`title = "SAMPLE-4"`}},     // empty archetype front matter
 		{"Filenames", "filenames", "content/mypage/index.md", []string{"title = \"INDEX\"\n+++\n\n\nContentBaseName: mypage"}},
+		{"Branch Name", "name", "content/tags/tag-a/_index.md", []string{"+++\ntitle = 'Tag A'\n+++"}},
+
 		{"Lang 1", "lang", "post/lang-1.md", []string{`Site Lang: en|Name: Lang 1|i18n: Hugo Rocks!`}},
 		{"Lang 2", "lang", "post/lang-2.en.md", []string{`Site Lang: en|Name: Lang 2|i18n: Hugo Rocks!`}},
 		{"Lang nn file", "lang", "content/post/lang-3.nn.md", []string{`Site Lang: nn|Name: Lang 3|i18n: Hugo Rokkar!`}},
@@ -275,6 +277,12 @@ title: Test
 			content: "#+title: {{ .BaseFileName  | upper }}",
 		},
 		{
+			path: filepath.Join("archetypes", "name.md"),
+			content: `+++
+title = '{{ replace .Name "-" " " | title }}'
++++`,
+		},
+		{
 			path: filepath.Join("archetypes", "product.md"),
 			content: `+++
 title = "{{ .BaseFileName  | upper }}"
diff --git a/source/fileInfo.go b/source/fileInfo.go
@@ -120,7 +120,7 @@ type FileInfo struct {
 	translationBaseName string
 	contentBaseName     string
 	section             string
-	isLeafBundle        bool
+	classifier          files.ContentClass
 
 	uniqueID string
 
@@ -199,12 +199,12 @@ func (fi *FileInfo) init() {
 		relDir := strings.Trim(fi.relDir, helpers.FilePathSeparator)
 		parts := strings.Split(relDir, helpers.FilePathSeparator)
 		var section string
-		if (!fi.isLeafBundle && len(parts) == 1) || len(parts) > 1 {
+		if (fi.classifier != files.ContentClassLeaf && len(parts) == 1) || len(parts) > 1 {
 			section = parts[0]
 		}
 		fi.section = section
 
-		if fi.isLeafBundle && len(parts) > 0 {
+		if fi.classifier.IsBundle() && len(parts) > 0 {
 			fi.contentBaseName = parts[len(parts)-1]
 		} else {
 			fi.contentBaseName = fi.translationBaseName
@@ -238,7 +238,6 @@ func (sp *SourceSpec) NewFileInfo(fi hugofs.FileMetaInfo) (*FileInfo, error) {
 
 	filename := m.Filename
 	relPath := m.Path
-	isLeafBundle := m.Classifier == files.ContentClassLeaf
 
 	if relPath == "" {
 		return nil, errors.Errorf("no Path provided by %v (%T)", m, m.Fs)
@@ -287,7 +286,7 @@ func (sp *SourceSpec) NewFileInfo(fi hugofs.FileMetaInfo) (*FileInfo, error) {
 		name:                name,
 		baseName:            baseName, // BaseFileName()
 		translationBaseName: translationBaseName,
-		isLeafBundle:        isLeafBundle,
+		classifier:          m.Classifier,
 	}
 
 	return f, nil