From 8a58ebb311fd079f65068e7e37725e4d43f17ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 20 Dec 2019 08:11:36 +0100 Subject: hugolib: Improve error and reload handling of hook templates in server mode Fixes #6635 --- hugolib/site.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'hugolib/site.go') 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 -- cgit v1.2.3