hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit 3a5ee0d2d6e344b12efc7a97354ec3480c4c578b
parent 4ffaeaf15536596c94dc73b393ca7894e3bd5e2c
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Mon, 15 Feb 2021 11:11:34 +0100

modules: Allow absolute paths for any modules resolved via project replacement

Fixes #8240

Diffstat:
Mmodules/collect.go | 2+-
Mmodules/config.go | 14++++++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/modules/collect.go b/modules/collect.go
@@ -276,7 +276,7 @@ func (c *collector) add(owner *moduleAdapter, moduleImport Import, disabled bool
 			// Fall back to project/themes/<mymodule>
 			if moduleDir == "" {
 				var err error
-				moduleDir, err = c.createThemeDirname(modulePath, owner.projectMod)
+				moduleDir, err = c.createThemeDirname(modulePath, owner.projectMod || moduleImport.pathProjectReplaced)
 				if err != nil {
 					c.err = err
 					return nil, nil
diff --git a/modules/config.go b/modules/config.go
@@ -237,6 +237,7 @@ func decodeConfig(cfg config.Provider, pathReplacements map[string]string) (Conf
 			for i, imp := range c.Imports {
 				if newImp, found := c.replacementsMap[imp.Path]; found {
 					imp.Path = newImp
+					imp.pathProjectReplaced = true
 					c.Imports[i] = imp
 				}
 			}
@@ -355,12 +356,13 @@ func (v HugoVersion) IsValid() bool {
 }
 
 type Import struct {
-	Path          string // Module path
-	IgnoreConfig  bool   // Ignore any config in config.toml (will still folow imports).
-	IgnoreImports bool   // Do not follow any configured imports.
-	NoVendor      bool   // Never vendor this import (only allowed in main project).
-	Disable       bool   // Turn off this module.
-	Mounts        []Mount
+	Path                string // Module path
+	pathProjectReplaced bool   // Set when Path is replaced in project config.
+	IgnoreConfig        bool   // Ignore any config in config.toml (will still folow imports).
+	IgnoreImports       bool   // Do not follow any configured imports.
+	NoVendor            bool   // Never vendor this import (only allowed in main project).
+	Disable             bool   // Turn off this module.
+	Mounts              []Mount
 }
 
 type Mount struct {