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]