diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-16 13:30:53 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-16 13:30:53 +0100 |
commit | 77c7059ff832870c3920e87a87969b815e429a8a (patch) | |
tree | 7d4222c73018c99152c2d590be2db5f1f14537ca /markup/goldmark/integration_test.go | |
parent | f4c90bd6ba6e5bd6ef6671120cc9ef7f660ddb0b (diff) |
markup/goldmark: Add a render hook benchmark
Updates #9504
Diffstat (limited to 'markup/goldmark/integration_test.go')
-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() + } +} |