Fix content dir resolution when main project is a Hugo Module - hugo - [fork] hugo port for 9front
 (HTM) git clone git@git.drkhsh.at/hugo.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 2e70f61fb04cea08ef6598728a57637ae2cc199c
 (DIR) parent 1ed8069a3a592dbbd493778a9637fb13727f4c61
 (HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Tue, 16 Nov 2021 19:54:41 +0100
       
       Fix content dir resolution when main project is a Hugo Module
       
       Fixes #9177
       
       Diffstat:
         M hugofs/fileinfo.go                  |       1 +
         M hugofs/rootmapping_fs.go            |       2 ++
         M hugolib/filesystems/basefs.go       |       5 +++--
       
       3 files changed, 6 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/hugofs/fileinfo.go b/hugofs/fileinfo.go
       @@ -64,6 +64,7 @@ type FileMeta struct {
                IsOrdered  bool
                IsSymlink  bool
                IsRootFile bool
       +        IsProject  bool
                Watch      bool
        
                Classifier files.ContentClass
 (DIR) diff --git a/hugofs/rootmapping_fs.go b/hugofs/rootmapping_fs.go
       @@ -62,6 +62,7 @@ func NewRootMappingFs(fs afero.Fs, rms ...RootMapping) (*RootMappingFs, error) {
                        rm.Meta.BaseDir = rm.ToBasedir
                        rm.Meta.MountRoot = rm.path
                        rm.Meta.Module = rm.Module
       +                rm.Meta.IsProject = rm.IsProject
        
                        meta := rm.Meta.Copy()
        
       @@ -118,6 +119,7 @@ type RootMapping struct {
                To        string    // The source directory or file.
                ToBasedir string    // The base of To. May be empty if an absolute path was provided.
                Module    string    // The module path/ID.
       +        IsProject bool      // Whether this is a mount in the main project.
                Meta      *FileMeta // File metadata (lang etc.)
        
                fi   FileMetaInfo
 (DIR) diff --git a/hugolib/filesystems/basefs.go b/hugolib/filesystems/basefs.go
       @@ -136,7 +136,7 @@ func (b *BaseFs) AbsProjectContentDir(filename string) (string, string, error) {
                isAbs := filepath.IsAbs(filename)
                for _, dir := range b.SourceFilesystems.Content.Dirs {
                        meta := dir.Meta()
       -                if meta.Module != "project" {
       +                if !meta.IsProject {
                                continue
                        }
                        if isAbs {
       @@ -161,7 +161,7 @@ func (b *BaseFs) AbsProjectContentDir(filename string) (string, string, error) {
                        contentDirs := b.SourceFilesystems.Content.Dirs
                        for i := len(contentDirs) - 1; i >= 0; i-- {
                                meta := contentDirs[i].Meta()
       -                        if meta.Module == "project" {
       +                        if meta.IsProject {
                                        return filename, filepath.Join(meta.Filename, filename), nil
                                }
                        }
       @@ -645,6 +645,7 @@ func (b *sourceFilesystemsBuilder) createModFs(
                                To:        filename,
                                ToBasedir: base,
                                Module:    md.Module.Path(),
       +                        IsProject: md.isMainProject,
                                Meta: &hugofs.FileMeta{
                                        Watch:           md.Watch(),
                                        Weight:          mountWeight,