Merge pull request #3628 from tgxworld/emoji_in_user_stream

FEATURE: Display emojis in user stream.
This commit is contained in:
Régis Hanol 2015-07-25 15:53:54 +02:00
commit d2b59bf7f2
4 changed files with 14 additions and 3 deletions

View File

@ -32,7 +32,7 @@ class UserActionSerializer < ApplicationSerializer
def excerpt
cooked = object.cooked || PrettyText.cook(object.raw)
PrettyText.excerpt(cooked, 300) if cooked
PrettyText.excerpt(cooked, 300, { keep_emojis: true }) if cooked
end
def avatar_template

View File

@ -196,7 +196,7 @@ class UserSerializer < BasicUserSerializer
end
def bio_excerpt
object.user_profile.bio_excerpt(350 ,keep_newlines: true)
object.user_profile.bio_excerpt(350 , { keep_newlines: true, keep_emojis: true })
end
def include_suspend_reason?

View File

@ -13,6 +13,7 @@ class ExcerptParser < Nokogiri::XML::SAX::Document
@text_entities = options[:text_entities] == true
@markdown_images = options[:markdown_images] == true
@keep_newlines = options[:keep_newlines] == true
@keep_emojis = options[:keep_emojis] == true
@start_excerpt = false
end
@ -48,10 +49,15 @@ class ExcerptParser < Nokogiri::XML::SAX::Document
case name
when "img"
attributes = Hash[*attributes.flatten]
if @keep_emojis && attributes["class"] == 'emoji'
return include_tag(name, attributes)
end
# If include_images is set, include the image in markdown
characters("!") if @markdown_images
attributes = Hash[*attributes.flatten]
if attributes["alt"]
characters("[#{attributes["alt"]}]")
elsif attributes["title"]

View File

@ -230,6 +230,11 @@ describe PrettyText do
expect(PrettyText.excerpt("&#39;", 500, text_entities: true)).to eq("'")
end
it "should have an option to preserve emojis" do
emoji_image = "<img src='/images/emoji/emoji_one/heart.png?v=0' title=':heart:' class='emoji' alt='heart'>"
expect(PrettyText.excerpt(emoji_image, 100, { keep_emojis: true })).to match_html(emoji_image)
end
end
describe "strip links" do