update images:pull_hotlinked rake task to add support for the markdown reference link style

This commit is contained in:
Régis Hanol 2013-10-10 11:57:36 +02:00
parent be6dd2c71f
commit f244650832
1 changed files with 4 additions and 2 deletions

View File

@ -71,13 +71,15 @@ task "images:pull_hotlinked" => :environment do
# if we have downloaded a file # if we have downloaded a file
if upload_urls[src].present? if upload_urls[src].present?
src_for_regexp = src.gsub("?", "\\?").gsub(".", "\\.").gsub("+", "\\+") src_for_regexp = src.gsub("?", "\\?").gsub(".", "\\.").gsub("+", "\\+")
# there are 4 ways to insert an image in a post # there are 5 ways to insert an image in a post
# HTML tag - <img src="http://..."> # HTML tag - <img src="http://...">
post.raw.gsub!(/src=["']#{src_for_regexp}["']/i, "src='#{upload_urls[src]}'") post.raw.gsub!(/src=["']#{src_for_regexp}["']/i, "src='#{upload_urls[src]}'")
# BBCode tag - [img]http://...[/img] # BBCode tag - [img]http://...[/img]
post.raw.gsub!(/\[img\]#{src_for_regexp}\[\/img\]/i, "[img]#{upload_urls[src]}[/img]") post.raw.gsub!(/\[img\]#{src_for_regexp}\[\/img\]/i, "[img]#{upload_urls[src]}[/img]")
# Markdown - ![alt](http://...) # Markdown inline - ![alt](http://...)
post.raw.gsub!(/!\[([^\]]*)\]\(#{src_for_regexp}\)/) { "![#{$1}](#{upload_urls[src]})" } post.raw.gsub!(/!\[([^\]]*)\]\(#{src_for_regexp}\)/) { "![#{$1}](#{upload_urls[src]})" }
# Markdown reference - [x]: http://
post.raw.gsub!(/\[(\d+)\]: #{src_for_regexp}/) { "[#{$1}]: #{upload_urls[src]}" }
# Direct link # Direct link
post.raw.gsub!(src, "<img src='#{upload_urls[src]}'>") post.raw.gsub!(src, "<img src='#{upload_urls[src]}'>")
# mark the post as changed # mark the post as changed