Transforms native skin toned emojis to valid names

This commit is contained in:
Joffrey JAFFEUX 2017-06-14 15:35:37 +02:00
parent baa332a83e
commit ab6086bce9
2 changed files with 15 additions and 2 deletions

View File

@ -116,12 +116,21 @@ class Emoji
def self.unicode_replacements def self.unicode_replacements
return @unicode_replacements if @unicode_replacements return @unicode_replacements if @unicode_replacements
@unicode_replacements = {} @unicode_replacements = {}
db['emojis'].each do |e| db['emojis'].each do |e|
next if e['name'] == 'tm' next if e['name'] == 'tm'
code = replacement_code(e['code']) code = replacement_code(e['code'])
@unicode_replacements[code] = e['name'] if code next unless code
@unicode_replacements[code] = e['name']
if Emoji.tonable_emojis.include?(e['name'])
FITZPATRICK_SCALE.each_with_index do |scale, index|
toned_code = (code.codepoints.insert(1, scale.to_i(16))).pack("U*")
@unicode_replacements[toned_code] = "#{e['name']}:t#{index+2}"
end
end
end end
@unicode_replacements["\u{2639}"] = 'frowning' @unicode_replacements["\u{2639}"] = 'frowning'

View File

@ -453,6 +453,10 @@ HTML
SiteSetting.enable_emoji = false SiteSetting.enable_emoji = false
expect(PrettyText.cook("💣")).not_to match(/\:bomb\:/) expect(PrettyText.cook("💣")).not_to match(/\:bomb\:/)
end end
it "replaces skin toned emoji" do
expect(PrettyText.cook("hello 👱🏿‍♀️")).to eq("<p>hello <img src=\"/images/emoji/emoji_one/blonde_woman/6.png?v=5\" title=\":blonde_woman:t6:\" class=\"emoji\" alt=\":blonde_woman:t6:\"></p>")
end
end end
describe "tag and category links" do describe "tag and category links" do