ref: b6635e1bafecb0a0f203c9ac9672c99ef1a6fa71
parent: 7cb8107735d8612a26ad95dfdec2141b0e0e6baa
author: Cameron Moore <[email protected]>
date: Mon Aug 29 13:34:48 EDT 2016
helpers: Fix bug in emoji renderer Fixes #2391
--- a/helpers/emoji.go
+++ b/helpers/emoji.go
@@ -34,7 +34,6 @@
// Note that the input byte slice will be modified if needed.
// See http://www.emoji-cheat-sheet.com/
func Emojify(source []byte) []byte {
-
emojiInit.Do(initEmoji)
start := 0
@@ -54,7 +53,7 @@
nextWordDelim := bytes.Index(source[j:upper], emojiWordDelim)
if endEmoji < 0 {
- start += upper + 1
+ start += 1
} else if endEmoji == 0 || (nextWordDelim != -1 && nextWordDelim < endEmoji) {
start += endEmoji + 1
} else {
@@ -76,7 +75,6 @@
}
return source
-
}
func initEmoji() {
--- a/helpers/emoji_test.go
+++ b/helpers/emoji_test.go
@@ -53,12 +53,17 @@
šŗ`)},
{"test :\n```bash\nthis is a test\n```\n\ntest\n\n:cool::blush:::pizza:\\:blush : : blush: :pizza:", []byte("test :\n```bash\nthis is a test\n```\n\ntest\n\nšš:š\\:blush : : blush: š")},
+ {
+ // 2391
+ "[a](http://gohugo.io) :smile: [r](http://gohugo.io/introduction/overview/) :beer:",
+ []byte(`[a](http://gohugo.io) š [r](http://gohugo.io/introduction/overview/) šŗ`),
+ },
} {
result := Emojify([]byte(this.input))
if !reflect.DeepEqual(result, this.expect) {
- t.Errorf("[%d] got '%q' but expected %q", i, result, this.expect)
+ t.Errorf("[%d] got %q but expected %q", i, result, this.expect)
}
}