type whatChanged struct {
source bool
other bool
+ files map[string]bool
}
// RegisterMediaTypes will register the Site's media types in the mime
dataChanged = []fsnotify.Event{}
i18nChanged = []fsnotify.Event{}
shortcodesChanged = make(map[string]bool)
+ sourceFilesChanged = make(map[string]bool)
// prevent spamming the log on changes
logger = helpers.NewDistinctFeedbackLogger()
}
sourceReallyChanged = append(sourceReallyChanged, ev)
-
+ sourceFilesChanged[ev.Name] = true
}
for shortcode := range shortcodesChanged {
changed := whatChanged{
source: len(sourceChanged) > 0,
other: len(tmplChanged) > 0 || len(i18nChanged) > 0 || len(dataChanged) > 0,
+ files: sourceFilesChanged,
}
return changed, nil
}
- if err = s.renderPages(config.RecentlyVisited); err != nil {
+ if err = s.renderPages(config.RecentlyVisited, config.whatChanged.files); err != nil {
return
}
}
func (s *Site) readAndProcessContent(filenames ...string) error {
-
ctx := context.Background()
g, ctx := errgroup.WithContext(ctx)
// renderPages renders pages each corresponding to a markdown file.
// TODO(bep np doc
-func (s *Site) renderPages(filter map[string]bool) error {
+func (s *Site) renderPages(filter map[string]bool, files map[string]bool) error {
results := make(chan error)
pages := make(chan *Page)
hasFilter := filter != nil && len(filter) > 0
for _, page := range s.Pages {
- if hasFilter && !filter[page.RelPermalink()] {
+ if hasFilter && !filter[page.RelPermalink()] && !files[page.Source.Filename()] {
continue
}
pages <- page