summaryrefslogtreecommitdiff
path: root/lib/banzai/filter/image_link_filter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/banzai/filter/image_link_filter.rb')
-rw-r--r--lib/banzai/filter/image_link_filter.rb13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/banzai/filter/image_link_filter.rb b/lib/banzai/filter/image_link_filter.rb
index 60881b5f511..262c0b5340d 100644
--- a/lib/banzai/filter/image_link_filter.rb
+++ b/lib/banzai/filter/image_link_filter.rb
@@ -34,17 +34,20 @@ module Banzai
img.remove_attribute('data-diagram-src')
end
- link.children = if link_replaces_image
- img['alt'] || img['data-src'] || img['src']
- else
- img.clone
- end
+ link.children = link_replaces_image ? link_children(img) : img.clone
img.replace(link)
end
doc
end
+
+ private
+
+ def link_children(img)
+ [img['alt'], img['data-src'], img['src']]
+ .map { |f| Sanitize.fragment(f).presence }.compact.first || ''
+ end
end
end
end