summaryrefslogtreecommitdiffstats
path: root/modules/markup/html.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-06-29 16:28:38 +0200
committerGitHub <noreply@github.com>2021-06-29 16:28:38 +0200
commit65548359cc5c78455b638c5be6fdec3e321e717a (patch)
tree0236a4aaa8e0c2a781e0383a39a667cf03528a1e /modules/markup/html.go
parentaac663e0da0af644ae1011d268d027160265dce3 (diff)
downloadgitea-65548359cc5c78455b638c5be6fdec3e321e717a.tar.gz
gitea-65548359cc5c78455b638c5be6fdec3e321e717a.zip
Add custom emoji support (#16004)
Diffstat (limited to 'modules/markup/html.go')
-rw-r--r--modules/markup/html.go23
1 files changed, 8 insertions, 15 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go
index 0cc0e23b5c..1e55629ab5 100644
--- a/modules/markup/html.go
+++ b/modules/markup/html.go
@@ -6,7 +6,6 @@ package markup
import (
"bytes"
- "fmt"
"io"
"io/ioutil"
"net/url"
@@ -66,7 +65,7 @@ var (
blackfridayExtRegex = regexp.MustCompile(`[^:]*:user-content-`)
// EmojiShortCodeRegex find emoji by alias like :smile:
- EmojiShortCodeRegex = regexp.MustCompile(`\:[\w\+\-]+\:{1}`)
+ EmojiShortCodeRegex = regexp.MustCompile(`:[\w\+\-]+:`)
)
// CSS class for action keywords (e.g. "closes: #1")
@@ -460,17 +459,14 @@ func createEmoji(content, class, name string) *html.Node {
return span
}
-func createCustomEmoji(alias, class string) *html.Node {
-
+func createCustomEmoji(alias string) *html.Node {
span := &html.Node{
Type: html.ElementNode,
Data: atom.Span.String(),
Attr: []html.Attribute{},
}
- if class != "" {
- span.Attr = append(span.Attr, html.Attribute{Key: "class", Val: class})
- span.Attr = append(span.Attr, html.Attribute{Key: "aria-label", Val: alias})
- }
+ span.Attr = append(span.Attr, html.Attribute{Key: "class", Val: "emoji"})
+ span.Attr = append(span.Attr, html.Attribute{Key: "aria-label", Val: alias})
img := &html.Node{
Type: html.ElementNode,
@@ -478,10 +474,8 @@ func createCustomEmoji(alias, class string) *html.Node {
Data: "img",
Attr: []html.Attribute{},
}
- if class != "" {
- img.Attr = append(img.Attr, html.Attribute{Key: "alt", Val: fmt.Sprintf(`:%s:`, alias)})
- img.Attr = append(img.Attr, html.Attribute{Key: "src", Val: fmt.Sprintf(`%s/assets/img/emoji/%s.png`, setting.StaticURLPrefix, alias)})
- }
+ img.Attr = append(img.Attr, html.Attribute{Key: "alt", Val: ":" + alias + ":"})
+ img.Attr = append(img.Attr, html.Attribute{Key: "src", Val: setting.StaticURLPrefix + "/assets/img/emoji/" + alias + ".png"})
span.AppendChild(img)
return span
@@ -948,9 +942,8 @@ func emojiShortCodeProcessor(ctx *RenderContext, node *html.Node) {
converted := emoji.FromAlias(alias)
if converted == nil {
// check if this is a custom reaction
- s := strings.Join(setting.UI.Reactions, " ") + "gitea"
- if strings.Contains(s, alias) {
- replaceContent(node, m[0], m[1], createCustomEmoji(alias, "emoji"))
+ if _, exist := setting.UI.CustomEmojisMap[alias]; exist {
+ replaceContent(node, m[0], m[1], createCustomEmoji(alias))
node = node.NextSibling.NextSibling
start = 0
continue