class QuoteFormatter include ActionView::Helpers::TextHelper include ERB::Util include RoutingHelper def initialize(html, quote, options = {}) @html = html @quote = quote @options = options end def to_s url = ActivityPub::TagManager.instance.url_for(status.quote) link = encode_and_link_urls(url) <<~HTML.squish
QT: #{link}
" HTML end def format_in_quote(status, **options) # format_in_quoteを定義、引数statusと**options html = format(status) return '' if html.empty? doc = Nokogiri::HTML.parse(html, nil, 'utf-8') html = doc.css('body')[0].inner_html html.sub!(/^

(.+)<\/p>$/, '\1') html = Sanitize.clean(html).delete("\n").truncate(150) html = encode_custom_emojis(html, status.emojis) if options[:custom_emojify] html.html_safe end end