Add Camo for <img>-tags inside Markdown contents

This commit is contained in:
Dennis Schubert 2014-11-10 02:19:45 +01:00
parent e68704890e
commit aec00f834f
2 changed files with 9 additions and 1 deletions

View file

@ -3,9 +3,12 @@ module Diaspora
module Camo
def self.from_markdown(markdown_text)
return unless markdown_text
markdown_text.gsub(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/m) do |link|
markdown_text.gsub!(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \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)

View file

@ -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 <img/> tags' do
image_tag = '<img src="' + @raw_image_url + '" />'
expect(Diaspora::Camo.from_markdown(image_tag)).to include(@camo_image_url)
end
end
end