diff options
-rw-r--r-- | markup/goldmark/integration_test.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/markup/goldmark/integration_test.go b/markup/goldmark/integration_test.go index 387d7be66..fd90a6824 100644 --- a/markup/goldmark/integration_test.go +++ b/markup/goldmark/integration_test.go @@ -14,6 +14,7 @@ package goldmark_test import ( + "fmt" "testing" "github.com/gohugoio/hugo/hugolib" @@ -59,3 +60,57 @@ foo <div class="highlight" id="c"> `) } + +func BenchmarkSiteWithRenderHooks(b *testing.B) { + files := ` +-- config.toml -- +-- layouts/_default/_markup/render-heading.html -- +<h{{ .Level }} id="{{ .Anchor | safeURL }}"> + {{ .Text | safeHTML }} + <a class="anchor" href="#{{ .Anchor | safeURL }}">#</a> +</h{{ .Level }}> +-- layouts/_default/_markup/render-link.html -- +<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}>{{ .Text | safeHTML }}</a> +-- layouts/_default/single.html -- +{{ .Content }} +` + + content := ` + +## Hello1 [Test](https://example.com) + +A. + +## Hello2 [Test](https://example.com) + +B. + +## Hello3 [Test](https://example.com) + +C. + +## Hello3 [Test](https://example.com) + +D. +` + + for i := 1; i < 100; i++ { + files += fmt.Sprintf("\n-- content/posts/p%d.md --\n"+content, i+1) + } + + cfg := hugolib.IntegrationTestConfig{ + T: b, + TxtarString: files, + } + builders := make([]*hugolib.IntegrationTestBuilder, b.N) + + for i := range builders { + builders[i] = hugolib.NewIntegrationTestBuilder(cfg) + } + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + builders[i].Build() + } +} |