From 8be5ea14627dfeb9683e0ed4767062c521c6674f Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Mon, 20 Nov 2023 13:27:18 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20X=20(formerly=20Twitter)?= =?UTF-8?q?=20only=20showing=20an=20image=20when=20sharing=20posts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit no issue - switched `summary_large_image` for `summary` in the `twitter:card` metadata because X no longer includes a summary with the image making sharing links awkward --- .../private-blogging/lib/views/private.hbs | 2 +- .../core/frontend/meta/structured-data.js | 11 +- .../__snapshots__/ghost_head.test.js.snap | 418 +++++++++--------- .../frontend/meta/structured-data.test.js | 4 +- 4 files changed, 214 insertions(+), 221 deletions(-) diff --git a/ghost/core/core/frontend/apps/private-blogging/lib/views/private.hbs b/ghost/core/core/frontend/apps/private-blogging/lib/views/private.hbs index 4d662e50aa..424d9ca710 100644 --- a/ghost/core/core/frontend/apps/private-blogging/lib/views/private.hbs +++ b/ghost/core/core/frontend/apps/private-blogging/lib/views/private.hbs @@ -30,7 +30,7 @@ {{/if}} - + diff --git a/ghost/core/core/frontend/meta/structured-data.js b/ghost/core/core/frontend/meta/structured-data.js index d6ac7f369a..70c7b426be 100644 --- a/ghost/core/core/frontend/meta/structured-data.js +++ b/ghost/core/core/frontend/meta/structured-data.js @@ -1,14 +1,7 @@ const socialUrls = require('@tryghost/social-urls'); function getStructuredData(metaData) { - let structuredData; - let card = 'summary'; - - if (metaData.twitterImage || metaData.coverImage.url) { - card = 'summary_large_image'; - } - - structuredData = { + let structuredData = { 'og:site_name': metaData.site.title, 'og:type': metaData.ogType, 'og:title': metaData.ogTitle, @@ -23,7 +16,7 @@ function getStructuredData(metaData) { 'article:tag': metaData.keywords, 'article:publisher': metaData.site.facebook ? socialUrls.facebook(metaData.site.facebook) : undefined, 'article:author': metaData.authorFacebook ? socialUrls.facebook(metaData.authorFacebook) : undefined, - 'twitter:card': card, + 'twitter:card': 'summary', 'twitter:title': metaData.twitterTitle, 'twitter:description': metaData.twitterDescription, 'twitter:url': metaData.canonicalUrl, diff --git a/ghost/core/test/unit/frontend/helpers/__snapshots__/ghost_head.test.js.snap b/ghost/core/test/unit/frontend/helpers/__snapshots__/ghost_head.test.js.snap index 2fc30edbb0..a5aeb51623 100644 --- a/ghost/core/test/unit/frontend/helpers/__snapshots__/ghost_head.test.js.snap +++ b/ghost/core/test/unit/frontend/helpers/__snapshots__/ghost_head.test.js.snap @@ -6,7 +6,7 @@ Object { - + @@ -16,7 +16,7 @@ Object { - + @@ -24,7 +24,7 @@ Object { - + - + ", } @@ -143,7 +143,7 @@ Object { "rendered": " - + @@ -153,7 +153,7 @@ Object { - + @@ -161,7 +161,7 @@ Object { - + - + ", } `; @@ -285,9 +285,9 @@ exports[`{{ghost_head}} helper accent_color includes style tag on templates with Object { "rendered": " - + - + ", } `; @@ -298,7 +298,7 @@ Object { - + @@ -308,7 +308,7 @@ Object { - + @@ -316,7 +316,7 @@ Object { - + - + ", } `; @@ -371,7 +371,7 @@ Object { "rendered": " - + @@ -381,7 +381,7 @@ Object { - + @@ -389,7 +389,7 @@ Object { - + - + ", } `; @@ -444,19 +444,19 @@ Object { "string": " - + - + - + ", } `; @@ -724,19 +724,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -838,19 +838,19 @@ Object { "rendered": " - + - + - + - + ", } `; @@ -951,19 +951,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -1065,19 +1065,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -1179,19 +1179,19 @@ Object { "rendered": " - + - + - + - + ", } `; @@ -1229,19 +1229,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -1343,19 +1343,19 @@ Object { "rendered": " - + - + - + - + ", } `; @@ -1395,9 +1395,9 @@ Object { - + - + ", } `; @@ -1409,9 +1409,9 @@ Object { - + - + ", } @@ -1424,9 +1424,9 @@ Object { - + - + ", } @@ -1439,9 +1439,9 @@ Object { - + - + post-codeinjection", @@ -1455,9 +1455,9 @@ Object { - + - + ", } @@ -1469,7 +1469,7 @@ Object { - + @@ -1479,7 +1479,7 @@ Object { - + @@ -1487,7 +1487,7 @@ Object { - + - + ", } `; @@ -1556,9 +1556,9 @@ Object { - + - + ", } `; @@ -1569,22 +1569,22 @@ Object { - + - + - + - + - + ", } `; @@ -1594,19 +1594,19 @@ Object { "rendered": " - + - + - + - + ", } `; @@ -1645,9 +1645,9 @@ Object { - + - + ", } `; @@ -1658,9 +1658,9 @@ Object { - + - + ", } `; @@ -1680,19 +1680,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -1731,19 +1731,19 @@ Object { "rendered": " - + - + - + - + ", } @@ -1781,7 +1781,7 @@ exports[`{{ghost_head}} helper without Code Injection outputs structured data bu Object { "rendered": " - + @@ -1789,12 +1789,12 @@ Object { - + - + - + ", } `; @@ -1803,7 +1803,7 @@ exports[`{{ghost_head}} helper without Code Injection returns canonical URL 1 1` Object { "rendered": " - + @@ -1815,8 +1815,8 @@ Object { - - + + @@ -1825,7 +1825,7 @@ Object { - + - + ", } `; @@ -1869,19 +1869,19 @@ Object { "rendered": " - + - + - + - + ", } `; @@ -1918,7 +1918,7 @@ exports[`{{ghost_head}} helper without Code Injection returns meta tag string ev Object { "rendered": " - + @@ -1926,12 +1926,12 @@ Object { - + - + - + ", } `; @@ -1942,9 +1942,9 @@ Object { - + - + ", } `; @@ -1957,9 +1957,9 @@ Object { - + - + ", } `; @@ -1972,9 +1972,9 @@ Object { - + - + ", } `; @@ -1984,7 +1984,7 @@ Object { "rendered": " - + @@ -1992,12 +1992,12 @@ Object { - + - + - + ", } `; @@ -2036,7 +2036,7 @@ Object { "rendered": " - + @@ -2045,13 +2045,13 @@ Object { - + - + - + ", } `; @@ -2087,7 +2087,7 @@ Object { - + @@ -2099,9 +2099,9 @@ Object { - + - + @@ -2111,7 +2111,7 @@ Object { - + - + ", } `; @@ -2167,7 +2167,7 @@ Object { "rendered": " - + @@ -2179,9 +2179,9 @@ Object { - + - + @@ -2191,7 +2191,7 @@ Object { - + - + ", } `; @@ -2294,7 +2294,7 @@ Object { - + @@ -2306,9 +2306,9 @@ Object { - + - + @@ -2318,7 +2318,7 @@ Object { - + - + ", } `; @@ -2375,7 +2375,7 @@ Object { - + @@ -2387,9 +2387,9 @@ Object { - + - + @@ -2399,7 +2399,7 @@ Object { - + - + ", } `; @@ -2455,7 +2455,7 @@ Object { "rendered": " - + @@ -2465,7 +2465,7 @@ Object { - + @@ -2473,7 +2473,7 @@ Object { - + - + ", } `; @@ -2525,7 +2525,7 @@ Object { - + @@ -2537,9 +2537,9 @@ Object { - + - + @@ -2549,7 +2549,7 @@ Object { - + - + ", } `; @@ -2597,7 +2597,7 @@ Object { "rendered": " - + @@ -2607,7 +2607,7 @@ Object { - + @@ -2615,7 +2615,7 @@ Object { - + - + ", } `; @@ -2670,7 +2670,7 @@ Object { "rendered": " - + @@ -2680,7 +2680,7 @@ Object { - + @@ -2688,7 +2688,7 @@ Object { - + - + ", } `; @@ -2744,7 +2744,7 @@ Object { - + @@ -2754,7 +2754,7 @@ Object { - + @@ -2762,7 +2762,7 @@ Object { - + - + ", } `; @@ -2817,7 +2817,7 @@ Object { "rendered": " - + @@ -2829,8 +2829,8 @@ Object { - - + + @@ -2839,7 +2839,7 @@ Object { - + - + ", } `; @@ -2882,18 +2882,18 @@ exports[`{{ghost_head}} helper without Code Injection tag first page without met Object { "rendered": " - + - + - + - + ", } `; @@ -2931,7 +2931,7 @@ Object { "rendered": " - + @@ -2939,12 +2939,12 @@ Object { - + - + - + ", } `; diff --git a/ghost/core/test/unit/frontend/meta/structured-data.test.js b/ghost/core/test/unit/frontend/meta/structured-data.test.js index e66741b86e..b3d2b92814 100644 --- a/ghost/core/test/unit/frontend/meta/structured-data.test.js +++ b/ghost/core/test/unit/frontend/meta/structured-data.test.js @@ -52,7 +52,7 @@ describe('getStructuredData', function () { 'og:title': 'Post Title', 'og:type': 'article', 'og:url': 'http://mysite.com/post/my-post-slug/', - 'twitter:card': 'summary_large_image', + 'twitter:card': 'summary', 'twitter:data1': 'Test User', 'twitter:data2': ['one', 'two', 'tag'].join(', '), 'twitter:description': 'Post meta description', @@ -114,7 +114,7 @@ describe('getStructuredData', function () { 'og:title': 'Custom Facebook title', 'og:type': 'article', 'og:url': 'http://mysite.com/post/my-post-slug/', - 'twitter:card': 'summary_large_image', + 'twitter:card': 'summary', 'twitter:data1': 'Test User', 'twitter:data2': ['one', 'two', 'tag'].join(', '), 'twitter:description': 'Custom Twitter description',