diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-12-20 08:11:36 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-12-20 11:38:44 +0100 |
commit | 8a58ebb311fd079f65068e7e37725e4d43f17ab5 (patch) | |
tree | b214284b27d2a2cf35ba0689bea688bdd0597e5f /hugolib/site.go | |
parent | 0453683816cfbc94e1e19c644f5f84213bb8cf35 (diff) |
hugolib: Improve error and reload handling of hook templates in server mode
Fixes #6635
Diffstat (limited to 'hugolib/site.go')
-rw-r--r-- | hugolib/site.go | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/hugolib/site.go b/hugolib/site.go index 866ff5624..eb232c629 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -909,6 +909,7 @@ func (s *Site) processPartial(config *BuildCfg, init func(config *BuildCfg) erro contentFilesChanged []string tmplChanged bool + tmplAdded bool dataChanged bool i18nChanged bool @@ -934,8 +935,16 @@ func (s *Site) processPartial(config *BuildCfg, init func(config *BuildCfg) erro logger.Println("Source changed", ev) sourceChanged = append(sourceChanged, ev) case files.ComponentFolderLayouts: - logger.Println("Template changed", ev) tmplChanged = true + if _, found := s.Tmpl.Lookup(id.Path); !found { + tmplAdded = true + } + if tmplAdded { + logger.Println("Template added", ev) + } else { + logger.Println("Template changed", ev) + } + case files.ComponentFolderData: logger.Println("Data changed", ev) dataChanged = true @@ -1021,7 +1030,11 @@ func (s *Site) processPartial(config *BuildCfg, init func(config *BuildCfg) erro sourceFilesChanged[ev.Name] = true } - h.resetPageStateFromEvents(changeIdentities) + if config.ErrRecovery || tmplAdded { + h.resetPageState() + } else { + h.resetPageStateFromEvents(changeIdentities) + } if len(sourceReallyChanged) > 0 || len(contentFilesChanged) > 0 { var filenamesChanged []string |