From 8c1100e3696952fda760acf5c8037cc7bcc1b236 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Wed, 17 Dec 2025 06:58:27 +0000 Subject: [PATCH] appview: render emoji shortcode sequences using goldmark-emoji Change-Id: rolknspmtkuvywvplrloyoplzunpzyvz presently only renders in markdown and description contexts, we could potentially apply this to commit message contexts too. fixes https://tangled.org/tangled.org/core/issues/334 . Signed-off-by: oppiliappan --- appview/pages/funcmap.go | 7 ++++++- appview/pages/markup/markdown.go | 2 ++ go.mod | 1 + go.sum | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/appview/pages/funcmap.go b/appview/pages/funcmap.go index ec123657..14fdb009 100644 --- a/appview/pages/funcmap.go +++ b/appview/pages/funcmap.go @@ -25,6 +25,7 @@ import ( "github.com/dustin/go-humanize" "github.com/go-enry/go-enry/v2" "github.com/yuin/goldmark" + emoji "github.com/yuin/goldmark-emoji" "tangled.org/core/appview/filetree" "tangled.org/core/appview/models" "tangled.org/core/appview/pages/markup" @@ -261,7 +262,11 @@ func (p *Pages) funcMap() template.FuncMap { }, "description": func(text string) template.HTML { p.rctx.RendererType = markup.RendererTypeDefault - htmlString := p.rctx.RenderMarkdownWith(text, goldmark.New()) + htmlString := p.rctx.RenderMarkdownWith(text, goldmark.New( + goldmark.WithExtensions( + emoji.Emoji, + ), + )) sanitized := p.rctx.SanitizeDescription(htmlString) return template.HTML(sanitized) }, diff --git a/appview/pages/markup/markdown.go b/appview/pages/markup/markdown.go index 66e050b2..f17e14ea 100644 --- a/appview/pages/markup/markdown.go +++ b/appview/pages/markup/markdown.go @@ -13,6 +13,7 @@ import ( chromahtml "github.com/alecthomas/chroma/v2/formatters/html" "github.com/alecthomas/chroma/v2/styles" "github.com/yuin/goldmark" + "github.com/yuin/goldmark-emoji" highlighting "github.com/yuin/goldmark-highlighting/v2" "github.com/yuin/goldmark/ast" "github.com/yuin/goldmark/extension" @@ -66,6 +67,7 @@ func NewMarkdown() goldmark.Markdown { ), callout.CalloutExtention, textension.AtExt, + emoji.Emoji, ), goldmark.WithParserOptions( parser.WithAutoHeadingID(), diff --git a/go.mod b/go.mod index 46d83078..da839cb6 100644 --- a/go.mod +++ b/go.mod @@ -190,6 +190,7 @@ require ( github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + github.com/yuin/goldmark-emoji v1.0.6 // indirect gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect go.etcd.io/bbolt v1.4.0 // indirect diff --git a/go.sum b/go.sum index fdb6ccc0..993532bb 100644 --- a/go.sum +++ b/go.sum @@ -505,6 +505,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yuin/goldmark v1.4.15/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA= github.com/yuin/goldmark v1.7.13/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark-emoji v1.0.6 h1:QWfF2FYaXwL74tfGOW5izeiZepUDroDJfWubQI9HTHs= +github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJpI31LTKmWuA= github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc h1:+IAOyRda+RLrxa1WC7umKOZRsGq4QrFFMYApOeHzQwQ= github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc/go.mod h1:ovIvrum6DQJA4QsJSovrkC4saKHQVs7TvcaeO8AIl5I= gitlab.com/staticnoise/goldmark-callout v0.0.0-20240609120641-6366b799e4ab h1:gK9tS6QJw5F0SIhYJnGG2P83kuabOdmWBbSmZhJkz2A= -- 2.43.0