summaryrefslogtreecommitdiffstats
path: root/hugolib/page_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-12-17 21:03:23 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-12-20 20:08:01 +0100
commit9cd54cab20a03475e34ca462bd943069111481ae (patch)
tree826eee0dbe8e7831ead2ace3b788286d1122fddd /hugolib/page_test.go
parenta8853f1c5ace30ae8d256ad374bdb280c95d4228 (diff)
Move the emoji parsing to pageparser
This avoids double parsing the page content when `enableEmoji=true`. This commit also adds some general improvements to the parser, making it in general much faster: ```bash benchmark old ns/op new ns/op delta BenchmarkShortcodeLexer-4 90258 101730 +12.71% BenchmarkParse-4 148940 15037 -89.90% benchmark old allocs new allocs delta BenchmarkShortcodeLexer-4 456 700 +53.51% BenchmarkParse-4 28 33 +17.86% benchmark old bytes new bytes delta BenchmarkShortcodeLexer-4 69875 81014 +15.94% BenchmarkParse-4 8128 8304 +2.17% ``` Running some site benchmarks with Emoji support turned on: ```bash benchmark old ns/op new ns/op delta BenchmarkSiteBuilding/TOML,num_langs=3,num_pages=5000,tags_per_page=5,shortcodes,render-4 924556797 818115620 -11.51% benchmark old allocs new allocs delta BenchmarkSiteBuilding/TOML,num_langs=3,num_pages=5000,tags_per_page=5,shortcodes,render-4 4112613 4133787 +0.51% benchmark old bytes new bytes delta BenchmarkSiteBuilding/TOML,num_langs=3,num_pages=5000,tags_per_page=5,shortcodes,render-4 426982864 424363832 -0.61% ``` Fixes #5534
Diffstat (limited to 'hugolib/page_test.go')
-rw-r--r--hugolib/page_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/hugolib/page_test.go b/hugolib/page_test.go
index b8273ce28..9723b1426 100644
--- a/hugolib/page_test.go
+++ b/hugolib/page_test.go
@@ -1497,6 +1497,45 @@ func TestChompBOM(t *testing.T) {
checkPageTitle(t, p, "Simple")
}
+func TestPageWithEmoji(t *testing.T) {
+ for _, enableEmoji := range []bool{true, false} {
+ v := viper.New()
+ v.Set("enableEmoji", enableEmoji)
+ b := newTestSitesBuilder(t)
+ b.WithViper(v)
+
+ b.WithSimpleConfigFile()
+
+ b.WithContent("page-emoji.md", `---
+title: "Hugo Smile"
+---
+This is a :smile:.
+<!--more-->
+
+Another :smile: This is :not: an emoji.
+
+`)
+
+ b.CreateSites().Build(BuildCfg{})
+
+ if enableEmoji {
+ b.AssertFileContent("public/page-emoji/index.html",
+ "This is a 😄",
+ "Another 😄",
+ "This is :not: an emoji",
+ )
+ } else {
+ b.AssertFileContent("public/page-emoji/index.html",
+ "This is a :smile:",
+ "Another :smile:",
+ "This is :not: an emoji",
+ )
+ }
+
+ }
+
+}
+
// https://github.com/gohugoio/hugo/issues/5381
func TestPageManualSummary(t *testing.T) {
b := newTestSitesBuilder(t)