* Fix regressions from #2683 Properly format spoiler text HTML, while keeping old logic for blankness intact Process hashtags and mentions in spoiler text Format spoiler text for Atom Change "show more" toggle into a button instead of anchor Fix style regression on dropdowns for detailed statuses * Fix lint issue * Convert spoiler text to plaintext in desktop notifications
This commit is contained in:
parent
65027657ec
commit
72698bc3b4
14 changed files with 88 additions and 49 deletions
|
@ -332,7 +332,7 @@ class AtomSerializer
|
|||
end
|
||||
|
||||
def serialize_status_attributes(entry, status)
|
||||
append_element(entry, 'summary', status.spoiler_text, 'xml:lang': status.language) if status.spoiler_text?
|
||||
append_element(entry, 'summary', Formatter.instance.format(status.proper, :spoiler_text, false).to_str, 'xml:lang': status.language, type: 'html') if status.spoiler_text?
|
||||
append_element(entry, 'content', Formatter.instance.format(status.proper).to_str, type: 'html', 'xml:lang': status.language)
|
||||
|
||||
status.mentions.each do |mentioned|
|
||||
|
|
|
@ -9,13 +9,15 @@ class Formatter
|
|||
|
||||
include ActionView::Helpers::TextHelper
|
||||
|
||||
def format(status)
|
||||
return reformat(status.content) unless status.local?
|
||||
def format(status, attribute = :text, paragraphize = true)
|
||||
raw_content = status.public_send(attribute)
|
||||
|
||||
html = status.text
|
||||
return '' if raw_content.blank?
|
||||
return reformat(raw_content) unless status.local?
|
||||
|
||||
html = raw_content
|
||||
html = encode_and_link_urls(html, status.mentions)
|
||||
|
||||
html = simple_format(html, {}, sanitize: false)
|
||||
html = simple_format(html, {}, sanitize: false) if paragraphize
|
||||
html = html.delete("\n")
|
||||
|
||||
html.html_safe # rubocop:disable Rails/OutputSafety
|
||||
|
@ -25,18 +27,6 @@ class Formatter
|
|||
sanitize(html, Sanitize::Config::MASTODON_STRICT).html_safe # rubocop:disable Rails/OutputSafety
|
||||
end
|
||||
|
||||
def format_spoiler(status)
|
||||
return reformat(status.spoiler_text) unless status.local?
|
||||
|
||||
html = status.spoiler_text
|
||||
html = encode_and_link_urls(html)
|
||||
|
||||
html = simple_format(html, {}, sanitize: false)
|
||||
html = html.delete("\n")
|
||||
|
||||
html.html_safe # rubocop:disable Rails/OutputSafety
|
||||
end
|
||||
|
||||
def plaintext(status)
|
||||
return status.text if status.local?
|
||||
strip_tags(status.text)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue