mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
hugolib: Adjust site benchmarks
This commit is contained in:
parent
94cfdf6bef
commit
4ed6ebef4c
1 changed files with 74 additions and 76 deletions
|
@ -15,7 +15,7 @@ package hugolib
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"math/rand"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -121,63 +121,6 @@ Some content.
|
||||||
s.AssertFileContent("public/tags/ta3/index.html", "|ta3|")
|
s.AssertFileContent("public/tags/ta3/index.html", "|ta3|")
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{"Markdown", func(b testing.TB) *sitesBuilder {
|
|
||||||
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
|
||||||
title = "What is Markdown"
|
|
||||||
baseURL = "https://example.com"
|
|
||||||
|
|
||||||
`)
|
|
||||||
|
|
||||||
data, err := ioutil.ReadFile(filepath.FromSlash("testdata/what-is-markdown.md"))
|
|
||||||
sb.Assert(err, qt.IsNil)
|
|
||||||
datastr := string(data)
|
|
||||||
getContent := func(i int) string {
|
|
||||||
return fmt.Sprintf(`---
|
|
||||||
title: "Page %d"
|
|
||||||
---
|
|
||||||
|
|
||||||
`, i) + datastr
|
|
||||||
|
|
||||||
}
|
|
||||||
for i := 1; i <= 100; i++ {
|
|
||||||
sb.WithContent(fmt.Sprintf("content/page%d.md", i), getContent(i))
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb
|
|
||||||
},
|
|
||||||
func(s *sitesBuilder) {
|
|
||||||
s.Assert(s.CheckExists("public/page8/index.html"), qt.Equals, true)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{"Markdown with custom link handler", func(b testing.TB) *sitesBuilder {
|
|
||||||
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
|
||||||
title = "What is Markdown"
|
|
||||||
baseURL = "https://example.com"
|
|
||||||
|
|
||||||
`)
|
|
||||||
|
|
||||||
sb.WithTemplatesAdded("_default/_markup/render-link.html", `<a href="{{ .Destination | safeURL }}#custom">CUSTOM LINK</a>`)
|
|
||||||
data, err := ioutil.ReadFile(filepath.FromSlash("testdata/what-is-markdown.md"))
|
|
||||||
sb.Assert(err, qt.IsNil)
|
|
||||||
datastr := string(data)
|
|
||||||
getContent := func(i int) string {
|
|
||||||
return fmt.Sprintf(`---
|
|
||||||
title: "Page %d"
|
|
||||||
---
|
|
||||||
|
|
||||||
`, i) + datastr
|
|
||||||
|
|
||||||
}
|
|
||||||
for i := 1; i <= 100; i++ {
|
|
||||||
sb.WithContent(fmt.Sprintf("content/page%d.md", i), getContent(i))
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb
|
|
||||||
},
|
|
||||||
func(s *sitesBuilder) {
|
|
||||||
s.Assert(s.CheckExists("public/page8/index.html"), qt.Equals, true)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{"Canonify URLs", func(b testing.TB) *sitesBuilder {
|
{"Canonify URLs", func(b testing.TB) *sitesBuilder {
|
||||||
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
||||||
title = "Canon"
|
title = "Canon"
|
||||||
|
@ -195,25 +138,7 @@ canonifyURLs = true
|
||||||
s.AssertFileContent("public/page8/index.html", "https://example.com/about/")
|
s.AssertFileContent("public/page8/index.html", "https://example.com/about/")
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{"Code Fences", func(b testing.TB) *sitesBuilder {
|
|
||||||
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
|
||||||
title = "Code"
|
|
||||||
baseURL = "https://example.com"
|
|
||||||
pygmentsCodeFences = true
|
|
||||||
|
|
||||||
`)
|
|
||||||
markdown := "\n```bash\n" + `echo "Hugo Rocks!"` + "\n```\n\n"
|
|
||||||
|
|
||||||
for i := 1; i <= 100; i++ {
|
|
||||||
sb.WithContent(fmt.Sprintf("content/page%d.md", i), pageContentForMarkdown(i, markdown))
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb
|
|
||||||
},
|
|
||||||
func(s *sitesBuilder) {
|
|
||||||
s.AssertFileContent("public/page8/index.html", `<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">echo <span style="color:#e6db74">"Hugo Rocks!"</span>`)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{"Deep content tree", func(b testing.TB) *sitesBuilder {
|
{"Deep content tree", func(b testing.TB) *sitesBuilder {
|
||||||
|
|
||||||
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
||||||
|
@ -344,6 +269,79 @@ contentDir="content/sv"
|
||||||
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{"Page collections", func(b testing.TB) *sitesBuilder {
|
||||||
|
|
||||||
|
pageTemplateTemplate := `
|
||||||
|
{{ if .IsNode }}
|
||||||
|
{{ len .Paginator.Pages }}
|
||||||
|
{{ end }}
|
||||||
|
{{ len .Sections }}
|
||||||
|
{{ len .Pages }}
|
||||||
|
{{ len .RegularPages }}
|
||||||
|
{{ len site.RegularPages }}
|
||||||
|
{{ len site.Pages }}
|
||||||
|
|
||||||
|
`
|
||||||
|
|
||||||
|
sb := newTestSitesBuilder(b).WithConfigFile("toml", `
|
||||||
|
baseURL = "https://example.com"
|
||||||
|
|
||||||
|
[languages]
|
||||||
|
[languages.en]
|
||||||
|
weight=1
|
||||||
|
contentDir="content/en"
|
||||||
|
[languages.fr]
|
||||||
|
weight=2
|
||||||
|
contentDir="content/fr"
|
||||||
|
[languages.no]
|
||||||
|
weight=3
|
||||||
|
contentDir="content/no"
|
||||||
|
[languages.sv]
|
||||||
|
weight=4
|
||||||
|
contentDir="content/sv"
|
||||||
|
|
||||||
|
`)
|
||||||
|
|
||||||
|
sb.WithTemplatesAdded("index.html", pageTemplateTemplate)
|
||||||
|
sb.WithTemplatesAdded("_default/single.html", pageTemplateTemplate)
|
||||||
|
sb.WithTemplatesAdded("_default/list.html", pageTemplateTemplate)
|
||||||
|
|
||||||
|
createContent := func(dir, name string) {
|
||||||
|
sb.WithContent(filepath.Join("content", dir, name), pageContent(1))
|
||||||
|
}
|
||||||
|
|
||||||
|
createBundledFiles := func(dir string) {
|
||||||
|
sb.WithContent(filepath.Join("content", dir, "data.json"), `{ "hello": "world" }`)
|
||||||
|
for i := 1; i <= 3; i++ {
|
||||||
|
sb.WithContent(filepath.Join("content", dir, fmt.Sprintf("page%d.md", i)), pageContent(1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
r := rand.New(rand.NewSource(99))
|
||||||
|
|
||||||
|
for _, lang := range []string{"en", "fr", "no", "sv"} {
|
||||||
|
for level := 1; level <= r.Intn(5)+1; level++ {
|
||||||
|
sectionDir := path.Join(lang, strings.Repeat("section/", level))
|
||||||
|
createContent(sectionDir, "_index.md")
|
||||||
|
createBundledFiles(sectionDir)
|
||||||
|
for i := 1; i <= r.Intn(20)+1; i++ {
|
||||||
|
leafBundleDir := path.Join(sectionDir, fmt.Sprintf("bundle%d", i))
|
||||||
|
createContent(leafBundleDir, "index.md")
|
||||||
|
createBundledFiles(path.Join(leafBundleDir, "assets1"))
|
||||||
|
createBundledFiles(path.Join(leafBundleDir, "assets1", "assets2"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb
|
||||||
|
},
|
||||||
|
func(s *sitesBuilder) {
|
||||||
|
s.CheckExists("public/blog/mybundle/index.html")
|
||||||
|
s.Assert(len(s.H.Sites), qt.Equals, 4)
|
||||||
|
s.Assert(len(s.H.Sites[0].RegularPages()), qt.Equals, 26)
|
||||||
|
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return benchmarks
|
return benchmarks
|
||||||
|
|
Loading…
Reference in a new issue