FIX: Do not use SVGs for twitter:image metadata (#16973)

Twitter does not allow SVGs to be used for twitter:image
metadata (see https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup)
so we should fall back to the site logo if the image option
provided to `crawlable_meta_data` or SiteSetting.site_twitter_summary_large_image_url
is an SVG, and do not add the meta tag for twitter:image at all
if the site logo is an SVG.
This commit is contained in:
Martin Brennan
2022-06-03 09:02:57 +10:00
committed by GitHub
parent f5e4df1b0e
commit f94682e2c4
7 changed files with 85 additions and 10 deletions

View File

@ -402,4 +402,16 @@ describe SiteSettings::Validations do
end
end
end
describe "#twitter_summary_large_image" do
it "does not allow SVG image files" do
upload = Fabricate(:upload, url: '/images/logo-dark.svg', extension: "svg")
expect { subject.validate_twitter_summary_large_image(upload.id) }.to raise_error(
Discourse::InvalidParameters, I18n.t("errors.site_settings.twitter_summary_large_image_no_svg")
)
upload.update!(url: '/images/logo-dark.png', extension: 'png')
expect { subject.validate_twitter_summary_large_image(upload.id) }.not_to raise_error
expect { subject.validate_twitter_summary_large_image(nil) }.not_to raise_error
end
end
end