shithub: hugo

Download patch

ref: 2342df4d2dcc2f253865e317c1026c5cb673fa54
parent: 828427ef522e8c259eea520e76a1e3655b801b13
author: Bjørn Erik Pedersen <[email protected]>
date: Tue May 30 14:10:48 EDT 2017

hugolib: Add TOML/YAML switch to benchmark

--- a/hugolib/site_benchmark_test.go
+++ b/hugolib/site_benchmark_test.go
@@ -24,6 +24,7 @@
 )
 
 type siteBuildingBenchmarkConfig struct {
+	Frontmatter  string
 	NumPages     int
 	RootSections int
 	Render       bool
@@ -32,22 +33,25 @@
 }
 
 func (s siteBuildingBenchmarkConfig) String() string {
-	return fmt.Sprintf("num_root_sections=%d|num_pages=%d|tags_per_page=%d|shortcodes=%t|render=%t", s.RootSections, s.NumPages, s.TagsPerPage, s.Shortcodes, s.Render)
+	return fmt.Sprintf("frontmatter=%s|num_root_sections=%d|num_pages=%d|tags_per_page=%d|shortcodes=%t|render=%t", s.Frontmatter, s.RootSections, s.NumPages, s.TagsPerPage, s.Shortcodes, s.Render)
 }
 
 func BenchmarkSiteBuilding(b *testing.B) {
 	var conf siteBuildingBenchmarkConfig
-	for _, rootSections := range []int{1, 5} {
-		conf.RootSections = rootSections
-		for _, tagsPerPage := range []int{0, 1, 5, 20} {
-			conf.TagsPerPage = tagsPerPage
-			for _, numPages := range []int{10, 100, 500, 1000, 5000} {
-				conf.NumPages = numPages
-				for _, render := range []bool{false, true} {
-					conf.Render = render
-					for _, shortcodes := range []bool{false, true} {
-						conf.Shortcodes = shortcodes
-						doBenchMarkSiteBuilding(conf, b)
+	for _, frontmatter := range []string{"YAML", "TOML"} {
+		conf.Frontmatter = frontmatter
+		for _, rootSections := range []int{1, 5} {
+			conf.RootSections = rootSections
+			for _, tagsPerPage := range []int{0, 1, 5, 20} {
+				conf.TagsPerPage = tagsPerPage
+				for _, numPages := range []int{10, 100, 500, 1000, 5000} {
+					conf.NumPages = numPages
+					for _, render := range []bool{false, true} {
+						conf.Render = render
+						for _, shortcodes := range []bool{false, true} {
+							conf.Shortcodes = shortcodes
+							doBenchMarkSiteBuilding(conf, b)
+						}
 					}
 				}
 			}
@@ -108,7 +112,7 @@
 
 `
 
-	pageTemplate := `+++
+	pageTemplateTOML := `+++
 title = "%s"
 tags = %s
 +++
@@ -116,6 +120,15 @@
 
 `
 
+	pageTemplateYAML := `---
+title: "%s"
+tags:
+%s
+---
+%s
+
+`
+
 	siteConfig := `
 baseURL = "http://example.com/blog"
 
@@ -129,6 +142,7 @@
 	var (
 		contentPagesContent [3]string
 		tags                = make([]string, cfg.TagsPerPage)
+		pageTemplate        string
 	)
 
 	tagOffset := rand.Intn(10)
@@ -137,9 +151,20 @@
 		tags[i] = fmt.Sprintf("Hugo %d", i+tagOffset)
 	}
 
-	tagsStr := "[]"
-	if cfg.TagsPerPage > 0 {
-		tagsStr = strings.Replace(fmt.Sprintf("%q", tags[0:cfg.TagsPerPage]), " ", ", ", -1)
+	var tagsStr string
+
+	if cfg.Frontmatter == "TOML" {
+		pageTemplate = pageTemplateTOML
+		tagsStr = "[]"
+		if cfg.TagsPerPage > 0 {
+			tagsStr = strings.Replace(fmt.Sprintf("%q", tags[0:cfg.TagsPerPage]), " ", ", ", -1)
+		}
+	} else {
+		// YAML
+		pageTemplate = pageTemplateYAML
+		for _, tag := range tags {
+			tagsStr += "\n- " + tag
+		}
 	}
 
 	if cfg.Shortcodes {