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|
|
markdown.scan(/(\n{2,}|\A)#{regexp}$/) do |match|
|
||||||
if match[1].present?
|
if match[1].present?
|
||||||
|
extension = match[1].split(".")[-1].downcase
|
||||||
|
next if FileHelper.supported_images.exclude?(extension)
|
||||||
|
|
||||||
index = $~.offset(2)[0]
|
index = $~.offset(2)[0]
|
||||||
indexes << index
|
indexes << index
|
||||||
raw_matches << [match[1], match[1], +"![](#{PLACEHOLDER})", index]
|
raw_matches << [match[1], match[1], +"![](#{PLACEHOLDER})", index]
|
||||||
|
@ -120,6 +123,11 @@ class InlineUploads
|
||||||
.sort { |a, b| a[3] <=> b[3] }
|
.sort { |a, b| a[3] <=> b[3] }
|
||||||
.each do |match, link, replace_with, _index|
|
.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
|
node_info = link_occurences.shift
|
||||||
next unless node_info&.dig(:is_valid)
|
next unless node_info&.dig(:is_valid)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,15 @@ Fabricator(:upload) do
|
||||||
extension "png"
|
extension "png"
|
||||||
end
|
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
|
Fabricator(:upload_s3, from: :upload) do
|
||||||
url do |attrs|
|
url do |attrs|
|
||||||
sequence(:url) do |n|
|
sequence(:url) do |n|
|
||||||
|
|
|
@ -228,6 +228,19 @@ RSpec.describe InlineUploads do
|
||||||
MD
|
MD
|
||||||
end
|
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
|
it "should correct img tags with uppercase upload extension" do
|
||||||
md = <<~MD
|
md = <<~MD
|
||||||
test<img src="#{upload.url.sub(".png", ".PNG")}">
|
test<img src="#{upload.url.sub(".png", ".PNG")}">
|
||||||
|
|
Loading…
Reference in New Issue