shithub: hugo

Download patch

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) {