From 5d16d10a9e8aa625e263f58658ea314dbdc79fda Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 14 Jun 2019 13:47:44 +0800 Subject: [PATCH] DEV: Fix edge case for `InlineUploads`. --- app/services/inline_uploads.rb | 2 +- spec/services/inline_uploads_spec.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/services/inline_uploads.rb b/app/services/inline_uploads.rb index d7f36a083a3..0c270296a97 100644 --- a/app/services/inline_uploads.rb +++ b/app/services/inline_uploads.rb @@ -100,7 +100,7 @@ class InlineUploads end end - markdown.scan(/((\n|\s)+)#{regexp}/) do |match| + markdown.scan(/(([\n\s\)\]\<])+)#{regexp}/) do |match| if matched_uploads(match[2]).present? next if indexes.include?($~.offset(3)[0]) diff --git a/spec/services/inline_uploads_spec.rb b/spec/services/inline_uploads_spec.rb index fc1ca632bfe..06337142b0d 100644 --- a/spec/services/inline_uploads_spec.rb +++ b/spec/services/inline_uploads_spec.rb @@ -234,6 +234,20 @@ RSpec.describe InlineUploads do MD end + it "should correct image URLs that follows an image md" do + md = <<~MD + ![image|690x290](#{upload.short_url})#{Discourse.base_url}#{upload2.url} + + <#{Discourse.base_url}#{upload2.url}> + MD + + expect(InlineUploads.process(md)).to eq(<<~MD) + ![image|690x290](#{upload.short_url})#{Discourse.base_url}#{upload2.short_path} + + <#{Discourse.base_url}#{upload2.short_path}> + MD + end + it "should correct image URLs to the short version" do md = <<~MD ![image|690x290](#{upload.short_url})