From 7a0d031bc4e6b8fb56a354ccd82b1c77b4ea3f39 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Thu, 13 Jun 2019 13:47:18 +0800 Subject: [PATCH] FIX: `InlineUploads` matching on external bbcode img url. --- app/services/inline_uploads.rb | 4 +++- spec/services/inline_uploads_spec.rb | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/services/inline_uploads.rb b/app/services/inline_uploads.rb index c0a202ef011..60713c5739c 100644 --- a/app/services/inline_uploads.rb +++ b/app/services/inline_uploads.rb @@ -166,7 +166,9 @@ class InlineUploads def self.match_bbcode_img(markdown) markdown.scan(/(\[img\]\s?(.+)\s?\[\/img\])/) do |match| - yield(match[0], match[1], +"![](#{PLACEHOLDER})", $~.offset(0)[0]) if block_given? + if matched_uploads(match[1]).present? && block_given? + yield(match[0], match[1], +"![](#{PLACEHOLDER})", $~.offset(0)[0]) + end end end diff --git a/spec/services/inline_uploads_spec.rb b/spec/services/inline_uploads_spec.rb index a1fdcc05e40..13e8c53e8bf 100644 --- a/spec/services/inline_uploads_spec.rb +++ b/spec/services/inline_uploads_spec.rb @@ -161,7 +161,9 @@ RSpec.describe InlineUploads do it "should correct bbcode img URLs to the short version" do md = <<~MD + [img]http://some.external.img[/img] [img]#{upload.url}[/img] + [img] #{upload2.url} @@ -169,7 +171,9 @@ RSpec.describe InlineUploads do MD expect(InlineUploads.process(md)).to eq(<<~MD) + [img]http://some.external.img[/img] ![](#{upload.short_url}) + ![](#{upload3.short_url}) ![](#{upload2.short_url}) MD