shithub: hugo

Download patch

ref: 36220851e4ed7fc3fa78aa250d001d5f922210e7
parent: 53ade40ba47e73d0505b1685538b525f291b6e08
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Jul 30 09:35:16 EDT 2019

Fix self-mounts on the main project

Fixes #6143

--- a/hugolib/hugo_modules_test.go
+++ b/hugolib/hugo_modules_test.go
@@ -506,3 +506,31 @@
 		}
 	}
 }
+
+func TestMountsProject(t *testing.T) {
+
+	config := `
+
+baseURL="https://example.org"
+
+[module]
+[[module.mounts]]
+source="mycontent"
+target="content"
+
+`
+	b := newTestSitesBuilder(t).
+		WithConfigFile("toml", config).
+		WithSourceFile(filepath.Join("mycontent", "mypage.md"), `
+---
+title: "My Page"
+---
+
+`)
+
+	b.Build(BuildCfg{})
+
+	//helpers.PrintFs(b.H.Fs.Source, "public", os.Stdout)
+
+	b.AssertFileContent("public/mypage/index.html", "Permalink: https://example.org/mypage/")
+}
--- a/modules/collect.go
+++ b/modules/collect.go
@@ -305,21 +305,25 @@
 func (c *collector) applyMounts(moduleImport Import, mod *moduleAdapter) error {
 	mounts := moduleImport.Mounts
 
-	if !mod.projectMod && len(mounts) == 0 {
-		modConfig := mod.Config()
+	modConfig := mod.Config()
+
+	if len(mounts) == 0 {
+		// Mounts not defined by the import.
 		mounts = modConfig.Mounts
-		if len(mounts) == 0 {
-			// Create default mount points for every component folder that
-			// exists in the module.
-			for _, componentFolder := range files.ComponentFolders {
-				sourceDir := filepath.Join(mod.Dir(), componentFolder)
-				_, err := c.fs.Stat(sourceDir)
-				if err == nil {
-					mounts = append(mounts, Mount{
-						Source: componentFolder,
-						Target: componentFolder,
-					})
-				}
+
+	}
+
+	if !mod.projectMod && len(mounts) == 0 {
+		// Create default mount points for every component folder that
+		// exists in the module.
+		for _, componentFolder := range files.ComponentFolders {
+			sourceDir := filepath.Join(mod.Dir(), componentFolder)
+			_, err := c.fs.Stat(sourceDir)
+			if err == nil {
+				mounts = append(mounts, Mount{
+					Source: componentFolder,
+					Target: componentFolder,
+				})
 			}
 		}
 	}
--- a/modules/config.go
+++ b/modules/config.go
@@ -171,6 +171,9 @@
 		mounts = append(mounts, Mount{Source: dirKey.component, Target: dirKey.component})
 	}
 
+	// Prepend the mounts from configuration.
+	mounts = append(moda.mounts, mounts...)
+
 	// Remove duplicates
 	seen := make(map[string]bool)
 	tmp := mounts[:0]