From: kibigo! Date: Fri, 11 Nov 2022 23:49:00 +0000 (-0800) Subject: Give internal ``s contents X-Git-Url: https://git.xn--scling-oua.cat.family/?a=commitdiff_plain;h=91f11108af950d04293de61475d6ba1c1d2ad2a8;p=mastodon.git Give internal ``s contents These aren’t used by the entity formatter, but they provide a better fallback behaviour if the entity is ever stripped prior to formatting (for example, because it is used inside of an inline spoiler). --- diff --git a/app/lib/advanced_text_formatter.rb b/app/lib/advanced_text_formatter.rb index c8c6e1d01..bcbe3f5d9 100644 --- a/app/lib/advanced_text_formatter.rb +++ b/app/lib/advanced_text_formatter.rb @@ -81,7 +81,9 @@ class AdvancedTextFormatter < TextFormatter extract_url_without_protocol: false ) do |entity| # Iterate over entities in this text node. - advance = entity[:indices].first - processed_index + entity_start = entity[:indices].first + entity_end = entity[:indices].last + advance = entity_start - processed_index if advance.positive? # Text node for content which precedes entity. replacement << Nokogiri::XML::Text.new( @@ -100,8 +102,12 @@ class AdvancedTextFormatter < TextFormatter elt['kind'] = 'mention' elt['value'] = entity[:screen_name] end + elt << Nokogiri::XML::Text.new( + content[entity_start, entity_end - entity_start], + document + ) replacement << elt - processed_index = entity[:indices].last + processed_index = entity_end end if processed_index < content.size # Text node for remaining content.