FIX: skip markdown conversion for hotlinked non image urls
This commit is contained in:
parent
1308919a3d
commit
3840ace978
|
@ -73,6 +73,9 @@ class InlineUploads
|
|||
|
||||
markdown.scan(/(\n{2,}|\A)#{regexp}$/) do |match|
|
||||
if match[1].present?
|
||||
extension = match[1].split(".")[-1].downcase
|
||||
next if FileHelper.supported_images.exclude?(extension)
|
||||
|
||||
index = $~.offset(2)[0]
|
||||
indexes << index
|
||||
raw_matches << [match[1], match[1], +"![](#{PLACEHOLDER})", index]
|
||||
|
@ -120,6 +123,11 @@ class InlineUploads
|
|||
.sort { |a, b| a[3] <=> b[3] }
|
||||
.each do |match, link, replace_with, _index|
|
||||
|
||||
if match == link
|
||||
extension = match.split(".")[-1].downcase
|
||||
next if FileHelper.supported_images.exclude?(extension)
|
||||
end
|
||||
|
||||
node_info = link_occurences.shift
|
||||
next unless node_info&.dig(:is_valid)
|
||||
|
||||
|
|
|
@ -21,6 +21,15 @@ Fabricator(:upload) do
|
|||
extension "png"
|
||||
end
|
||||
|
||||
Fabricator(:video_upload, from: :upload) do
|
||||
original_filename "video.mp4"
|
||||
width nil
|
||||
height nil
|
||||
thumbnail_width nil
|
||||
thumbnail_height nil
|
||||
extension "mp4"
|
||||
end
|
||||
|
||||
Fabricator(:upload_s3, from: :upload) do
|
||||
url do |attrs|
|
||||
sequence(:url) do |n|
|
||||
|
|
|
@ -228,6 +228,19 @@ RSpec.describe InlineUploads do
|
|||
MD
|
||||
end
|
||||
|
||||
it "should not correct non image URLs to the short url and paths" do
|
||||
SiteSetting.authorized_extensions = "mp4"
|
||||
upload4 = Fabricate(:video_upload)
|
||||
|
||||
md = <<~MD
|
||||
#{GlobalSetting.cdn_url}#{upload4.url}
|
||||
MD
|
||||
|
||||
expect(InlineUploads.process(md)).to eq(<<~MD)
|
||||
#{GlobalSetting.cdn_url}#{upload4.url}
|
||||
MD
|
||||
end
|
||||
|
||||
it "should correct img tags with uppercase upload extension" do
|
||||
md = <<~MD
|
||||
test<img src="#{upload.url.sub(".png", ".PNG")}">
|
||||
|
|
Loading…
Reference in New Issue