Skip to content

Commit

Permalink
Do not render alias paginator pages for non-HTML outputs
Browse files Browse the repository at this point in the history
Update #6797
  • Loading branch information
bep committed Jan 30, 2020
1 parent f45cb31 commit 2d159e9
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 5 deletions.
33 changes: 33 additions & 0 deletions hugolib/paginator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import (
"fmt"
"path/filepath"
"testing"

qt "github.com/frankban/quicktest"
)

func TestPaginator(t *testing.T) {
Expand Down Expand Up @@ -105,3 +107,34 @@ func TestPaginateWithSort(t *testing.T) {
b.Build(BuildCfg{}).AssertFileContent("public/index.html",
filepath.FromSlash("|content/sect/doc1.nn.md|content/sect/doc1.nb.md|content/sect/doc1.fr.md|content/sect/doc1.en.md"))
}

// https://github.com/gohugoio/hugo/issues/6797
func TestPaginateOutputFormat(t *testing.T) {
b := newTestSitesBuilder(t).WithSimpleConfigFile()
b.WithContent("_index.md", `---
title: "Home"
cascade:
outputs:
- JSON
---`)

for i := 0; i < 22; i++ {
b.WithContent(fmt.Sprintf("p%d.md", i+1), fmt.Sprintf(`---
title: "Page"
weight: %d
---`, i+1))
}

b.WithTemplatesAdded("index.json", `JSON: {{ .Paginator.TotalNumberOfElements }}: {{ range .Paginator.Pages }}|{{ .RelPermalink }}{{ end }}:DONE`)
b.Build(BuildCfg{})

b.AssertFileContent("public/index.json",
`JSON: 22
|/p1/index.json|/p2/index.json|
`)

// This looks odd, so are most bugs.
b.Assert(b.CheckExists("public/page/1/index.json/index.html"), qt.Equals, false)
b.Assert(b.CheckExists("public/page/1/index.json"), qt.Equals, false)
b.AssertFileContent("public/page/2/index.json", `JSON: 22: |/p11/index.json|/p12/index.json`)
}
12 changes: 7 additions & 5 deletions hugolib/site_render.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,14 @@ func (s *Site) renderPaginator(p *pageState, templ tpl.Template) error {
panic(fmt.Sprintf("invalid paginator state for %q", p.pathOrTitle()))
}

// Write alias for page 1
d.Addends = fmt.Sprintf("/%s/%d", paginatePath, 1)
targetPaths := page.CreateTargetPaths(d)
if f.IsHTML {
// Write alias for page 1
d.Addends = fmt.Sprintf("/%s/%d", paginatePath, 1)
targetPaths := page.CreateTargetPaths(d)

if err := s.writeDestAlias(targetPaths.TargetFilename, p.Permalink(), f, nil); err != nil {
return err
if err := s.writeDestAlias(targetPaths.TargetFilename, p.Permalink(), f, nil); err != nil {
return err
}
}

// Render pages for the rest
Expand Down

0 comments on commit 2d159e9

Please sign in to comment.