mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
hugolib: Do not create paginator pages for the other output formats
This is a recent regression in Hugo, where we have started to produce `/page/30/index.json` when the main output format (usually `HTML`) is set up with pagination. For JSON this is potentially lot of superflous work and hurts performance. This commit reinstates the earlier behaviour: We only create paginators if in use in the main output format. And add a test for it to prevent this from happening again. Fixes #4890
This commit is contained in:
parent
dea71670c0
commit
43338c3a99
2 changed files with 15 additions and 2 deletions
|
@ -47,7 +47,7 @@ baseURL = "http://example.com/blog"
|
||||||
paginate = 1
|
paginate = 1
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
|
|
||||||
disableKinds = ["page", "section", "taxonomy", "taxonomyTerm", "RSS", "sitemap", "robotsTXT", "404"]
|
disableKinds = ["section", "taxonomy", "taxonomyTerm", "RSS", "sitemap", "robotsTXT", "404"]
|
||||||
|
|
||||||
[Taxonomies]
|
[Taxonomies]
|
||||||
tag = "tags"
|
tag = "tags"
|
||||||
|
@ -55,6 +55,7 @@ category = "categories"
|
||||||
|
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
|
|
||||||
|
|
||||||
[languages]
|
[languages]
|
||||||
|
|
||||||
[languages.en]
|
[languages.en]
|
||||||
|
@ -125,8 +126,10 @@ List HTML|{{.Title }}|
|
||||||
Partial Hugo 1: {{ partial "GoHugo.html" . }}
|
Partial Hugo 1: {{ partial "GoHugo.html" . }}
|
||||||
Partial Hugo 2: {{ partial "GoHugo" . -}}
|
Partial Hugo 2: {{ partial "GoHugo" . -}}
|
||||||
Content: {{ .Content }}
|
Content: {{ .Content }}
|
||||||
|
Len Pages: {{ .Kind }} {{ len .Site.RegularPages }} Page Number: {{ .Paginator.PageNumber }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
`,
|
`,
|
||||||
|
"layouts/_default/single.html", `{{ define "main" }}{{ .Content }}{{ end }}`,
|
||||||
)
|
)
|
||||||
require.Len(t, h.Sites, 2)
|
require.Len(t, h.Sites, 2)
|
||||||
|
|
||||||
|
@ -135,6 +138,11 @@ Content: {{ .Content }}
|
||||||
writeSource(t, fs, "content/_index.md", fmt.Sprintf(pageTemplate, "JSON Home", outputsStr))
|
writeSource(t, fs, "content/_index.md", fmt.Sprintf(pageTemplate, "JSON Home", outputsStr))
|
||||||
writeSource(t, fs, "content/_index.nn.md", fmt.Sprintf(pageTemplate, "JSON Nynorsk Heim", outputsStr))
|
writeSource(t, fs, "content/_index.nn.md", fmt.Sprintf(pageTemplate, "JSON Nynorsk Heim", outputsStr))
|
||||||
|
|
||||||
|
for i := 1; i <= 10; i++ {
|
||||||
|
writeSource(t, fs, fmt.Sprintf("content/p%d.md", i), fmt.Sprintf(pageTemplate, fmt.Sprintf("Page %d", i), outputsStr))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
err := h.Build(BuildCfg{})
|
err := h.Build(BuildCfg{})
|
||||||
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -175,7 +183,11 @@ Content: {{ .Content }}
|
||||||
"en: Elbow",
|
"en: Elbow",
|
||||||
"ShortHTML",
|
"ShortHTML",
|
||||||
"OtherShort: <h1>Hi!</h1>",
|
"OtherShort: <h1>Hi!</h1>",
|
||||||
|
"Len Pages: home 10",
|
||||||
)
|
)
|
||||||
|
th.assertFileContent("public/page/2/index.html", "Page Number: 2")
|
||||||
|
th.assertFileNotExist("public/page/2/index.json")
|
||||||
|
|
||||||
th.assertFileContent("public/nn/index.html",
|
th.assertFileContent("public/nn/index.html",
|
||||||
"List HTML|JSON Nynorsk Heim|",
|
"List HTML|JSON Nynorsk Heim|",
|
||||||
"nn: Olboge")
|
"nn: Olboge")
|
||||||
|
|
|
@ -168,7 +168,8 @@ func pageRenderer(s *Site, pages <-chan *Page, results chan<- error, wg *sync.Wa
|
||||||
results <- err
|
results <- err
|
||||||
}
|
}
|
||||||
|
|
||||||
if pageOutput.IsNode() {
|
// Only render paginators for the main output format
|
||||||
|
if i == 0 && pageOutput.IsNode() {
|
||||||
if err := s.renderPaginator(pageOutput); err != nil {
|
if err := s.renderPaginator(pageOutput); err != nil {
|
||||||
results <- err
|
results <- err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue