diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-06-11 20:40:56 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-06-11 20:40:56 +0200 |
commit | 2564f46a685704c459bec5d0100f5111c138c9b4 (patch) | |
tree | 20782477361cc3710a5136e60cd8cd1000c9f59e /helpers | |
parent | 683888ebc89049d69042cdc5dc224884cd7903df (diff) |
Fix Emojfy for certain text patterns
Fixes #2198
Diffstat (limited to 'helpers')
-rw-r--r-- | helpers/emoji.go | 9 | ||||
-rw-r--r-- | helpers/emoji_test.go | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/helpers/emoji.go b/helpers/emoji.go index 3b0b1605f..725505455 100644 --- a/helpers/emoji.go +++ b/helpers/emoji.go @@ -51,14 +51,11 @@ func Emojify(source []byte) []byte { } endEmoji := bytes.Index(source[j+1:upper], emojiDelim) - - if endEmoji < 0 { - break - } - nextWordDelim := bytes.Index(source[j:upper], emojiWordDelim) - if endEmoji == 0 || (nextWordDelim != -1 && nextWordDelim < endEmoji) { + if endEmoji < 0 { + start += upper + 1 + } else if endEmoji == 0 || (nextWordDelim != -1 && nextWordDelim < endEmoji) { start += endEmoji + 1 } else { endKey := endEmoji + j + 2 diff --git a/helpers/emoji_test.go b/helpers/emoji_test.go index 98005511d..c4e6dcf89 100644 --- a/helpers/emoji_test.go +++ b/helpers/emoji_test.go @@ -44,7 +44,15 @@ func TestEmojiCustom(t *testing.T) { {" The motto: no smiles! ", []byte(" The motto: no smiles! ")}, {":hugo_is_the_best_static_gen:", []byte(":hugo_is_the_best_static_gen:")}, {"은행 :smile: 은행", []byte("은행 😄 은행")}, + // #2198 + {"See: A :beer:!", []byte("See: A 🍺!")}, + {`Aaaaaaaaaa: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa. + +:beer:`, []byte(`Aaaaaaaaaa: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa. + +🍺`)}, } { + result := Emojify([]byte(this.input)) if !reflect.DeepEqual(result, this.expect) { |