hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 77c7059ff832870c3920e87a87969b815e429a8a
parent f4c90bd6ba6e5bd6ef6671120cc9ef7f660ddb0b
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Wed, 16 Feb 2022 13:30:53 +0100

markup/goldmark: Add a render hook benchmark

Updates #9504

Diffstat:
Mmarkup/goldmark/integration_test.go | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+), 0 deletions(-)
diff --git 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()
+	}
+}