mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-08 23:40:40 +02:00
Return error on wrong use of the Paginator
`Paginate`now returns error when 1) `.Paginate` is called after `.Paginator` 2) `.Paginate` is repeatedly called with different arguments This should help remove some confusion. This commit also introduces DistinctErrorLogger, to prevent spamming the log for duplicate rendering errors from the pagers. Fixes #993
This commit is contained in:
@@ -48,6 +48,8 @@ var _ = transform.AbsURL
|
||||
|
||||
var DefaultTimer *nitro.B
|
||||
|
||||
var distinctErrorLogger = helpers.NewDistinctErrorLogger()
|
||||
|
||||
// Site contains all the information relevant for constructing a static
|
||||
// site. The basic flow of information is as follows:
|
||||
//
|
||||
@@ -1086,7 +1088,7 @@ func taxonomyRenderer(s *Site, taxes <-chan taxRenderInfo, results chan<- error,
|
||||
}
|
||||
pageNumber := i + 1
|
||||
htmlBase := fmt.Sprintf("/%s/%s/%d", base, paginatePath, pageNumber)
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("taxononomy_%s_%d", t.singular, pageNumber), htmlBase, taxonomyPagerNode, layouts...); err != nil {
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("taxononomy %s", t.singular), htmlBase, taxonomyPagerNode, layouts...); err != nil {
|
||||
results <- err
|
||||
continue
|
||||
}
|
||||
@@ -1155,7 +1157,7 @@ func (s *Site) RenderSectionLists() error {
|
||||
|
||||
n := s.newSectionListNode(section, data)
|
||||
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("section%s_%d", section, 1), fmt.Sprintf("/%s", section), n, s.appendThemeTemplates(layouts)...); err != nil {
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("section %s", section), fmt.Sprintf("/%s", section), n, s.appendThemeTemplates(layouts)...); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -1181,7 +1183,7 @@ func (s *Site) RenderSectionLists() error {
|
||||
}
|
||||
pageNumber := i + 1
|
||||
htmlBase := fmt.Sprintf("/%s/%s/%d", section, paginatePath, pageNumber)
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("section_%s_%d", section, pageNumber), filepath.FromSlash(htmlBase), sectionPagerNode, layouts...); err != nil {
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("section %s", section), filepath.FromSlash(htmlBase), sectionPagerNode, layouts...); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -1238,7 +1240,7 @@ func (s *Site) RenderHomePage() error {
|
||||
}
|
||||
pageNumber := i + 1
|
||||
htmlBase := fmt.Sprintf("/%s/%d", paginatePath, pageNumber)
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("homepage_%d", pageNumber), filepath.FromSlash(htmlBase), homePagerNode, layouts...); err != nil {
|
||||
if err := s.renderAndWritePage(fmt.Sprintf("homepage"), filepath.FromSlash(htmlBase), homePagerNode, layouts...); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -1424,7 +1426,7 @@ func (s *Site) render(name string, d interface{}, renderBuffer *bytes.Buffer, la
|
||||
|
||||
if err := s.renderThing(d, layout, renderBuffer); err != nil {
|
||||
// Behavior here should be dependent on if running in server or watch mode.
|
||||
jww.ERROR.Println(fmt.Errorf("Error while rendering %s: %v", name, err))
|
||||
distinctErrorLogger.Printf("Error while rendering %s: %v", name, err)
|
||||
if !s.Running() {
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
Reference in New Issue
Block a user