summaryrefslogtreecommitdiffstats
path: root/markup
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-16 13:30:53 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-16 13:30:53 +0100
commit77c7059ff832870c3920e87a87969b815e429a8a (patch)
tree7d4222c73018c99152c2d590be2db5f1f14537ca /markup
parentf4c90bd6ba6e5bd6ef6671120cc9ef7f660ddb0b (diff)
markup/goldmark: Add a render hook benchmark
Updates #9504
Diffstat (limited to 'markup')
-rw-r--r--markup/goldmark/integration_test.go55
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()
+ }
+}