ref: 2564f46a685704c459bec5d0100f5111c138c9b4
parent: 683888ebc89049d69042cdc5dc224884cd7903df
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Jun 11 16:40:56 EDT 2016
Fix Emojfy for certain text patterns Fixes #2198
--- a/helpers/emoji.go
+++ b/helpers/emoji.go
@@ -51,14 +51,11 @@
}
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
--- a/helpers/emoji_test.go
+++ b/helpers/emoji_test.go
@@ -44,7 +44,15 @@
{" 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) {