Custom emoji (#4988)
* Custom emoji - In OStatus: `<link rel="emoji" name="coolcat" href="http://..." />` - In ActivityPub: `{ type: "Emoji", name: ":coolcat:", href: "http://..." }` - In REST API: Status object includes `emojis` array (`shortcode`, `url`) - Domain blocks with reject media stop emojis - Emoji file up to 50KB - Web UI handles custom emojis - Static pages render custom emojis as `<img />` tags Side effects: - Undo #4500 optimization, as I needed to modify it to restore shortcode handling in emojify() - Formatter#plaintext should now make sure stripped out line-breaks and paragraphs are replaced with newlines * Fix emoji at the start not being converted
This commit is contained in:
parent
c155d843f4
commit
81cec35dbf
20 changed files with 382 additions and 31 deletions
|
@ -97,11 +97,23 @@ RSpec.describe OStatus::AtomSerializer do
|
|||
|
||||
mentioned = element.nodes.find do |node|
|
||||
node.name == 'link' &&
|
||||
node[:rel] == 'mentioned' &&
|
||||
node['ostatus:object-type'] == TagManager::TYPES[:person]
|
||||
node[:rel] == 'mentioned' &&
|
||||
node['ostatus:object-type'] == TagManager::TYPES[:person]
|
||||
end
|
||||
|
||||
expect(mentioned[:href]).to eq 'https://cb6e6126.ngrok.io/users/username'
|
||||
end
|
||||
|
||||
it 'appends link elements for emojis' do
|
||||
Fabricate(:custom_emoji)
|
||||
|
||||
status = Fabricate(:status, text: ':coolcat:')
|
||||
element = serialize(status)
|
||||
emoji = element.nodes.find { |node| node.name == 'link' && node[:rel] == 'emoji' }
|
||||
|
||||
expect(emoji[:name]).to eq 'coolcat'
|
||||
expect(emoji[:href]).to_not be_blank
|
||||
end
|
||||
end
|
||||
|
||||
describe 'render' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue