summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hugolib/shortcode.go11
-rw-r--r--hugolib/shortcode_test.go27
2 files changed, 38 insertions, 0 deletions
diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go
index 700ac5bd8..5e916aeec 100644
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -18,6 +18,8 @@ import (
"fmt"
"strconv"
+ "github.com/gohugoio/hugo/helpers"
+
"html/template"
"path"
@@ -517,6 +519,15 @@ Loop:
return sc, nil
case currItem.IsText():
sc.inner = append(sc.inner, currItem.ValStr())
+ case currItem.Type == pageparser.TypeEmoji:
+ // TODO(bep) avoid the duplication of these "text cases", to prevent
+ // more of #6504 in the future.
+ val := currItem.ValStr()
+ if emoji := helpers.Emoji(val); emoji != nil {
+ sc.inner = append(sc.inner, string(emoji))
+ } else {
+ sc.inner = append(sc.inner, val)
+ }
case currItem.IsShortcodeName():
sc.name = currItem.ValStr()
diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go
index 01fa61512..eb763b2a0 100644
--- a/hugolib/shortcode_test.go
+++ b/hugolib/shortcode_test.go
@@ -1171,6 +1171,33 @@ title: "Hugo Rocks!"
)
}
+// https://github.com/gohugoio/hugo/issues/6504
+func TestShortcodeEmoji(t *testing.T) {
+ t.Parallel()
+
+ v := viper.New()
+ v.Set("enableEmoji", true)
+
+ builder := newTestSitesBuilder(t).WithViper(v)
+
+ builder.WithContent("page.md", `---
+title: "Hugo Rocks!"
+---
+
+# doc
+
+{{< event >}}10:30-11:00 My :smile: Event {{< /event >}}
+
+
+`).WithTemplatesAdded(
+ "layouts/shortcodes/event.html", `<div>{{ "\u29BE" }} {{ .Inner }} </div>`)
+
+ builder.Build(BuildCfg{})
+ builder.AssertFileContent("public/page/index.html",
+ "⦾ 10:30-11:00 My 😄 Event",
+ )
+}
+
func TestShortcodeTypedParams(t *testing.T) {
t.Parallel()
c := qt.New(t)