mirror of
https://github.com/discourse/discourse.git
synced 2025-09-05 08:59:27 +08:00
PERF: Move oneboxing from cook method "email" to postprocessing
This commit is contained in:
parent
d3003592cd
commit
1481462cbf
2 changed files with 12 additions and 11 deletions
|
@ -21,12 +21,11 @@ class EmailCook
|
||||||
str.scan(EmailCook.url_regexp).each do |m|
|
str.scan(EmailCook.url_regexp).each do |m|
|
||||||
url = m[0]
|
url = m[0]
|
||||||
|
|
||||||
val = "<a href='#{url}'>#{url}</a>"
|
|
||||||
|
|
||||||
# Onebox consideration
|
|
||||||
if str.strip == url
|
if str.strip == url
|
||||||
oneboxed = Oneboxer.onebox(url)
|
# this could be oneboxed
|
||||||
val = oneboxed if oneboxed.present?
|
val = %|<a href="#{url}" class="onebox" target="_blank">#{url}</a>|
|
||||||
|
else
|
||||||
|
val = %|<a href="#{url}">#{url}</a>|
|
||||||
end
|
end
|
||||||
|
|
||||||
str.gsub!(url, val)
|
str.gsub!(url, val)
|
||||||
|
|
|
@ -27,17 +27,19 @@ LONG_COOKED
|
||||||
expect(EmailCook.new(long).cook).to eq(long_cooked.strip)
|
expect(EmailCook.new(long).cook).to eq(long_cooked.strip)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'autolinks' do
|
it 'creates oneboxed link when the line contains only a link' do
|
||||||
stub_request(:get, "https://www.eviltrout.com").to_return(body: "")
|
expect(EmailCook.new("https://www.eviltrout.com").cook).to eq('<a href="https://www.eviltrout.com" class="onebox" target="_blank">https://www.eviltrout.com</a><br>')
|
||||||
stub_request(:head, "https://www.eviltrout.com").to_return(body: "")
|
|
||||||
expect(EmailCook.new("https://www.eviltrout.com").cook).to eq("<a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br>")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'autolinks without the beginning of a line' do
|
it 'autolinks without the beginning of a line' do
|
||||||
expect(EmailCook.new("my site: https://www.eviltrout.com").cook).to eq("my site: <a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br>")
|
expect(EmailCook.new("my site: https://www.eviltrout.com").cook).to eq('my site: <a href="https://www.eviltrout.com">https://www.eviltrout.com</a><br>')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'autolinks without the end of a line' do
|
||||||
|
expect(EmailCook.new("https://www.eviltrout.com is my site").cook).to eq('<a href="https://www.eviltrout.com">https://www.eviltrout.com</a> is my site<br>')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'links even within a quote' do
|
it 'links even within a quote' do
|
||||||
expect(EmailCook.new("> https://www.eviltrout.com").cook).to eq("<blockquote><a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br></blockquote>")
|
expect(EmailCook.new("> https://www.eviltrout.com").cook).to eq('<blockquote><a href="https://www.eviltrout.com">https://www.eviltrout.com</a><br></blockquote>')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue