mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: InlineUploads
should replace attachment links with markdown text.
This commit is contained in:
parent
73a45048a0
commit
34f382b758
@ -24,7 +24,9 @@ class InlineUploads
|
|||||||
cooked_fragment.traverse do |node|
|
cooked_fragment.traverse do |node|
|
||||||
if node.name == "img"
|
if node.name == "img"
|
||||||
# Do nothing
|
# Do nothing
|
||||||
elsif !(node.children.count == 1 && (node.children[0].name != "img" && node.children[0].children.blank?))
|
elsif !(node.children.count == 1 && (node.children[0].name != "img" && node.children[0].children.blank?)) &&
|
||||||
|
!(node.name == "a" && node.children.count > 1 && !node_children_names(node).include?("img"))
|
||||||
|
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -293,4 +295,18 @@ class InlineUploads
|
|||||||
matches
|
matches
|
||||||
end
|
end
|
||||||
private_class_method :matched_uploads
|
private_class_method :matched_uploads
|
||||||
|
|
||||||
|
def self.node_children_names(node, names = Set.new)
|
||||||
|
if node.children.blank?
|
||||||
|
names << node.name
|
||||||
|
return names
|
||||||
|
end
|
||||||
|
|
||||||
|
node.children.each do |child|
|
||||||
|
names = node_children_names(child, names)
|
||||||
|
end
|
||||||
|
|
||||||
|
names
|
||||||
|
end
|
||||||
|
private_class_method :node_children_names
|
||||||
end
|
end
|
||||||
|
@ -452,6 +452,8 @@ RSpec.describe InlineUploads do
|
|||||||
|
|
||||||
<a class="test attachment" href="#{upload.url}">test3</a>
|
<a class="test attachment" href="#{upload.url}">test3</a>
|
||||||
<a class="test attachment" href="#{upload2.url}">test3</a><a class="test attachment" href="#{upload3.url}">test3</a>
|
<a class="test attachment" href="#{upload2.url}">test3</a><a class="test attachment" href="#{upload3.url}">test3</a>
|
||||||
|
|
||||||
|
<a class="test attachment" href="#{upload3.url}">This is some _test_ here</a>
|
||||||
MD
|
MD
|
||||||
|
|
||||||
expect(InlineUploads.process(md)).to eq(<<~MD)
|
expect(InlineUploads.process(md)).to eq(<<~MD)
|
||||||
@ -463,6 +465,8 @@ RSpec.describe InlineUploads do
|
|||||||
|
|
||||||
[test3|attachment](#{upload.short_url})
|
[test3|attachment](#{upload.short_url})
|
||||||
[test3|attachment](#{upload2.short_url})[test3|attachment](#{upload3.short_url})
|
[test3|attachment](#{upload2.short_url})[test3|attachment](#{upload3.short_url})
|
||||||
|
|
||||||
|
[This is some _test_ here|attachment](#{upload3.short_url})
|
||||||
MD
|
MD
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user