diff --git a/apps/admin/src/layout/app-sidebar/nav-content.tsx b/apps/admin/src/layout/app-sidebar/nav-content.tsx index ec9bed45d94..a6a561eaeb8 100644 --- a/apps/admin/src/layout/app-sidebar/nav-content.tsx +++ b/apps/admin/src/layout/app-sidebar/nav-content.tsx @@ -3,6 +3,7 @@ import React from "react" import {SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuBadge} from "@tryghost/shade/components" import {formatNumber, LucideIcon} from "@tryghost/shade/utils" import { useCurrentUser } from "@tryghost/admin-x-framework/api/current-user"; +import {getSettingValue, useBrowseSettings} from "@tryghost/admin-x-framework/api/settings"; import { canManageMembers, canManageTags } from "@tryghost/admin-x-framework/api/users"; import { NavMenuItem } from "./nav-menu-item"; import { useMemberCount } from "./hooks/use-member-count"; @@ -69,6 +70,7 @@ function MembersNavItemContent({ function NavContent({ ...props }: React.ComponentProps) { const { data: currentUser } = useCurrentUser(); + const {data: settingsData} = useBrowseSettings(); const [savedPostsExpanded, setPostsExpanded] = useNavigationExpanded('posts'); const [savedMembersExpanded, setMembersExpanded] = useNavigationExpanded('members'); const postCustomViews = useCustomSidebarViews('posts'); @@ -82,6 +84,8 @@ function NavContent({ ...props }: React.ComponentProps) { const showTags = currentUser && canManageTags(currentUser); const showMembers = currentUser && canManageMembers(currentUser); + const commentsEnabled = getSettingValue(settingsData?.settings, 'comments_enabled'); + const showComments = !!showMembers && commentModerationEnabled && commentsEnabled !== 'off'; const isDraftPostsRouteActive = routing.isRouteActive('posts', {type: 'draft'}); const isScheduledPostsRouteActive = routing.isRouteActive('posts', {type: 'scheduled'}); const isPublishedPostsRouteActive = routing.isRouteActive('posts', {type: 'published'}); @@ -202,7 +206,7 @@ function NavContent({ ...props }: React.ComponentProps) { )} - {showMembers && commentModerationEnabled && ( + {showComments && ( { }); test('can unsubscribe from newsletter', async ({page}) => { + const settingsService = new SettingsService(page.request); + await settingsService.setCommentsEnabled('off'); + const member = await createSubscribedMember(page.request, memberFactory); await impersonateMember(page, member.name!); @@ -120,7 +124,9 @@ test.describe('Portal - Member Actions', () => { await expect(newsletterManagement.newsletterToggleCheckbox(0)).not.toBeChecked(); await expect(newsletterManagement.newsletterToggleCheckbox(1)).not.toBeChecked(); - const memberNewsletters = await getMemberNewsletters(page.request, member.id); - expect(memberNewsletters).toHaveLength(0); + await expect(async () => { + const memberNewsletters = await getMemberNewsletters(page.request, member.id); + expect(memberNewsletters).toHaveLength(0); + }).toPass(); }); }); diff --git a/e2e/tests/public/stripe-webhook-subscription-lifecycle.test.ts b/e2e/tests/public/stripe-webhook-subscription-lifecycle.test.ts index 3e69125d5a9..3ba6faf96fb 100644 --- a/e2e/tests/public/stripe-webhook-subscription-lifecycle.test.ts +++ b/e2e/tests/public/stripe-webhook-subscription-lifecycle.test.ts @@ -1,6 +1,7 @@ import {APIRequestContext, Page} from '@playwright/test'; import {HomePage, MemberDetailsPage, MembersPage, PortalAccountPage} from '@/helpers/pages'; import {MembersService} from '@/helpers/services/members'; +import {SettingsService} from '@/helpers/services/settings/settings-service'; import {expect, test} from '@/helpers/playwright'; async function waitForMemberStatus(request: APIRequestContext, email: string, status: string) { @@ -84,6 +85,9 @@ test.describe('Portal - Stripe Subscription Lifecycle via Webhooks', () => { }); test('subscription-deleted webhook - shows free membership in portal', async ({page, stripe}) => { + const settingsService = new SettingsService(page.request); + await settingsService.setCommentsEnabled('off'); + const email = `portal-free-${Date.now()}@example.com`; const {subscription} = await stripe!.createPaidMemberViaWebhooks({email, name: 'Portal Free Member'}); diff --git a/ghost/core/core/server/data/schema/default-settings/default-settings.json b/ghost/core/core/server/data/schema/default-settings/default-settings.json index 8b101f32da7..6f1206ba03a 100644 --- a/ghost/core/core/server/data/schema/default-settings/default-settings.json +++ b/ghost/core/core/server/data/schema/default-settings/default-settings.json @@ -599,7 +599,7 @@ "comments": { "comments_enabled": { "type": "string", - "defaultValue": "off", + "defaultValue": "all", "validations": { "isEmpty": false, "isIn": [[ diff --git a/ghost/core/test/e2e-api/admin/__snapshots__/email-previews.test.js.snap b/ghost/core/test/e2e-api/admin/__snapshots__/email-previews.test.js.snap index 328e997afa4..6b75f260ba8 100644 --- a/ghost/core/test/e2e-api/admin/__snapshots__/email-previews.test.js.snap +++ b/ghost/core/test/e2e-api/admin/__snapshots__/email-previews.test.js.snap @@ -770,6 +770,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -958,6 +972,26 @@ Another email card with a similar replacement, Jamie + + +Comment + + +[http://127.0.0.1:2369/p/d52c42ae-2755-455c-80ec-70b2ec55c904/#ghost-comments-root] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=example-uuid&key=803e513e2d8b88e759d8f433779659af335d7308b4cbac809600d563f6b49a76&newsletter=requested-newsletter-uuid] @@ -986,7 +1020,7 @@ exports[`Email Preview API Read can read post email preview with email card and Object { "access-control-allow-origin": "http://127.0.0.1:2369", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", - "content-length": "34161", + "content-length": "36587", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -1675,6 +1709,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -1880,6 +1928,26 @@ Header Level 3 + + +Comment + + +[http://127.0.0.1:2369/html-ipsum/#ghost-comments-root] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=example-uuid&key=803e513e2d8b88e759d8f433779659af335d7308b4cbac809600d563f6b49a76&newsletter=requested-newsletter-uuid] @@ -1908,7 +1976,7 @@ exports[`Email Preview API Read can read post email preview with fields 4: [head Object { "access-control-allow-origin": "http://127.0.0.1:2369", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", - "content-length": "38595", + "content-length": "40965", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -2623,6 +2691,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -2805,6 +2887,26 @@ Testing links [https://ghost.org/] in email excerpt and apostrophes ' + + +Comment + + +[http://127.0.0.1:2369/p/d52c42ae-2755-455c-80ec-70b2ec55c904/#ghost-comments-root] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=example-uuid&key=803e513e2d8b88e759d8f433779659af335d7308b4cbac809600d563f6b49a76&newsletter=requested-newsletter-uuid] @@ -2846,7 +2948,7 @@ exports[`Email Preview API Read has custom content transformations for email com Object { "access-control-allow-origin": "http://127.0.0.1:2369", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", - "content-length": "33873", + "content-length": "36299", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -3897,6 +3999,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -4086,6 +4202,26 @@ Testing links [https://ghost.org/] in email excerpt and apostrophes ' + + +Comment + + +[http://127.0.0.1:2369/p/d52c42ae-2755-455c-80ec-70b2ec55c904/#ghost-comments-root] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=example-uuid&key=803e513e2d8b88e759d8f433779659af335d7308b4cbac809600d563f6b49a76&newsletter=requested-newsletter-uuid] @@ -4127,7 +4263,7 @@ exports[`Email Preview API Read uses the newsletter provided through ?newsletter Object { "access-control-allow-origin": "http://127.0.0.1:2369", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", - "content-length": "34750", + "content-length": "37176", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -5204,6 +5340,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -5393,6 +5543,26 @@ Testing links [https://ghost.org/] in email excerpt and apostrophes ' + + +Comment + + +[http://127.0.0.1:2369/p/d52c42ae-2755-455c-80ec-70b2ec55c904/#ghost-comments-root] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=example-uuid&key=803e513e2d8b88e759d8f433779659af335d7308b4cbac809600d563f6b49a76&newsletter=requested-newsletter-uuid] @@ -5434,7 +5604,7 @@ exports[`Email Preview API Read uses the posts newsletter by default 4: [headers Object { "access-control-allow-origin": "http://127.0.0.1:2369", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", - "content-length": "34750", + "content-length": "37176", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, diff --git a/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap b/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap index 869224ec2f8..8d59eac565b 100644 --- a/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap +++ b/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap @@ -314,7 +314,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -1205,7 +1205,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -1651,7 +1651,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -2142,7 +2142,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -2587,7 +2587,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -3515,7 +3515,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -3961,7 +3961,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -4407,7 +4407,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -4857,7 +4857,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -5302,7 +5302,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -5752,7 +5752,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -6586,7 +6586,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -7032,7 +7032,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -7479,7 +7479,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -7926,7 +7926,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", @@ -8435,7 +8435,7 @@ Object { }, Object { "key": "comments_enabled", - "value": "off", + "value": "all", }, Object { "key": "outbound_link_tagging", diff --git a/ghost/core/test/e2e-api/content/__snapshots__/pages.test.js.snap b/ghost/core/test/e2e-api/content/__snapshots__/pages.test.js.snap index b5f8d0eb6be..bf20541369e 100644 --- a/ghost/core/test/e2e-api/content/__snapshots__/pages.test.js.snap +++ b/ghost/core/test/e2e-api/content/__snapshots__/pages.test.js.snap @@ -9,7 +9,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e9", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -49,7 +49,7 @@ exports[`Pages Content API Can request page 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "1119", + "content-length": "1118", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -77,7 +77,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a78", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -117,7 +117,7 @@ Tip: If you're reading any post or page on your site and you notice something yo "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a79", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -162,7 +162,7 @@ If you prefer to use a contact form, almost all of the great embedded form servi "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a7b", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -203,7 +203,7 @@ Ghost is a non-profit organization, and we give away all our intellectual proper "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a7a", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -241,7 +241,7 @@ You can integrate any products, services, ads or integrations with Ghost yoursel "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e9", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -281,7 +281,7 @@ exports[`Pages Content API Can request pages 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "9413", + "content-length": "9408", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -356,7 +356,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a78", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -395,7 +395,7 @@ Tip: If you're reading any post or page on your site and you notice something yo "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a79", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -439,7 +439,7 @@ If you prefer to use a contact form, almost all of the great embedded form servi "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a7b", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -479,7 +479,7 @@ Ghost is a non-profit organization, and we give away all our intellectual proper "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a7a", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -516,7 +516,7 @@ You can integrate any products, services, ads or integrations with Ghost yoursel "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e9", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, diff --git a/ghost/core/test/e2e-api/content/__snapshots__/posts.test.js.snap b/ghost/core/test/e2e-api/content/__snapshots__/posts.test.js.snap index a25dfb0fc70..0611b07fd0d 100644 --- a/ghost/core/test/e2e-api/content/__snapshots__/posts.test.js.snap +++ b/ghost/core/test/e2e-api/content/__snapshots__/posts.test.js.snap @@ -582,7 +582,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -620,7 +620,7 @@ exports[`Posts Content API Can filter by published date 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "4619", + "content-length": "4618", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -648,7 +648,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -698,7 +698,7 @@ exports[`Posts Content API Can filter by published date 4: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "5909", + "content-length": "5908", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -726,7 +726,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -764,7 +764,7 @@ exports[`Posts Content API Can filter by published date 6: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "4620", + "content-length": "4619", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -816,7 +816,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -898,7 +898,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -992,7 +992,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a75", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.", "custom_template": null, @@ -1074,7 +1074,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a74", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How Ghost allows you to turn anonymous readers into an audience of active subscribers, so you know what's working and what isn't.", "custom_template": null, @@ -1255,7 +1255,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a72", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A guide to collaborating with other staff users to publish, and some resources to help you with the next steps of growing your business", "custom_template": null, @@ -1337,7 +1337,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a71", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.", "custom_template": null, @@ -1420,7 +1420,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6f1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -1656,7 +1656,7 @@ Snippet Docume", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a700", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -1838,7 +1838,7 @@ Snippet Doc", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -1931,7 +1931,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -2029,7 +2029,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -2113,7 +2113,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -2173,7 +2173,7 @@ exports[`Posts Content API Can filter posts by authors 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "100276", + "content-length": "100264", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -2201,7 +2201,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -2250,7 +2250,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -2346,7 +2346,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -2449,7 +2449,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -2552,7 +2552,7 @@ exports[`Posts Content API Can filter posts by tag 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "13983", + "content-length": "13979", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -2581,7 +2581,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -2662,7 +2662,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -2755,7 +2755,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a75", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.", "custom_template": null, @@ -2836,7 +2836,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a74", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How Ghost allows you to turn anonymous readers into an audience of active subscribers, so you know what's working and what isn't.", "custom_template": null, @@ -3015,7 +3015,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a72", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A guide to collaborating with other staff users to publish, and some resources to help you with the next steps of growing your business", "custom_template": null, @@ -3096,7 +3096,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a71", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.", "custom_template": null, @@ -3178,7 +3178,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6f1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -3413,7 +3413,7 @@ Snippet Docume", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a700", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -3572,7 +3572,7 @@ Snippet Doc", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -3644,7 +3644,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -3741,7 +3741,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -3824,7 +3824,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -3906,7 +3906,7 @@ exports[`Posts Content API Can include relations 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "113211", + "content-length": "113199", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -3924,7 +3924,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -3962,7 +3962,7 @@ exports[`Posts Content API Can request a single post 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "2358", + "content-length": "2357", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -4059,7 +4059,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -4095,7 +4095,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -4143,7 +4143,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a75", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.", "custom_template": null, @@ -4179,7 +4179,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a74", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How Ghost allows you to turn anonymous readers into an audience of active subscribers, so you know what's working and what isn't.", "custom_template": null, @@ -4268,7 +4268,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a72", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A guide to collaborating with other staff users to publish, and some resources to help you with the next steps of growing your business", "custom_template": null, @@ -4304,7 +4304,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a71", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.", "custom_template": null, @@ -4341,7 +4341,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6f1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -4531,7 +4531,7 @@ Snippet Docume", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a700", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -4645,7 +4645,7 @@ Snippet Doc", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -4692,7 +4692,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -4744,7 +4744,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -4782,7 +4782,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -4820,7 +4820,7 @@ exports[`Posts Content API Can request posts 2: [headers] 1`] = ` Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "87294", + "content-length": "87282", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -4848,7 +4848,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -4884,7 +4884,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -4932,7 +4932,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a75", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.", "custom_template": null, @@ -4968,7 +4968,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a74", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How Ghost allows you to turn anonymous readers into an audience of active subscribers, so you know what's working and what isn't.", "custom_template": null, @@ -5057,7 +5057,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a72", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A guide to collaborating with other staff users to publish, and some resources to help you with the next steps of growing your business", "custom_template": null, @@ -5093,7 +5093,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a71", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.", "custom_template": null, @@ -5130,7 +5130,7 @@ Most successful subscription businesses publish a mix of free and paid posts to "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6f1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -5320,7 +5320,7 @@ Snippet Docume", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a700", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -5434,7 +5434,7 @@ Snippet Doc", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -5481,7 +5481,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -5533,7 +5533,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -5571,7 +5571,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, @@ -5609,7 +5609,7 @@ exports[`Posts Content API Can request posts from different origin 2: [headers] Object { "access-control-allow-origin": "*", "cache-control": "public, max-age=0", - "content-length": "87294", + "content-length": "87282", "content-type": "application/json; charset=utf-8", "content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, @@ -6425,7 +6425,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a77", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "We've crammed the most important information to help you get started with Ghost into this one post. It's your cheat-sheet to get started, and your shortcut to advanced features.", "custom_template": null, @@ -6460,7 +6460,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a76", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How to tweak a few settings in Ghost to transform your site from a generic template to a custom brand with style and personality.", "custom_template": null, @@ -6495,7 +6495,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a75", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.", "custom_template": null, @@ -6530,7 +6530,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a74", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "How Ghost allows you to turn anonymous readers into an audience of active subscribers, so you know what's working and what isn't.", "custom_template": null, @@ -6600,7 +6600,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a72", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "A guide to collaborating with other staff users to publish, and some resources to help you with the next steps of growing your business", "custom_template": null, @@ -6635,7 +6635,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "6194d3ce51e2700162531a71", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.", "custom_template": null, @@ -6670,7 +6670,7 @@ Object { "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6f1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -6771,7 +6771,7 @@ Snippet Docume", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a700", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -6852,7 +6852,7 @@ Snippet Doc", "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e7", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -6898,7 +6898,7 @@ Definition listConsectetur adipisicing elit, sed do eiusmod tempor incididunt ut "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e3", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -6942,7 +6942,7 @@ mctesters "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6e1", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": null, "custom_template": null, @@ -6979,7 +6979,7 @@ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac tu "codeinjection_foot": null, "codeinjection_head": null, "comment_id": "618ba1ffbe2896088840a6df", - "comments": false, + "comments": true, "created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/, "custom_excerpt": "This is my custom excerpt!", "custom_template": null, diff --git a/ghost/core/test/e2e-api/content/__snapshots__/settings.test.js.snap b/ghost/core/test/e2e-api/content/__snapshots__/settings.test.js.snap index 86f8c6254ca..2c4dc054a76 100644 --- a/ghost/core/test/e2e-api/content/__snapshots__/settings.test.js.snap +++ b/ghost/core/test/e2e-api/content/__snapshots__/settings.test.js.snap @@ -9,7 +9,7 @@ Object { "bluesky": null, "codeinjection_foot": null, "codeinjection_head": null, - "comments_enabled": "off", + "comments_enabled": "all", "cover_image": "https://static.ghost.org/v5.0.0/images/publication-cover.jpg", "default_email_address": "noreply@127.0.0.1", "description": "Thoughts, stories and ideas", diff --git a/ghost/core/test/integration/services/email-service/__snapshots__/cards.test.js.snap b/ghost/core/test/integration/services/email-service/__snapshots__/cards.test.js.snap index 9a4a3be71d1..147b9390446 100644 --- a/ghost/core/test/integration/services/email-service/__snapshots__/cards.test.js.snap +++ b/ghost/core/test/integration/services/email-service/__snapshots__/cards.test.js.snap @@ -670,6 +670,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -841,6 +855,26 @@ This is a paragraph test. + + +Comment + + +[http://127.0.0.1:2369/r/xxxxxx?m=member-uuid] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=member-uuid&key=xxxxxx&newsletter=requested-newsletter-uuid] @@ -1535,6 +1569,20 @@ table.body h2 span { + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -1706,6 +1754,26 @@ This is a paragraph + + +Comment + + +[http://127.0.0.1:2369/r/xxxxxx?m=member-uuid] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=member-uuid&key=xxxxxx&newsletter=requested-newsletter-uuid] @@ -8517,6 +8585,20 @@ Ghost: Independent technology for modern publishingBeautiful, modern publishing + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -9033,6 +9115,26 @@ http://127.0.0.1:2369/r/xxxxxx?m=member-uuid Listen to your podcasts [http://127 + + +Comment + + +[http://127.0.0.1:2369/r/xxxxxx?m=member-uuid] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=member-uuid&key=xxxxxx&newsletter=requested-newsletter-uuid] @@ -10062,6 +10164,20 @@ Beautiful, modern publishing with newsletters and premium subscriptions built-in + + + + + + +
+ + \\"Comment\\" +

Comment

+
+
+ + @@ -10584,6 +10700,26 @@ http://127.0.0.1:2369/r/xxxxxx?m=member-uuid Listen to your podcasts [http://127 + + +Comment + + +[http://127.0.0.1:2369/r/xxxxxx?m=member-uuid] + + + + + + + + + + + + + + Ghost © 2025 – Unsubscribe [http://127.0.0.1:2369/unsubscribe/?uuid=member-uuid&key=xxxxxx&newsletter=requested-newsletter-uuid] diff --git a/ghost/core/test/unit/server/data/schema/integrity.test.js b/ghost/core/test/unit/server/data/schema/integrity.test.js index ec60833f039..715bbb91586 100644 --- a/ghost/core/test/unit/server/data/schema/integrity.test.js +++ b/ghost/core/test/unit/server/data/schema/integrity.test.js @@ -37,7 +37,7 @@ describe('DB version integrity', function () { // Only these variables should need updating const currentSchemaHash = '28bf4f027ceb900645a650bfe0f00fb0'; const currentFixturesHash = 'b76d01321e02fb99b11e7a29f91859f7'; - const currentSettingsHash = '857b77a8e1c7072d9eb639152c78a49e'; + const currentSettingsHash = '8453fbccc17256a188cc5ffed8c31945'; const currentRoutesHash = '3d180d52c663d173a6be791ef411ed01'; // If this test is failing, then it is likely a change has been made that requires a DB version bump, diff --git a/ghost/core/test/utils/fixtures/default-settings.json b/ghost/core/test/utils/fixtures/default-settings.json index 86a3aa08a8f..2457c3de5e6 100644 --- a/ghost/core/test/utils/fixtures/default-settings.json +++ b/ghost/core/test/utils/fixtures/default-settings.json @@ -558,7 +558,7 @@ "comments": { "comments_enabled": { "type": "string", - "defaultValue": "off", + "defaultValue": "all", "validations": { "isEmpty": false, "isIn": [[