1
0
mirror of https://github.com/mastodon/mastodon synced 2024-11-27 22:38:27 +09:00
mastodon/app/lib/plain_text_formatter.rb

35 lines
538 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class PlainTextFormatter
include ActionView::Helpers::TextHelper
2023-04-27 08:46:18 +09:00
NEWLINE_TAGS_RE = /(<br \/>|<br>|<\/p>)+/
attr_reader :text, :local
alias local? local
def initialize(text, local)
@text = text
@local = local
end
def to_s
if local?
text
else
2023-03-09 03:56:41 +09:00
html_entities.decode(strip_tags(insert_newlines)).chomp
end
end
private
def insert_newlines
text.gsub(NEWLINE_TAGS_RE) { |match| "#{match}\n" }
end
2023-03-09 03:56:41 +09:00
def html_entities
HTMLEntities.new
end
end