mirror of
https://github.com/discourse/discourse.git
synced 2025-06-05 12:14:44 +08:00
REFACTOR: Simplify finding the opengraph image
* removes deprecation warnings for "logo url" * adds the "large icon" as fallback before the "apple touch icon"
This commit is contained in:
@ -212,18 +212,18 @@ module ApplicationHelper
|
|||||||
opts ||= {}
|
opts ||= {}
|
||||||
opts[:url] ||= "#{Discourse.base_url_no_prefix}#{request.fullpath}"
|
opts[:url] ||= "#{Discourse.base_url_no_prefix}#{request.fullpath}"
|
||||||
|
|
||||||
twitter_summary_large_image_url =
|
if opts[:image].blank?
|
||||||
SiteSetting.site_twitter_summary_large_image_url
|
twitter_summary_large_image_url = SiteSetting.site_twitter_summary_large_image_url
|
||||||
|
|
||||||
opengraph_image_url = SiteSetting.opengraph_image_url
|
if twitter_summary_large_image_url.present?
|
||||||
|
opts[:twitter_summary_large_image] = twitter_summary_large_image_url
|
||||||
|
end
|
||||||
|
|
||||||
if opts[:image].blank? && (opengraph_image_url.present? || twitter_summary_large_image_url.present?)
|
opts[:image] = SiteSetting.opengraph_image_url.presence ||
|
||||||
opts[:twitter_summary_large_image] = twitter_summary_large_image_url if twitter_summary_large_image_url.present?
|
twitter_summary_large_image_url.presence ||
|
||||||
opts[:image] = opengraph_image_url.present? ? opengraph_image_url : twitter_summary_large_image_url
|
SiteSetting.site_large_icon_url.presence ||
|
||||||
elsif opts[:image].blank? && SiteSetting.site_apple_touch_icon_url.present?
|
SiteSetting.site_apple_touch_icon_url.presence ||
|
||||||
opts[:image] = SiteSetting.site_apple_touch_icon_url
|
SiteSetting.site_logo_url.presence
|
||||||
elsif opts[:image].blank? && SiteSetting.logo_url.present?
|
|
||||||
opts[:image] = SiteSetting.logo_url
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Use the correct scheme for opengraph/twitter image
|
# Use the correct scheme for opengraph/twitter image
|
||||||
|
@ -232,18 +232,30 @@ describe ApplicationHelper do
|
|||||||
|
|
||||||
describe 'crawlable_meta_data' do
|
describe 'crawlable_meta_data' do
|
||||||
context "opengraph image" do
|
context "opengraph image" do
|
||||||
it 'returns default_opengraph_image_url' do
|
it 'returns the correct image' do
|
||||||
SiteSetting.default_opengraph_image_url = "/images/og-image.png"
|
SiteSetting.default_opengraph_image_url = '/images/og-image.png'
|
||||||
|
SiteSetting.twitter_summary_large_image_url = '/images/twitter.png'
|
||||||
|
SiteSetting.large_icon_url = '/images/large_icon.png'
|
||||||
|
SiteSetting.apple_touch_icon_url = '/images/default-apple-touch-icon.png'
|
||||||
|
SiteSetting.logo_url = '/images/d-logo-sketch.png'
|
||||||
|
|
||||||
|
expect(helper.crawlable_meta_data(image: "some-image.png")).to include("some-image.png")
|
||||||
expect(helper.crawlable_meta_data).to include("/images/og-image.png")
|
expect(helper.crawlable_meta_data).to include("/images/og-image.png")
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns apple_touch_icon_url if default_opengraph_image_url is blank' do
|
SiteSetting.default_opengraph_image_url = ''
|
||||||
|
expect(helper.crawlable_meta_data).to include("/images/twitter.png")
|
||||||
|
|
||||||
|
SiteSetting.twitter_summary_large_image_url = ''
|
||||||
|
expect(helper.crawlable_meta_data).to include("/images/large_icon.png")
|
||||||
|
|
||||||
|
SiteSetting.large_icon_url = ''
|
||||||
expect(helper.crawlable_meta_data).to include("/images/default-apple-touch-icon.png")
|
expect(helper.crawlable_meta_data).to include("/images/default-apple-touch-icon.png")
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns logo_url if apple_touch_icon_url is blank' do
|
SiteSetting.apple_touch_icon_url = ''
|
||||||
SiteSetting.apple_touch_icon_url = ""
|
|
||||||
expect(helper.crawlable_meta_data).to include("/images/d-logo-sketch.png")
|
expect(helper.crawlable_meta_data).to include("/images/d-logo-sketch.png")
|
||||||
|
|
||||||
|
SiteSetting.logo_url = ''
|
||||||
|
expect(helper.crawlable_meta_data).to_not include("/images")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user