diff --git a/hugolib/site.go b/hugolib/site.go index 0dfa3a30e..8740f11d5 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -753,6 +753,9 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) { go pageConverter(pageChan, convertResults, wg2) } + sp := source.NewSourceSpec(s.Cfg, s.Fs) + fs := sp.NewFilesystem("") + for _, ev := range sourceChanged { // The incrementalReadCollator below will also make changes to the site's pages, // so we do this first to prevent races. @@ -775,6 +778,15 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) { } } + // ignore files shouldn't be proceed + if fi, err := s.Fs.Source.Stat(ev.Name); err != nil { + continue + } else { + if ok, err := fs.ShouldRead(ev.Name, fi); err != nil || !ok { + continue + } + } + sourceReallyChanged = append(sourceReallyChanged, ev) } diff --git a/source/filesystem.go b/source/filesystem.go index a13128144..ceea96ea5 100644 --- a/source/filesystem.go +++ b/source/filesystem.go @@ -90,7 +90,7 @@ func (f *Filesystem) captureFiles() { return nil } - b, err := f.shouldRead(filePath, fi) + b, err := f.ShouldRead(filePath, fi) if err != nil { return err } @@ -118,7 +118,7 @@ func (f *Filesystem) captureFiles() { } -func (f *Filesystem) shouldRead(filePath string, fi os.FileInfo) (bool, error) { +func (f *Filesystem) ShouldRead(filePath string, fi os.FileInfo) (bool, error) { if fi.Mode()&os.ModeSymlink == os.ModeSymlink { link, err := filepath.EvalSymlinks(filePath) if err != nil {