Fix custom emojis not detected when used in content warning (#5049)
parent
846cd4e838
commit
9c8e602163
|
@ -63,6 +63,12 @@ class Formatter
|
||||||
Sanitize.fragment(html, config)
|
Sanitize.fragment(html, config)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def format_spoiler(status)
|
||||||
|
html = encode(status.spoiler_text)
|
||||||
|
html = encode_custom_emojis(html, status.emojis)
|
||||||
|
html.html_safe # rubocop:disable Rails/OutputSafety
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def encode(html)
|
def encode(html)
|
||||||
|
|
|
@ -132,7 +132,7 @@ class Status < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def emojis
|
def emojis
|
||||||
CustomEmoji.from_text(text, account.domain)
|
CustomEmoji.from_text([spoiler_text, text].join(' '), account.domain)
|
||||||
end
|
end
|
||||||
|
|
||||||
after_create :store_uri, if: :local?
|
after_create :store_uri, if: :local?
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
.status__content.p-name.emojify<
|
.status__content.p-name.emojify<
|
||||||
- if status.spoiler_text?
|
- if status.spoiler_text?
|
||||||
%p{ style: 'margin-bottom: 0' }<
|
%p{ style: 'margin-bottom: 0' }<
|
||||||
%span.p-summary> #{status.spoiler_text}
|
%span.p-summary> #{Formatter.instance.format_spoiler(status)}
|
||||||
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
|
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
|
||||||
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true)
|
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true)
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
.status__content.p-name.emojify<
|
.status__content.p-name.emojify<
|
||||||
- if status.spoiler_text?
|
- if status.spoiler_text?
|
||||||
%p{ style: 'margin-bottom: 0' }<
|
%p{ style: 'margin-bottom: 0' }<
|
||||||
%span.p-summary> #{status.spoiler_text}
|
%span.p-summary> #{Formatter.instance.format_spoiler(status)}
|
||||||
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
|
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
|
||||||
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true)
|
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true)
|
||||||
|
|
||||||
|
|
Reference in New Issue