123456789101112131415161718192021222324252627282930313233343536373839 |
- # frozen_string_literal: true
- class HtmlAwareFormatter
- attr_reader :text, :local, :options
- alias local? local
- # @param [String] text
- # @param [Boolean] local
- # @param [Hash] options
- def initialize(text, local, options = {})
- @text = text
- @local = local
- @options = options
- end
- def to_s
- return ''.html_safe if text.blank?
- if local?
- linkify
- else
- reformat.html_safe # rubocop:disable Rails/OutputSafety
- end
- rescue ArgumentError
- ''.html_safe
- end
- private
- def reformat
- Sanitize.fragment(text, Sanitize::Config::MASTODON_STRICT)
- end
- def linkify
- TextFormatter.new(text, options).to_s
- end
- end
|