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

Fixes #8240
This commit is contained in:
Bjørn Erik Pedersen 2021-02-15 11:11:34 +01:00
parent 4ffaeaf155
commit 3a5ee0d2d6
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 9 additions and 7 deletions

View file

@ -276,7 +276,7 @@ func (c *collector) add(owner *moduleAdapter, moduleImport Import, disabled bool
// Fall back to project/themes/<mymodule> // Fall back to project/themes/<mymodule>
if moduleDir == "" { if moduleDir == "" {
var err error var err error
moduleDir, err = c.createThemeDirname(modulePath, owner.projectMod) moduleDir, err = c.createThemeDirname(modulePath, owner.projectMod || moduleImport.pathProjectReplaced)
if err != nil { if err != nil {
c.err = err c.err = err
return nil, nil return nil, nil

View file

@ -237,6 +237,7 @@ func decodeConfig(cfg config.Provider, pathReplacements map[string]string) (Conf
for i, imp := range c.Imports { for i, imp := range c.Imports {
if newImp, found := c.replacementsMap[imp.Path]; found { if newImp, found := c.replacementsMap[imp.Path]; found {
imp.Path = newImp imp.Path = newImp
imp.pathProjectReplaced = true
c.Imports[i] = imp c.Imports[i] = imp
} }
} }
@ -355,12 +356,13 @@ func (v HugoVersion) IsValid() bool {
} }
type Import struct { type Import struct {
Path string // Module path Path string // Module path
IgnoreConfig bool // Ignore any config in config.toml (will still folow imports). pathProjectReplaced bool // Set when Path is replaced in project config.
IgnoreImports bool // Do not follow any configured imports. IgnoreConfig bool // Ignore any config in config.toml (will still folow imports).
NoVendor bool // Never vendor this import (only allowed in main project). IgnoreImports bool // Do not follow any configured imports.
Disable bool // Turn off this module. NoVendor bool // Never vendor this import (only allowed in main project).
Mounts []Mount Disable bool // Turn off this module.
Mounts []Mount
} }
type Mount struct { type Mount struct {