diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index d0af9b7136b..2b94222d741 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -2057,6 +2057,7 @@ en: embed_any_origin: "Allow embeddable content regardless of origin. This is required for mobile apps with static HTML." embed_topics_list: "Support HTML embedding of topics lists" + embed_set_canonical_url: "Set the canonical URL for embeded topics to the embeded content's URL." embed_truncate: "Truncate the embedded posts." embed_support_markdown: "Support Markdown formatting for embedded posts." embed_whitelist_selector: "A comma separated list of CSS elements that are allowed in embeds." diff --git a/config/site_settings.yml b/config/site_settings.yml index d42c7f7b0bc..42acc80a844 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -880,6 +880,7 @@ posting: - code-fences embed_any_origin: false embed_topics_list: false + embed_set_canonical_url: false embed_truncate: default: true embed_support_markdown: diff --git a/lib/topic_view.rb b/lib/topic_view.rb index 31c6729ac0b..62f953b6fd5 100644 --- a/lib/topic_view.rb +++ b/lib/topic_view.rb @@ -113,6 +113,10 @@ class TopicView end def canonical_path + if SiteSetting.embed_set_canonical_url + topic_embed = topic.topic_embed + return topic_embed.embed_url if topic_embed + end path = relative_url.dup path << if @page > 1 diff --git a/spec/requests/topics_controller_spec.rb b/spec/requests/topics_controller_spec.rb index 3394894737a..bb570a8674b 100644 --- a/spec/requests/topics_controller_spec.rb +++ b/spec/requests/topics_controller_spec.rb @@ -3072,6 +3072,22 @@ RSpec.describe TopicsController do expect(body).to include(' user_agent } + expect(response.body).to include(' user_agent } + expect(response.body).to include(' "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36", "HTTP_VIA" => "HTTP/1.0 web.archive.org (Wayback Save Page)" }