mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-19 21:21:39 +02:00
@@ -14,13 +14,11 @@
|
||||
package hugolib
|
||||
|
||||
import (
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/bep/gitmap"
|
||||
"github.com/gohugoio/hugo/config"
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
)
|
||||
|
||||
type gitInfo struct {
|
||||
@@ -32,28 +30,20 @@ func (g *gitInfo) forPage(p *Page) (*gitmap.GitInfo, bool) {
|
||||
if g == nil {
|
||||
return nil, false
|
||||
}
|
||||
name := path.Join(g.contentDir, filepath.ToSlash(p.Path()))
|
||||
|
||||
name := strings.TrimPrefix(filepath.ToSlash(p.Filename()), g.contentDir)
|
||||
name = strings.TrimPrefix(name, "/")
|
||||
|
||||
return g.repo.Files[name], true
|
||||
}
|
||||
|
||||
func newGitInfo(cfg config.Provider) (*gitInfo, error) {
|
||||
var (
|
||||
workingDir = cfg.GetString("workingDir")
|
||||
contentDir = cfg.GetString("contentDir")
|
||||
)
|
||||
workingDir := cfg.GetString("workingDir")
|
||||
|
||||
gitRepo, err := gitmap.Map(workingDir, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
repoPath := filepath.FromSlash(gitRepo.TopLevelAbsPath)
|
||||
// The Hugo site may be placed in a sub folder in the Git repo,
|
||||
// one example being the Hugo docs.
|
||||
// We have to find the root folder to the Hugo site below the Git root.
|
||||
contentRoot := strings.TrimPrefix(workingDir, repoPath)
|
||||
contentRoot = strings.TrimPrefix(contentRoot, helpers.FilePathSeparator)
|
||||
contentDir = path.Join(filepath.ToSlash(contentRoot), contentDir)
|
||||
|
||||
return &gitInfo{contentDir: contentDir, repo: gitRepo}, nil
|
||||
return &gitInfo{contentDir: gitRepo.TopLevelAbsPath, repo: gitRepo}, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user