diff --git a/lib/diaspora/camo.rb b/lib/diaspora/camo.rb index eac55e3a8..389aa48a5 100644 --- a/lib/diaspora/camo.rb +++ b/lib/diaspora/camo.rb @@ -3,9 +3,12 @@ module Diaspora module Camo def self.from_markdown(markdown_text) return unless markdown_text - markdown_text.gsub(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/m) do |link| + markdown_text.gsub!(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/m) do |link| link.gsub($4, self.image_url($4)) end + markdown_text.gsub(/src=(['"])(.+?)\1/m) do |link| + link.gsub($2, self.image_url($2)) + end end def self.image_url(url) diff --git a/spec/lib/diaspora/camo_spec.rb b/spec/lib/diaspora/camo_spec.rb index e5561d40a..3e970340e 100644 --- a/spec/lib/diaspora/camo_spec.rb +++ b/spec/lib/diaspora/camo_spec.rb @@ -46,5 +46,10 @@ describe Diaspora::Camo do it 'should rewrite markdown images with title texts' do expect(Diaspora::Camo.from_markdown("![](#{@raw_image_url}) \"title\"")).to include(@camo_image_url) end + + it 'should rewrite URLs inside tags' do + image_tag = '' + expect(Diaspora::Camo.from_markdown(image_tag)).to include(@camo_image_url) + end end end