From a4deaeff0cfd70abfbefa6d40c0b86839a216f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 5 Apr 2018 10:57:13 +0200 Subject: [PATCH] Fix some livereload content regressions Introduced in Hugo 0.38. Fixes #4566 --- hugolib/hugo_sites.go | 11 ++++++++--- hugolib/page.go | 2 +- hugolib/site.go | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go index f0eb21dc1..cac59e4ca 100644 --- a/hugolib/hugo_sites.go +++ b/hugolib/hugo_sites.go @@ -347,8 +347,8 @@ func (cfg *BuildCfg) shouldRender(p *Page) bool { return true } - if cfg.whatChanged != nil && p.File != nil && cfg.whatChanged.files[p.File.Filename()] { - return true + if cfg.whatChanged != nil && p.File != nil { + return cfg.whatChanged.files[p.File.Filename()] } return false @@ -708,10 +708,15 @@ func (m *contentChangeMap) resolveAndRemove(filename string) (string, string, bu dir += helpers.FilePathSeparator } - fileTp, _ := classifyBundledFile(name) + fileTp, isContent := classifyBundledFile(name) // This may be a member of a bundle. Start with branch bundles, the most specific. if fileTp != bundleLeaf { + if fileTp == bundleNot && isContent { + // Branch bundles does not contain content pages as resources. + return dir, filename, bundleNot + } + for i, b := range m.branches { if b == dir { m.branches = append(m.branches[:i], m.branches[i+1:]...) diff --git a/hugolib/page.go b/hugolib/page.go index 2b3ca37ba..195e68084 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -438,7 +438,7 @@ func (ps Pages) findPagePosByFilnamePrefix(prefix string) int { // will return -1 if not found func (ps Pages) findPagePos(page *Page) int { for i, x := range ps { - if x.Source.Path() == page.Source.Path() { + if x.Source.Filename() == page.Source.Filename() { return i } } diff --git a/hugolib/site.go b/hugolib/site.go index 4027ce075..b0d70bff2 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -1225,7 +1225,8 @@ func (s *Site) absContentDir() string { } func (s *Site) isContentDirEvent(e fsnotify.Event) bool { - return s.getContentDir(e.Name) != "" + relDir, _ := s.PathSpec.RelContentDir(e.Name) + return relDir != e.Name } func (s *Site) getContentDir(path string) string {