mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-24 03:14:03 +03:00
d6d064be71
refs https://github.com/TryGhost/Toolbox/issues/215 - The conversion should serve as a reference test. Eventually the aim is to have all tests converted to use "utils/e2e-framework" instead of previously used plethora of utils and whatnot
3481 lines
284 KiB
Plaintext
3481 lines
284 KiB
Plaintext
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||
|
||
exports[`Posts Content API Can filter by published date 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 1,
|
||
"next": 2,
|
||
"page": 1,
|
||
"pages": 11,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter by published date 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "4591",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter by published date 3: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 1,
|
||
"next": 2,
|
||
"page": 1,
|
||
"pages": 10,
|
||
"prev": null,
|
||
"total": 10,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a76",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As discussed in the <a href=\\"http://127.0.0.1:2369/welcome/\\">introduction</a> post, one of the best things about Ghost is just how much you can customize to turn your site into something unique. Everything about your layout and design can be changed, so you're not stuck with yet another clone of a social network profile.</p><p>How far you want to go with customization is completely up to you, there's no right or wrong approach! The majority of people use one of Ghost's built-in themes to get started, and then progress to something more bespoke later on as their site grows. </p><p>The best way to get started is with Ghost's branding settings, where you can set up colors, images and logos to fit with your brand.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/brandsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3456\\" height=\\"2338\\"><figcaption>Ghost Admin → Settings → Branding</figcaption></figure><p>Any Ghost theme that's up to date and compatible with Ghost 4.0 and higher will reflect your branding settings in the preview window, so you can see what your site will look like as you experiment with different options.</p><p>When selecting an accent color, try to choose something which will contrast well with white text. Many themes will use your accent color as the background for buttons, headers and navigational elements. Vibrant colors with a darker hue tend to work best, as a general rule.</p><h2 id=\\"installing-ghost-themes\\">Installing Ghost themes</h2><p>By default, new sites are created with Ghost's friendly publication theme, called Casper. Everything in Casper is optimized to work for the most common types of blog, newsletter and publication that people create with Ghost — so it's a perfect place to start.</p><p>However, there are hundreds of different themes available to install, so you can pick out a look and feel that suits you best.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/themesettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3208\\" height=\\"1618\\"><figcaption>Ghost Admin → Settings → Theme</figcaption></figure><p>Inside Ghost's theme settings you'll find 4 more official themes that can be directly installed and activated. Each theme is suited to slightly different use-cases.</p><ul><li><strong>Casper</strong> <em>(default)</em> — Made for all sorts of blogs and newsletters</li><li><strong>Edition</strong> — A beautiful minimal template for newsletter authors</li><li><strong>Alto</strong> — A slick news/magazine style design for creators</li><li><strong>London</strong> — A light photography theme with a bold grid</li><li><strong>Ease</strong> — A library theme for organizing large content archives</li></ul><p>And if none of those feel quite right, head on over to the <a href=\\"https://ghost.org/themes/\\">Ghost Marketplace</a>, where you'll find a huge variety of both free and premium themes.</p><h2 id=\\"building-something-custom\\">Building something custom</h2><p>Finally, if you want something completely bespoke for your site, you can always build a custom theme from scratch and upload it to your site.</p><p>Ghost's theming template files are very easy to work with, and can be picked up in the space of a few hours by anyone who has just a little bit of knowledge of HTML and CSS. Templates from other platforms can also be ported to Ghost with relatively little effort.</p><p>If you want to take a quick look at the theme syntax to see what it's like, you can <a href=\\"https://github.com/tryghost/casper/\\">browse through the files of the default Casper theme</a>. We've added tons of inline code comments to make it easy to learn, and the structure is very readable.</p><figure class=\\"kg-card kg-code-card\\"><pre><code class=\\"language-handlebars\\">{{#post}}
|
||
<article class=\\"article {{post_class}}\\">
|
||
|
||
<h1>{{title}}</h1>
|
||
|
||
{{#if feature_image}}
|
||
<img src=\\"{{feature_image}}\\" alt=\\"Feature image\\" />
|
||
{{/if}}
|
||
|
||
{{content}}
|
||
|
||
</article>
|
||
{{/post}}</code></pre><figcaption>A snippet from a post template</figcaption></figure><p>See? Not that scary! But still completely optional. </p><p>If you're interested in creating your own Ghost theme, check out our extensive <a href=\\"https://ghost.org/docs/themes/\\">theme documentation</a> for a full guide to all the different template variables and helpers which are available.</p>",
|
||
"id": "6194d3ce51e2700162531a76",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 3,
|
||
"slug": "design",
|
||
"title": "Customizing your brand and design settings",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter by published date 4: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "5882",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter by published date 5: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 1,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 1,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter by published date 6: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "4592",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter posts by authors 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "6193c685e792de832cd08141",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Slimer McEctoplasm",
|
||
"profile_image": null,
|
||
"slug": "slimer-mcectoplasm",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/404/",
|
||
"website": null,
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e7",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": " * Lorem
|
||
* Aliquam [http://127.0.0.1:2369/about#nowhere]
|
||
* Tortor [//somewhere.com/link#nowhere]
|
||
* Morbi [http://somewhere.com/link#nowhere]
|
||
* Praesent
|
||
* Pellentesque
|
||
|
||
|
||
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo.
|
||
|
||
1234abcdefghijklDefinition listConsectetur ad",
|
||
"feature_image": null,
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><p><nav><ul><li><a href=\\"#nowhere\\" title=\\"Anchor URL\\">Lorem</a></li><li><a href=\\"http://127.0.0.1:2369/about#nowhere\\" title=\\"Relative URL\\">Aliquam</a></li><li><a href=\\"//somewhere.com/link#nowhere\\" title=\\"Protocol Relative URL\\">Tortor</a></li><li><a href=\\"http://somewhere.com/link#nowhere\\" title=\\"Absolute URL\\">Morbi</a></li><li><a href=\\"#nowhere\\" title=\\"Praesent dapibus, neque id cursus faucibus\\">Praesent</a></li><li><a href=\\"#nowhere\\" title=\\"Pellentesque fermentum dolor\\">Pellentesque</a></li></ul></nav><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr><tr><td>i</td><td>j</td><td>k</td><td>l</td></tr></tbody></table><dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl><ul><li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li><li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</li><li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</li><li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li></ul></p><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e7",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "not-so-short-bit-complex",
|
||
"title": "Not so short, bit complex",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a76",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As discussed in the <a href=\\"http://127.0.0.1:2369/welcome/\\">introduction</a> post, one of the best things about Ghost is just how much you can customize to turn your site into something unique. Everything about your layout and design can be changed, so you're not stuck with yet another clone of a social network profile.</p><p>How far you want to go with customization is completely up to you, there's no right or wrong approach! The majority of people use one of Ghost's built-in themes to get started, and then progress to something more bespoke later on as their site grows. </p><p>The best way to get started is with Ghost's branding settings, where you can set up colors, images and logos to fit with your brand.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/brandsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3456\\" height=\\"2338\\"><figcaption>Ghost Admin → Settings → Branding</figcaption></figure><p>Any Ghost theme that's up to date and compatible with Ghost 4.0 and higher will reflect your branding settings in the preview window, so you can see what your site will look like as you experiment with different options.</p><p>When selecting an accent color, try to choose something which will contrast well with white text. Many themes will use your accent color as the background for buttons, headers and navigational elements. Vibrant colors with a darker hue tend to work best, as a general rule.</p><h2 id=\\"installing-ghost-themes\\">Installing Ghost themes</h2><p>By default, new sites are created with Ghost's friendly publication theme, called Casper. Everything in Casper is optimized to work for the most common types of blog, newsletter and publication that people create with Ghost — so it's a perfect place to start.</p><p>However, there are hundreds of different themes available to install, so you can pick out a look and feel that suits you best.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/themesettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3208\\" height=\\"1618\\"><figcaption>Ghost Admin → Settings → Theme</figcaption></figure><p>Inside Ghost's theme settings you'll find 4 more official themes that can be directly installed and activated. Each theme is suited to slightly different use-cases.</p><ul><li><strong>Casper</strong> <em>(default)</em> — Made for all sorts of blogs and newsletters</li><li><strong>Edition</strong> — A beautiful minimal template for newsletter authors</li><li><strong>Alto</strong> — A slick news/magazine style design for creators</li><li><strong>London</strong> — A light photography theme with a bold grid</li><li><strong>Ease</strong> — A library theme for organizing large content archives</li></ul><p>And if none of those feel quite right, head on over to the <a href=\\"https://ghost.org/themes/\\">Ghost Marketplace</a>, where you'll find a huge variety of both free and premium themes.</p><h2 id=\\"building-something-custom\\">Building something custom</h2><p>Finally, if you want something completely bespoke for your site, you can always build a custom theme from scratch and upload it to your site.</p><p>Ghost's theming template files are very easy to work with, and can be picked up in the space of a few hours by anyone who has just a little bit of knowledge of HTML and CSS. Templates from other platforms can also be ported to Ghost with relatively little effort.</p><p>If you want to take a quick look at the theme syntax to see what it's like, you can <a href=\\"https://github.com/tryghost/casper/\\">browse through the files of the default Casper theme</a>. We've added tons of inline code comments to make it easy to learn, and the structure is very readable.</p><figure class=\\"kg-card kg-code-card\\"><pre><code class=\\"language-handlebars\\">{{#post}}
|
||
<article class=\\"article {{post_class}}\\">
|
||
|
||
<h1>{{title}}</h1>
|
||
|
||
{{#if feature_image}}
|
||
<img src=\\"{{feature_image}}\\" alt=\\"Feature image\\" />
|
||
{{/if}}
|
||
|
||
{{content}}
|
||
|
||
</article>
|
||
{{/post}}</code></pre><figcaption>A snippet from a post template</figcaption></figure><p>See? Not that scary! But still completely optional. </p><p>If you're interested in creating your own Ghost theme, check out our extensive <a href=\\"https://ghost.org/docs/themes/\\">theme documentation</a> for a full guide to all the different template variables and helpers which are available.</p>",
|
||
"id": "6194d3ce51e2700162531a76",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 3,
|
||
"slug": "design",
|
||
"title": "Customizing your brand and design settings",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a75",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/writing-posts-with-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>Ghost comes with a best-in-class editor which does its very best to get out of the way, and let you focus on your content. Don't let its minimal looks fool you, though, beneath the surface lies a powerful editing toolset designed to accommodate the extensive needs of modern creators.</p><p>For many, the base canvas of the Ghost editor will feel familiar. You can start writing as you would expect, highlight content to access the toolbar you would expect, and generally use all of the keyboard shortcuts you would expect.</p><p>Our main focus in building the Ghost editor is to try and make as many things that you hope/expect might work: actually work. </p><ul><li>You can copy and paste raw content from web pages, and Ghost will do its best to correctly preserve the formatting. </li><li>Pasting an image from your clipboard will upload inline.</li><li>Pasting a social media URL will automatically create an embed.</li><li>Highlight a word in the editor and paste a URL from your clipboard on top: Ghost will turn it into a link.</li><li>You can also paste (or write!) Markdown and Ghost will usually be able to auto-convert it into fully editable, formatted content.</li></ul><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/editor.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3182\\" height=\\"1500\\"><figcaption>The Ghost editor. Also available in dark-mode, for late night writing sessions.</figcaption></figure><p>The goal, as much as possible, is for things to work so that you don't have to <em>think</em> so much about the editor. You won't find any disastrous \\"block builders\\" here, where you have to open 6 submenus and choose from 18 different but identical alignment options. That's not what Ghost is about.</p><p>What you will find though, is dynamic cards which allow you to embed rich media into your posts and create beautifully laid out stories.</p><h2 id=\\"using-cards\\">Using cards</h2><p>You can insert dynamic cards inside post content using the <code>+</code> button, which appears on new lines, or by typing <code>/</code> on a new line to trigger the card menu. Many of the choices are simple and intuitive, like bookmark cards, which allow you to create rich links with embedded structured data:</p><figure class=\\"kg-card kg-bookmark-card\\"><a class=\\"kg-bookmark-container\\" href=\\"https://opensubscriptionplatforms.com/\\"><div class=\\"kg-bookmark-content\\"><div class=\\"kg-bookmark-title\\">Open Subscription Platforms</div><div class=\\"kg-bookmark-description\\">A shared movement for independent subscription data.</div><div class=\\"kg-bookmark-metadata\\"><img class=\\"kg-bookmark-icon\\" src=\\"https://opensubscriptionplatforms.com/images/favicon.png\\" alt=\\"\\"><span class=\\"kg-bookmark-author\\">Open Subscription Platforms</span></div></div><div class=\\"kg-bookmark-thumbnail\\"><img src=\\"https://opensubscriptionplatforms.com/images/osp-card.png\\" alt=\\"\\"></div></a></figure><p>or embed cards which make it easy to insert content you want to share with your audience, from external services:</p><figure class=\\"kg-card kg-embed-card\\"><iframe width=\\"200\\" height=\\"113\\" src=\\"https://www.youtube.com/embed/hmH3XMlms8E?feature=oembed\\" frameborder=\\"0\\" allow=\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\\" allowfullscreen></iframe></figure><p>But, dig a little deeper, and you'll also find more advanced cards, like one that only shows up in email newsletters (great for personalized introductions) and a comprehensive set of specialized cards for different types of images and galleries.</p><blockquote>Once you start mixing text and image cards creatively, the whole narrative of the story changes. Suddenly, you're working in a new format.</blockquote><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-xSMqGH7gi6o-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"6000\\" height=\\"4000\\"></figure><p>As it turns out, sometimes pictures and a thousand words go together really well. Telling people a great story often has much more impact if they can feel, even for a moment, as though they were right there with you.</p><figure class=\\"kg-card kg-gallery-card kg-width-wide\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-e4yK8QQlZa0-unsplash.jpg\\" width=\\"4572\\" height=\\"3048\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/steve-carter-Ixp4YhCKZkI-unsplash.jpg\\" width=\\"4032\\" height=\\"2268\\" loading=\\"lazy\\" alt></div></div></div></figure><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/lukasz-szmigiel-jFCViYFYcus-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2560\\" height=\\"1705\\"></figure><figure class=\\"kg-card kg-gallery-card kg-width-wide kg-card-hascaption\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jd-mason-hPiEFq6-Eto-unsplash.jpg\\" width=\\"5184\\" height=\\"3888\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jp-valery-OBpOP9GVH9U-unsplash.jpg\\" width=\\"5472\\" height=\\"3648\\" loading=\\"lazy\\" alt></div></div></div><figcaption>Peaceful places</figcaption></figure><p>Galleries and image cards can be combined in so many different ways — the only limit is your imagination.</p><h2 id=\\"build-workflows-with-snippets\\">Build workflows with snippets</h2><p>One of the most powerful features of the Ghost editor is the ability to create and re-use content snippets. If you've ever used an email client with a concept of <em>saved replies</em> then this will be immediately intuitive.</p><p>To create a snippet, select a piece of content in the editor that you'd like to re-use in future, then click on the snippet icon in the toolbar. Give your snippet a name, and you're all done. Now your snippet will be available from within the card menu, or you can search for it directly using the <code>/</code> command.</p><p>This works really well for saving images you might want to use often, like a company logo or team photo, links to resources you find yourself often linking to, or introductions and passages that you want to remember.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/createsnippet.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2282\\" height=\\"1272\\"></figure><p>You can even build entire post templates or outlines to create a quick, re-usable workflow for publishing over time. Or build custom design elements for your post with an HTML card, and use a snippet to insert it.</p><p>Once you get a few useful snippets set up, it's difficult to go back to the old way of diving through media libraries and trawling for that one thing you know you used somewhere that one time.</p><hr><h2 id=\\"publishing-and-newsletters-the-easy-way\\">Publishing and newsletters the easy way</h2><p>When you're ready to publish, Ghost makes it as simple as possible to deliver your new post to all your existing members. Just hit the <em>Preview</em> link and you'll get a chance to see what your content looks like on Web, Mobile, Email and Social.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/preview.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3166\\" height=\\"2224\\"></figure><p>You can send yourself a test newsletter to make sure everything looks good in your email client, and then hit the <em>Publish</em> button to decide who to deliver it to.</p><p>Ghost comes with a streamlined, optimized email newsletter template that has settings built-in for you to customize the colors and typography. We've spent countless hours refining the template to make sure it works great across all email clients, and performs well for email deliverability.</p><p>So, you don't need to fight the awful process of building a custom email template from scratch. It's all done already!</p><hr><p>The Ghost editor is powerful enough to do whatever you want it to do. With a little exploration, you'll be up and running in no time.</p>",
|
||
"id": "6194d3ce51e2700162531a75",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 5,
|
||
"slug": "write",
|
||
"title": "Writing and managing content in Ghost, an advanced guide",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/write/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a74",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/creating-a-custom-theme.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>What sets Ghost apart from other products is that you can publish content and grow your audience using the same platform. Rather than just endlessly posting and hoping someone is listening, you can track real signups against your work and have them subscribe to be notified of future posts. The feature that makes all this possible is called <em>Portal</em>.</p><p>Portal is an embedded interface for your audience to sign up to your site. It works on every Ghost site, with every theme, and for any type of publisher. </p><p>You can customize the design, content and settings of Portal to suit your site, whether you just want people to sign up to your newsletter — or you're running a full premium publication with user sign-ins and private content.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/portalsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2924\\" height=\\"1810\\"></figure><p>Once people sign up to your site, they'll receive an email confirmation with a link to click. The link acts as an automatic sign-in, so subscribers will be automatically signed-in to your site when they click on it. There are a couple of interesting angles to this:</p><p>Because subscribers are automatically able to sign in and out of your site as registered members: You can (optionally) restrict access to posts and pages depending on whether people are signed-in or not. So if you want to publish some posts for free, but keep some really great stuff for members-only, this can be a great draw to encourage people to sign up!</p><p>Ghost members sign in using email authentication links, so there are no passwords for people to set or forget. You can turn any list of email subscribers into a database of registered members who can sign in to your site. Like magic.</p><p>Portal makes all of this possible, and it appears by default as a floating button in the bottom-right corner of your site. When people are logged out, clicking it will open a sign-up/sign-in window. When members are logged in, clicking the Portal button will open the account menu where they can edit their name, email, and subscription settings.</p><p>The floating Portal button is completely optional. If you prefer, you can add manual links to your content, navigation, or theme to trigger it instead.</p><p>Like this! <a href=\\"#/portal\\">Sign up here</a></p><hr><p>As you start to grow your registered audience, you'll be able to get a sense of who you're publishing <em>for</em> and where those people are coming <em>from</em>. Best of all: You'll have a straightforward, reliable way to connect with people who enjoy your work.</p><p>Social networks go in and out of fashion all the time. Email addresses are timeless.</p><p>Growing your audience is valuable no matter what type of site you run, but if your content <em>is</em> your business, then you might also be interested in <a href=\\"http://127.0.0.1:2369/sell/\\">setting up premium subscriptions</a>.</p>",
|
||
"id": "6194d3ce51e2700162531a74",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "portal",
|
||
"title": "Building your audience with subscriber signups",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/portal/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": false,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a73",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to ",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/organizing-your-content.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>For creators and aspiring entrepreneurs looking to generate a sustainable recurring revenue stream from their creative work, Ghost has built-in payments allowing you to create a subscription commerce business.</p><p>Connect your <a href=\\"https://stripe.com\\">Stripe</a> account to Ghost, and you'll be able to quickly and easily create monthly and yearly premium plans for members to subscribe to, as well as complimentary plans for friends and family.</p><p>Ghost takes <strong>0% payment fees</strong>, so everything you make is yours to keep!</p><p>Using subscriptions, you can build an independent media business like <a href=\\"https://stratechery.com\\">Stratechery</a>, <a href=\\"https://www.theinformation.com\\">The Information</a>, or <a href=\\"https://thebrowser.com\\">The Browser</a>.</p><p>The creator economy is just getting started, and Ghost allows you to build something based on technology that you own and control.</p><figure class=\\"kg-card kg-image-card kg-card-hascaption\\"><a href=\\"https://thebrowser.com\\"><img src=\\"https://static.ghost.org/v4.0.0/images/thebrowser.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"1600\\" height=\\"2000\\"></a><figcaption>The Browser has over 10,000 paying subscribers</figcaption></figure><p>Most successful subscription businesses publish a mix of free and paid posts to attract a new audience, and upsell the most loyal members to a premium offering. You can also mix different access levels within the same post, showing a free preview to logged out members and then, right when you're ready for a cliffhanger, that's a good time to...</p>",
|
||
"id": "6194d3ce51e2700162531a73",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"plaintext": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to keep!
|
||
|
||
Using subscriptions, you can build an independent media business like
|
||
Stratechery [https://stratechery.com], The Information
|
||
[https://www.theinformation.com], or The Browser [https://thebrowser.com].
|
||
|
||
The creator economy is just getting started, and Ghost allows you to build
|
||
something based on technology that you own and control.
|
||
|
||
[https://thebrowser.com]The Browser has over 10,000 paying subscribersMost
|
||
successful subscription businesses publish a mix of free and paid posts to
|
||
attract a new audience, and upsell the most loyal members to a premium offering.
|
||
You can also mix different access levels within the same post, showing a free
|
||
preview to logged out members and then, right when you're ready for a
|
||
cliffhanger, that's a good time to...",
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "sell",
|
||
"title": "Selling premium memberships with recurring revenue",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/sell/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "paid",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a72",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/admin-settings.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As you grow, you'll probably want to start inviting team members and collaborators to your site. Ghost has a number of different user roles for your team:</p><p><strong>Contributors</strong><br>This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are <strong>untrusted</strong> users with the most basic access to your publication.</p><p><strong>Authors</strong><br>Authors are the 2nd user level in Ghost. Authors can write, edit and publish their own posts. Authors are <strong>trusted</strong> users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.</p><p><strong>Editors</strong><br>Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.</p><p><strong>Administrators</strong><br>The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.<br><br><strong>The Owner</strong><br>There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using <a href=\\"https://ghost.org/pricing/\\"><strong>Ghost(Pro)</strong></a>.</p><blockquote><em>Ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.</em></blockquote><hr><p>If you're looking for insights, tips and reference materials to expand your content business, here's 5 top resources to get you started:</p><ul><li><a href=\\"https://ghost.org/blog/how-to-create-a-newsletter/\\"><strong>How to create a premium newsletter (+ some case studies)</strong></a><strong> </strong> <br>Learn how others run successful paid email newsletter products</li><li><strong><a href=\\"https://ghost.org/blog/membership-sites/\\">The ultimate guide to membership websites for creators</a></strong><br>Tips to help you build, launch and grow your new membership business</li><li><strong><a href=\\"https://newsletterguide.org/\\">The Newsletter Guide</a></strong><br>A 201 guide for taking your newsletters to the next level</li><li><a href=\\"https://ghost.org/blog/find-your-niche-creator-economy/\\"><strong>The proven way to find your niche, explained</strong></a><br>Find the overlap and find a monetizable niche that gets noticed</li><li><strong><a href=\\"https://ghost.org/blog/newsletter-referral-programs/\\">Should you launch a referral program? </a></strong><br>Strategies for building a sustainable referral growth machine</li></ul>",
|
||
"id": "6194d3ce51e2700162531a72",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "grow",
|
||
"title": "How to grow your business around an audience",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/grow/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a71",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/app-integrations.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>It's possible to extend your Ghost site and connect it with hundreds of the most popular apps and tools using integrations. </p><p>Whether you need to automatically publish new posts on social media, connect your favorite analytics tool, sync your community or embed forms into your content — our <a href=\\"https://ghost.org/integrations/\\">integrations library</a> has got it all covered with hundreds of integration tutorials.</p><p>Many integrations are as simple as inserting an embed by pasting a link, or copying a snippet of code directly from an app and pasting it into Ghost. Our integration tutorials are used by creators of all kinds to get apps and integrations up and running in no time — no technical knowledge required.</p><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/integrations-icons.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\"></figure><h2 id=\\"zapier\\">Zapier</h2><p>Zapier is a no-code tool that allows you to build powerful automations, and our official integration allows you to connect your Ghost site to more than 1,000 external services.</p><blockquote><strong>Example</strong>: When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).</blockquote><p><strong>Here's a few of the most popular automation templates:</strong> </p><!--kg-card-begin: markdown--><script src=\\"https://zapier.com/apps/embed/widget.js?services=Ghost,-shortcm,-hubspot,-sendpulse,-noticeable,-aweber,-icontact,-facebook-pages,-github,-medium,-slack,-mailchimp,-activecampaign,-twitter,-discourse&container,-convertkit,-drip,-airtable=true&limit=5\\"></script>
|
||
<!--kg-card-end: markdown--><h2 id=\\"custom-integrations\\">Custom integrations</h2><p>For more advanced automation, it's possible to create custom Ghost integrations with dedicated API keys from the Integrations page within Ghost Admin. </p><figure class=\\"kg-card kg-image-card\\"><img src=\\"https://static.ghost.org/v4.0.0/images/iawriter-integration.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2244\\" height=\\"936\\"></figure><p>These custom integrations allow you to use the Ghost API without needing to write code, and create powerful workflows such as sending content from your favorite desktop editor into Ghost as a new draft.</p>",
|
||
"id": "6194d3ce51e2700162531a71",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "integrations",
|
||
"title": "Setting up apps and custom integrations",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/integrations/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e3",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "testing
|
||
mctesters
|
||
|
||
* test
|
||
* line
|
||
* items",
|
||
"feature_image": "http://placekitten.com/500/200",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h2 id=\\"testing\\">testing</h2>
|
||
<p>mctesters</p>
|
||
<ul>
|
||
<li>test</li>
|
||
<li>line</li>
|
||
<li>items</li>
|
||
</ul>
|
||
<!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e3",
|
||
"meta_description": "meta description for short and sweet",
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 0,
|
||
"slug": "short-and-sweet",
|
||
"title": "Short and Sweet",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e1",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "HTML Ipsum Presents
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
|
||
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae,
|
||
ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
|
||
ipsum rutrum or",
|
||
"feature_image": "http://127.0.0.1:2369/content/images/2018/hey.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><img src=\\"http://127.0.0.1:2369/content/images/lol.jpg\\"><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e1",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "ghostly-kitchen-sink",
|
||
"title": "Ghostly Kitchen Sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Array [
|
||
Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
],
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter posts by authors 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "55261",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter posts by tag 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 4,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e7",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": " * Lorem
|
||
* Aliquam [http://127.0.0.1:2369/about#nowhere]
|
||
* Tortor [//somewhere.com/link#nowhere]
|
||
* Morbi [http://somewhere.com/link#nowhere]
|
||
* Praesent
|
||
* Pellentesque
|
||
|
||
|
||
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo.
|
||
|
||
1234abcdefghijklDefinition listConsectetur ad",
|
||
"feature_image": null,
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><p><nav><ul><li><a href=\\"#nowhere\\" title=\\"Anchor URL\\">Lorem</a></li><li><a href=\\"http://127.0.0.1:2369/about#nowhere\\" title=\\"Relative URL\\">Aliquam</a></li><li><a href=\\"//somewhere.com/link#nowhere\\" title=\\"Protocol Relative URL\\">Tortor</a></li><li><a href=\\"http://somewhere.com/link#nowhere\\" title=\\"Absolute URL\\">Morbi</a></li><li><a href=\\"#nowhere\\" title=\\"Praesent dapibus, neque id cursus faucibus\\">Praesent</a></li><li><a href=\\"#nowhere\\" title=\\"Pellentesque fermentum dolor\\">Pellentesque</a></li></ul></nav><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr><tr><td>i</td><td>j</td><td>k</td><td>l</td></tr></tbody></table><dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl><ul><li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li><li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</li><li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</li><li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li></ul></p><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e7",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_tag": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "not-so-short-bit-complex",
|
||
"tags": Array [],
|
||
"title": "Not so short, bit complex",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e3",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "testing
|
||
mctesters
|
||
|
||
* test
|
||
* line
|
||
* items",
|
||
"feature_image": "http://placekitten.com/500/200",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h2 id=\\"testing\\">testing</h2>
|
||
<p>mctesters</p>
|
||
<ul>
|
||
<li>test</li>
|
||
<li>line</li>
|
||
<li>items</li>
|
||
</ul>
|
||
<!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e3",
|
||
"meta_description": "meta description for short and sweet",
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": null,
|
||
"id": "618ba1fdbe2896088840a675",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "chorizo",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "chorizo",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/chorizo/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 0,
|
||
"slug": "short-and-sweet",
|
||
"tags": Array [
|
||
Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": null,
|
||
"id": "618ba1fdbe2896088840a675",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "chorizo",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "chorizo",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/chorizo/",
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
"title": "Short and Sweet",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e1",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "HTML Ipsum Presents
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
|
||
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae,
|
||
ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
|
||
ipsum rutrum or",
|
||
"feature_image": "http://127.0.0.1:2369/content/images/2018/hey.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><img src=\\"http://127.0.0.1:2369/content/images/lol.jpg\\"><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e1",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "ghostly-kitchen-sink",
|
||
"tags": Array [
|
||
Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": null,
|
||
"id": "9451f5fca366002ebd5dbea6",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "bacon",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "bacon",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/bacon/",
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
"title": "Ghostly Kitchen Sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"tags": Array [
|
||
Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": null,
|
||
"id": "9451f5fca366002ebd5dbea6",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "bacon",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "bacon",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/bacon/",
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can filter posts by tag 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "14037",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can include relations 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"tags": Any<Array>,
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a76",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As discussed in the <a href=\\"http://127.0.0.1:2369/welcome/\\">introduction</a> post, one of the best things about Ghost is just how much you can customize to turn your site into something unique. Everything about your layout and design can be changed, so you're not stuck with yet another clone of a social network profile.</p><p>How far you want to go with customization is completely up to you, there's no right or wrong approach! The majority of people use one of Ghost's built-in themes to get started, and then progress to something more bespoke later on as their site grows. </p><p>The best way to get started is with Ghost's branding settings, where you can set up colors, images and logos to fit with your brand.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/brandsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3456\\" height=\\"2338\\"><figcaption>Ghost Admin → Settings → Branding</figcaption></figure><p>Any Ghost theme that's up to date and compatible with Ghost 4.0 and higher will reflect your branding settings in the preview window, so you can see what your site will look like as you experiment with different options.</p><p>When selecting an accent color, try to choose something which will contrast well with white text. Many themes will use your accent color as the background for buttons, headers and navigational elements. Vibrant colors with a darker hue tend to work best, as a general rule.</p><h2 id=\\"installing-ghost-themes\\">Installing Ghost themes</h2><p>By default, new sites are created with Ghost's friendly publication theme, called Casper. Everything in Casper is optimized to work for the most common types of blog, newsletter and publication that people create with Ghost — so it's a perfect place to start.</p><p>However, there are hundreds of different themes available to install, so you can pick out a look and feel that suits you best.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/themesettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3208\\" height=\\"1618\\"><figcaption>Ghost Admin → Settings → Theme</figcaption></figure><p>Inside Ghost's theme settings you'll find 4 more official themes that can be directly installed and activated. Each theme is suited to slightly different use-cases.</p><ul><li><strong>Casper</strong> <em>(default)</em> — Made for all sorts of blogs and newsletters</li><li><strong>Edition</strong> — A beautiful minimal template for newsletter authors</li><li><strong>Alto</strong> — A slick news/magazine style design for creators</li><li><strong>London</strong> — A light photography theme with a bold grid</li><li><strong>Ease</strong> — A library theme for organizing large content archives</li></ul><p>And if none of those feel quite right, head on over to the <a href=\\"https://ghost.org/themes/\\">Ghost Marketplace</a>, where you'll find a huge variety of both free and premium themes.</p><h2 id=\\"building-something-custom\\">Building something custom</h2><p>Finally, if you want something completely bespoke for your site, you can always build a custom theme from scratch and upload it to your site.</p><p>Ghost's theming template files are very easy to work with, and can be picked up in the space of a few hours by anyone who has just a little bit of knowledge of HTML and CSS. Templates from other platforms can also be ported to Ghost with relatively little effort.</p><p>If you want to take a quick look at the theme syntax to see what it's like, you can <a href=\\"https://github.com/tryghost/casper/\\">browse through the files of the default Casper theme</a>. We've added tons of inline code comments to make it easy to learn, and the structure is very readable.</p><figure class=\\"kg-card kg-code-card\\"><pre><code class=\\"language-handlebars\\">{{#post}}
|
||
<article class=\\"article {{post_class}}\\">
|
||
|
||
<h1>{{title}}</h1>
|
||
|
||
{{#if feature_image}}
|
||
<img src=\\"{{feature_image}}\\" alt=\\"Feature image\\" />
|
||
{{/if}}
|
||
|
||
{{content}}
|
||
|
||
</article>
|
||
{{/post}}</code></pre><figcaption>A snippet from a post template</figcaption></figure><p>See? Not that scary! But still completely optional. </p><p>If you're interested in creating your own Ghost theme, check out our extensive <a href=\\"https://ghost.org/docs/themes/\\">theme documentation</a> for a full guide to all the different template variables and helpers which are available.</p>",
|
||
"id": "6194d3ce51e2700162531a76",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 3,
|
||
"slug": "design",
|
||
"tags": Any<Array>,
|
||
"title": "Customizing your brand and design settings",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a75",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/writing-posts-with-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>Ghost comes with a best-in-class editor which does its very best to get out of the way, and let you focus on your content. Don't let its minimal looks fool you, though, beneath the surface lies a powerful editing toolset designed to accommodate the extensive needs of modern creators.</p><p>For many, the base canvas of the Ghost editor will feel familiar. You can start writing as you would expect, highlight content to access the toolbar you would expect, and generally use all of the keyboard shortcuts you would expect.</p><p>Our main focus in building the Ghost editor is to try and make as many things that you hope/expect might work: actually work. </p><ul><li>You can copy and paste raw content from web pages, and Ghost will do its best to correctly preserve the formatting. </li><li>Pasting an image from your clipboard will upload inline.</li><li>Pasting a social media URL will automatically create an embed.</li><li>Highlight a word in the editor and paste a URL from your clipboard on top: Ghost will turn it into a link.</li><li>You can also paste (or write!) Markdown and Ghost will usually be able to auto-convert it into fully editable, formatted content.</li></ul><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/editor.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3182\\" height=\\"1500\\"><figcaption>The Ghost editor. Also available in dark-mode, for late night writing sessions.</figcaption></figure><p>The goal, as much as possible, is for things to work so that you don't have to <em>think</em> so much about the editor. You won't find any disastrous \\"block builders\\" here, where you have to open 6 submenus and choose from 18 different but identical alignment options. That's not what Ghost is about.</p><p>What you will find though, is dynamic cards which allow you to embed rich media into your posts and create beautifully laid out stories.</p><h2 id=\\"using-cards\\">Using cards</h2><p>You can insert dynamic cards inside post content using the <code>+</code> button, which appears on new lines, or by typing <code>/</code> on a new line to trigger the card menu. Many of the choices are simple and intuitive, like bookmark cards, which allow you to create rich links with embedded structured data:</p><figure class=\\"kg-card kg-bookmark-card\\"><a class=\\"kg-bookmark-container\\" href=\\"https://opensubscriptionplatforms.com/\\"><div class=\\"kg-bookmark-content\\"><div class=\\"kg-bookmark-title\\">Open Subscription Platforms</div><div class=\\"kg-bookmark-description\\">A shared movement for independent subscription data.</div><div class=\\"kg-bookmark-metadata\\"><img class=\\"kg-bookmark-icon\\" src=\\"https://opensubscriptionplatforms.com/images/favicon.png\\" alt=\\"\\"><span class=\\"kg-bookmark-author\\">Open Subscription Platforms</span></div></div><div class=\\"kg-bookmark-thumbnail\\"><img src=\\"https://opensubscriptionplatforms.com/images/osp-card.png\\" alt=\\"\\"></div></a></figure><p>or embed cards which make it easy to insert content you want to share with your audience, from external services:</p><figure class=\\"kg-card kg-embed-card\\"><iframe width=\\"200\\" height=\\"113\\" src=\\"https://www.youtube.com/embed/hmH3XMlms8E?feature=oembed\\" frameborder=\\"0\\" allow=\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\\" allowfullscreen></iframe></figure><p>But, dig a little deeper, and you'll also find more advanced cards, like one that only shows up in email newsletters (great for personalized introductions) and a comprehensive set of specialized cards for different types of images and galleries.</p><blockquote>Once you start mixing text and image cards creatively, the whole narrative of the story changes. Suddenly, you're working in a new format.</blockquote><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-xSMqGH7gi6o-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"6000\\" height=\\"4000\\"></figure><p>As it turns out, sometimes pictures and a thousand words go together really well. Telling people a great story often has much more impact if they can feel, even for a moment, as though they were right there with you.</p><figure class=\\"kg-card kg-gallery-card kg-width-wide\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-e4yK8QQlZa0-unsplash.jpg\\" width=\\"4572\\" height=\\"3048\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/steve-carter-Ixp4YhCKZkI-unsplash.jpg\\" width=\\"4032\\" height=\\"2268\\" loading=\\"lazy\\" alt></div></div></div></figure><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/lukasz-szmigiel-jFCViYFYcus-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2560\\" height=\\"1705\\"></figure><figure class=\\"kg-card kg-gallery-card kg-width-wide kg-card-hascaption\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jd-mason-hPiEFq6-Eto-unsplash.jpg\\" width=\\"5184\\" height=\\"3888\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jp-valery-OBpOP9GVH9U-unsplash.jpg\\" width=\\"5472\\" height=\\"3648\\" loading=\\"lazy\\" alt></div></div></div><figcaption>Peaceful places</figcaption></figure><p>Galleries and image cards can be combined in so many different ways — the only limit is your imagination.</p><h2 id=\\"build-workflows-with-snippets\\">Build workflows with snippets</h2><p>One of the most powerful features of the Ghost editor is the ability to create and re-use content snippets. If you've ever used an email client with a concept of <em>saved replies</em> then this will be immediately intuitive.</p><p>To create a snippet, select a piece of content in the editor that you'd like to re-use in future, then click on the snippet icon in the toolbar. Give your snippet a name, and you're all done. Now your snippet will be available from within the card menu, or you can search for it directly using the <code>/</code> command.</p><p>This works really well for saving images you might want to use often, like a company logo or team photo, links to resources you find yourself often linking to, or introductions and passages that you want to remember.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/createsnippet.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2282\\" height=\\"1272\\"></figure><p>You can even build entire post templates or outlines to create a quick, re-usable workflow for publishing over time. Or build custom design elements for your post with an HTML card, and use a snippet to insert it.</p><p>Once you get a few useful snippets set up, it's difficult to go back to the old way of diving through media libraries and trawling for that one thing you know you used somewhere that one time.</p><hr><h2 id=\\"publishing-and-newsletters-the-easy-way\\">Publishing and newsletters the easy way</h2><p>When you're ready to publish, Ghost makes it as simple as possible to deliver your new post to all your existing members. Just hit the <em>Preview</em> link and you'll get a chance to see what your content looks like on Web, Mobile, Email and Social.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/preview.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3166\\" height=\\"2224\\"></figure><p>You can send yourself a test newsletter to make sure everything looks good in your email client, and then hit the <em>Publish</em> button to decide who to deliver it to.</p><p>Ghost comes with a streamlined, optimized email newsletter template that has settings built-in for you to customize the colors and typography. We've spent countless hours refining the template to make sure it works great across all email clients, and performs well for email deliverability.</p><p>So, you don't need to fight the awful process of building a custom email template from scratch. It's all done already!</p><hr><p>The Ghost editor is powerful enough to do whatever you want it to do. With a little exploration, you'll be up and running in no time.</p>",
|
||
"id": "6194d3ce51e2700162531a75",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 5,
|
||
"slug": "write",
|
||
"tags": Any<Array>,
|
||
"title": "Writing and managing content in Ghost, an advanced guide",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/write/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a74",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/creating-a-custom-theme.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>What sets Ghost apart from other products is that you can publish content and grow your audience using the same platform. Rather than just endlessly posting and hoping someone is listening, you can track real signups against your work and have them subscribe to be notified of future posts. The feature that makes all this possible is called <em>Portal</em>.</p><p>Portal is an embedded interface for your audience to sign up to your site. It works on every Ghost site, with every theme, and for any type of publisher. </p><p>You can customize the design, content and settings of Portal to suit your site, whether you just want people to sign up to your newsletter — or you're running a full premium publication with user sign-ins and private content.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/portalsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2924\\" height=\\"1810\\"></figure><p>Once people sign up to your site, they'll receive an email confirmation with a link to click. The link acts as an automatic sign-in, so subscribers will be automatically signed-in to your site when they click on it. There are a couple of interesting angles to this:</p><p>Because subscribers are automatically able to sign in and out of your site as registered members: You can (optionally) restrict access to posts and pages depending on whether people are signed-in or not. So if you want to publish some posts for free, but keep some really great stuff for members-only, this can be a great draw to encourage people to sign up!</p><p>Ghost members sign in using email authentication links, so there are no passwords for people to set or forget. You can turn any list of email subscribers into a database of registered members who can sign in to your site. Like magic.</p><p>Portal makes all of this possible, and it appears by default as a floating button in the bottom-right corner of your site. When people are logged out, clicking it will open a sign-up/sign-in window. When members are logged in, clicking the Portal button will open the account menu where they can edit their name, email, and subscription settings.</p><p>The floating Portal button is completely optional. If you prefer, you can add manual links to your content, navigation, or theme to trigger it instead.</p><p>Like this! <a href=\\"#/portal\\">Sign up here</a></p><hr><p>As you start to grow your registered audience, you'll be able to get a sense of who you're publishing <em>for</em> and where those people are coming <em>from</em>. Best of all: You'll have a straightforward, reliable way to connect with people who enjoy your work.</p><p>Social networks go in and out of fashion all the time. Email addresses are timeless.</p><p>Growing your audience is valuable no matter what type of site you run, but if your content <em>is</em> your business, then you might also be interested in <a href=\\"http://127.0.0.1:2369/sell/\\">setting up premium subscriptions</a>.</p>",
|
||
"id": "6194d3ce51e2700162531a74",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "portal",
|
||
"tags": Any<Array>,
|
||
"title": "Building your audience with subscriber signups",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/portal/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": false,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a73",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to ",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/organizing-your-content.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>For creators and aspiring entrepreneurs looking to generate a sustainable recurring revenue stream from their creative work, Ghost has built-in payments allowing you to create a subscription commerce business.</p><p>Connect your <a href=\\"https://stripe.com\\">Stripe</a> account to Ghost, and you'll be able to quickly and easily create monthly and yearly premium plans for members to subscribe to, as well as complimentary plans for friends and family.</p><p>Ghost takes <strong>0% payment fees</strong>, so everything you make is yours to keep!</p><p>Using subscriptions, you can build an independent media business like <a href=\\"https://stratechery.com\\">Stratechery</a>, <a href=\\"https://www.theinformation.com\\">The Information</a>, or <a href=\\"https://thebrowser.com\\">The Browser</a>.</p><p>The creator economy is just getting started, and Ghost allows you to build something based on technology that you own and control.</p><figure class=\\"kg-card kg-image-card kg-card-hascaption\\"><a href=\\"https://thebrowser.com\\"><img src=\\"https://static.ghost.org/v4.0.0/images/thebrowser.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"1600\\" height=\\"2000\\"></a><figcaption>The Browser has over 10,000 paying subscribers</figcaption></figure><p>Most successful subscription businesses publish a mix of free and paid posts to attract a new audience, and upsell the most loyal members to a premium offering. You can also mix different access levels within the same post, showing a free preview to logged out members and then, right when you're ready for a cliffhanger, that's a good time to...</p>",
|
||
"id": "6194d3ce51e2700162531a73",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"plaintext": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to keep!
|
||
|
||
Using subscriptions, you can build an independent media business like
|
||
Stratechery [https://stratechery.com], The Information
|
||
[https://www.theinformation.com], or The Browser [https://thebrowser.com].
|
||
|
||
The creator economy is just getting started, and Ghost allows you to build
|
||
something based on technology that you own and control.
|
||
|
||
[https://thebrowser.com]The Browser has over 10,000 paying subscribersMost
|
||
successful subscription businesses publish a mix of free and paid posts to
|
||
attract a new audience, and upsell the most loyal members to a premium offering.
|
||
You can also mix different access levels within the same post, showing a free
|
||
preview to logged out members and then, right when you're ready for a
|
||
cliffhanger, that's a good time to...",
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "sell",
|
||
"tags": Any<Array>,
|
||
"title": "Selling premium memberships with recurring revenue",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/sell/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "paid",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a72",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/admin-settings.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As you grow, you'll probably want to start inviting team members and collaborators to your site. Ghost has a number of different user roles for your team:</p><p><strong>Contributors</strong><br>This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are <strong>untrusted</strong> users with the most basic access to your publication.</p><p><strong>Authors</strong><br>Authors are the 2nd user level in Ghost. Authors can write, edit and publish their own posts. Authors are <strong>trusted</strong> users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.</p><p><strong>Editors</strong><br>Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.</p><p><strong>Administrators</strong><br>The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.<br><br><strong>The Owner</strong><br>There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using <a href=\\"https://ghost.org/pricing/\\"><strong>Ghost(Pro)</strong></a>.</p><blockquote><em>Ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.</em></blockquote><hr><p>If you're looking for insights, tips and reference materials to expand your content business, here's 5 top resources to get you started:</p><ul><li><a href=\\"https://ghost.org/blog/how-to-create-a-newsletter/\\"><strong>How to create a premium newsletter (+ some case studies)</strong></a><strong> </strong> <br>Learn how others run successful paid email newsletter products</li><li><strong><a href=\\"https://ghost.org/blog/membership-sites/\\">The ultimate guide to membership websites for creators</a></strong><br>Tips to help you build, launch and grow your new membership business</li><li><strong><a href=\\"https://newsletterguide.org/\\">The Newsletter Guide</a></strong><br>A 201 guide for taking your newsletters to the next level</li><li><a href=\\"https://ghost.org/blog/find-your-niche-creator-economy/\\"><strong>The proven way to find your niche, explained</strong></a><br>Find the overlap and find a monetizable niche that gets noticed</li><li><strong><a href=\\"https://ghost.org/blog/newsletter-referral-programs/\\">Should you launch a referral program? </a></strong><br>Strategies for building a sustainable referral growth machine</li></ul>",
|
||
"id": "6194d3ce51e2700162531a72",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "grow",
|
||
"tags": Any<Array>,
|
||
"title": "How to grow your business around an audience",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/grow/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a71",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/app-integrations.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>It's possible to extend your Ghost site and connect it with hundreds of the most popular apps and tools using integrations. </p><p>Whether you need to automatically publish new posts on social media, connect your favorite analytics tool, sync your community or embed forms into your content — our <a href=\\"https://ghost.org/integrations/\\">integrations library</a> has got it all covered with hundreds of integration tutorials.</p><p>Many integrations are as simple as inserting an embed by pasting a link, or copying a snippet of code directly from an app and pasting it into Ghost. Our integration tutorials are used by creators of all kinds to get apps and integrations up and running in no time — no technical knowledge required.</p><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/integrations-icons.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\"></figure><h2 id=\\"zapier\\">Zapier</h2><p>Zapier is a no-code tool that allows you to build powerful automations, and our official integration allows you to connect your Ghost site to more than 1,000 external services.</p><blockquote><strong>Example</strong>: When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).</blockquote><p><strong>Here's a few of the most popular automation templates:</strong> </p><!--kg-card-begin: markdown--><script src=\\"https://zapier.com/apps/embed/widget.js?services=Ghost,-shortcm,-hubspot,-sendpulse,-noticeable,-aweber,-icontact,-facebook-pages,-github,-medium,-slack,-mailchimp,-activecampaign,-twitter,-discourse&container,-convertkit,-drip,-airtable=true&limit=5\\"></script>
|
||
<!--kg-card-end: markdown--><h2 id=\\"custom-integrations\\">Custom integrations</h2><p>For more advanced automation, it's possible to create custom Ghost integrations with dedicated API keys from the Integrations page within Ghost Admin. </p><figure class=\\"kg-card kg-image-card\\"><img src=\\"https://static.ghost.org/v4.0.0/images/iawriter-integration.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2244\\" height=\\"936\\"></figure><p>These custom integrations allow you to use the Ghost API without needing to write code, and create powerful workflows such as sending content from your favorite desktop editor into Ghost as a new draft.</p>",
|
||
"id": "6194d3ce51e2700162531a71",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "You can delete this user to remove all the welcome posts",
|
||
"cover_image": null,
|
||
"facebook": "ghost",
|
||
"id": "5951f5fca366002ebd5dbef7",
|
||
"location": "The Internet",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Ghost",
|
||
"profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
|
||
"slug": "ghost",
|
||
"twitter": "ghost",
|
||
"url": "http://127.0.0.1:2369/author/ghost/",
|
||
"website": "https://ghost.org",
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": null,
|
||
"feature_image": null,
|
||
"id": "6194d3ce51e2700162531a70",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Getting Started",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "getting-started",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/getting-started/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "integrations",
|
||
"tags": Any<Array>,
|
||
"title": "Setting up apps and custom integrations",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/integrations/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e7",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": " * Lorem
|
||
* Aliquam [http://127.0.0.1:2369/about#nowhere]
|
||
* Tortor [//somewhere.com/link#nowhere]
|
||
* Morbi [http://somewhere.com/link#nowhere]
|
||
* Praesent
|
||
* Pellentesque
|
||
|
||
|
||
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo.
|
||
|
||
1234abcdefghijklDefinition listConsectetur ad",
|
||
"feature_image": null,
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><p><nav><ul><li><a href=\\"#nowhere\\" title=\\"Anchor URL\\">Lorem</a></li><li><a href=\\"http://127.0.0.1:2369/about#nowhere\\" title=\\"Relative URL\\">Aliquam</a></li><li><a href=\\"//somewhere.com/link#nowhere\\" title=\\"Protocol Relative URL\\">Tortor</a></li><li><a href=\\"http://somewhere.com/link#nowhere\\" title=\\"Absolute URL\\">Morbi</a></li><li><a href=\\"#nowhere\\" title=\\"Praesent dapibus, neque id cursus faucibus\\">Praesent</a></li><li><a href=\\"#nowhere\\" title=\\"Pellentesque fermentum dolor\\">Pellentesque</a></li></ul></nav><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr><tr><td>i</td><td>j</td><td>k</td><td>l</td></tr></tbody></table><dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl><ul><li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li><li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</li><li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</li><li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li></ul></p><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e7",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"primary_tag": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "not-so-short-bit-complex",
|
||
"tags": Any<Array>,
|
||
"title": "Not so short, bit complex",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e3",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "testing
|
||
mctesters
|
||
|
||
* test
|
||
* line
|
||
* items",
|
||
"feature_image": "http://placekitten.com/500/200",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h2 id=\\"testing\\">testing</h2>
|
||
<p>mctesters</p>
|
||
<ul>
|
||
<li>test</li>
|
||
<li>line</li>
|
||
<li>items</li>
|
||
</ul>
|
||
<!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e3",
|
||
"meta_description": "meta description for short and sweet",
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": null,
|
||
"id": "618ba1fdbe2896088840a675",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "chorizo",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "chorizo",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/chorizo/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 0,
|
||
"slug": "short-and-sweet",
|
||
"tags": Any<Array>,
|
||
"title": "Short and Sweet",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e1",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "HTML Ipsum Presents
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
|
||
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae,
|
||
ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
|
||
ipsum rutrum or",
|
||
"feature_image": "http://127.0.0.1:2369/content/images/2018/hey.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><img src=\\"http://127.0.0.1:2369/content/images/lol.jpg\\"><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e1",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "ghostly-kitchen-sink",
|
||
"tags": Any<Array>,
|
||
"title": "Ghostly Kitchen Sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"authors": Any<Array>,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"primary_author": Object {
|
||
"bio": "bio",
|
||
"cover_image": null,
|
||
"facebook": null,
|
||
"id": "1",
|
||
"location": "location",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "Joe Bloggs",
|
||
"profile_image": "https://example.com/super_photo.jpg",
|
||
"slug": "joe-bloggs",
|
||
"twitter": null,
|
||
"url": "http://127.0.0.1:2369/author/joe-bloggs/",
|
||
"website": null,
|
||
},
|
||
"primary_tag": Object {
|
||
"accent_color": null,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"description": "description",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"id": "618ba1febe2896088840a6db",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"name": "kitchen sink",
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"slug": "kitchen-sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"url": "http://127.0.0.1:2369/tag/kitchen-sink/",
|
||
"visibility": "public",
|
||
},
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"tags": Any<Array>,
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can include relations 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "65590",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request a single post 1: [body] 1`] = `
|
||
Object {
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request a single post 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "2377",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request fields of posts 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/write/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/portal/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/sell/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/grow/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/integrations/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
},
|
||
Object {
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request fields of posts 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "587",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request posts 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a76",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As discussed in the <a href=\\"http://127.0.0.1:2369/welcome/\\">introduction</a> post, one of the best things about Ghost is just how much you can customize to turn your site into something unique. Everything about your layout and design can be changed, so you're not stuck with yet another clone of a social network profile.</p><p>How far you want to go with customization is completely up to you, there's no right or wrong approach! The majority of people use one of Ghost's built-in themes to get started, and then progress to something more bespoke later on as their site grows. </p><p>The best way to get started is with Ghost's branding settings, where you can set up colors, images and logos to fit with your brand.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/brandsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3456\\" height=\\"2338\\"><figcaption>Ghost Admin → Settings → Branding</figcaption></figure><p>Any Ghost theme that's up to date and compatible with Ghost 4.0 and higher will reflect your branding settings in the preview window, so you can see what your site will look like as you experiment with different options.</p><p>When selecting an accent color, try to choose something which will contrast well with white text. Many themes will use your accent color as the background for buttons, headers and navigational elements. Vibrant colors with a darker hue tend to work best, as a general rule.</p><h2 id=\\"installing-ghost-themes\\">Installing Ghost themes</h2><p>By default, new sites are created with Ghost's friendly publication theme, called Casper. Everything in Casper is optimized to work for the most common types of blog, newsletter and publication that people create with Ghost — so it's a perfect place to start.</p><p>However, there are hundreds of different themes available to install, so you can pick out a look and feel that suits you best.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/themesettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3208\\" height=\\"1618\\"><figcaption>Ghost Admin → Settings → Theme</figcaption></figure><p>Inside Ghost's theme settings you'll find 4 more official themes that can be directly installed and activated. Each theme is suited to slightly different use-cases.</p><ul><li><strong>Casper</strong> <em>(default)</em> — Made for all sorts of blogs and newsletters</li><li><strong>Edition</strong> — A beautiful minimal template for newsletter authors</li><li><strong>Alto</strong> — A slick news/magazine style design for creators</li><li><strong>London</strong> — A light photography theme with a bold grid</li><li><strong>Ease</strong> — A library theme for organizing large content archives</li></ul><p>And if none of those feel quite right, head on over to the <a href=\\"https://ghost.org/themes/\\">Ghost Marketplace</a>, where you'll find a huge variety of both free and premium themes.</p><h2 id=\\"building-something-custom\\">Building something custom</h2><p>Finally, if you want something completely bespoke for your site, you can always build a custom theme from scratch and upload it to your site.</p><p>Ghost's theming template files are very easy to work with, and can be picked up in the space of a few hours by anyone who has just a little bit of knowledge of HTML and CSS. Templates from other platforms can also be ported to Ghost with relatively little effort.</p><p>If you want to take a quick look at the theme syntax to see what it's like, you can <a href=\\"https://github.com/tryghost/casper/\\">browse through the files of the default Casper theme</a>. We've added tons of inline code comments to make it easy to learn, and the structure is very readable.</p><figure class=\\"kg-card kg-code-card\\"><pre><code class=\\"language-handlebars\\">{{#post}}
|
||
<article class=\\"article {{post_class}}\\">
|
||
|
||
<h1>{{title}}</h1>
|
||
|
||
{{#if feature_image}}
|
||
<img src=\\"{{feature_image}}\\" alt=\\"Feature image\\" />
|
||
{{/if}}
|
||
|
||
{{content}}
|
||
|
||
</article>
|
||
{{/post}}</code></pre><figcaption>A snippet from a post template</figcaption></figure><p>See? Not that scary! But still completely optional. </p><p>If you're interested in creating your own Ghost theme, check out our extensive <a href=\\"https://ghost.org/docs/themes/\\">theme documentation</a> for a full guide to all the different template variables and helpers which are available.</p>",
|
||
"id": "6194d3ce51e2700162531a76",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 3,
|
||
"slug": "design",
|
||
"title": "Customizing your brand and design settings",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a75",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/writing-posts-with-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>Ghost comes with a best-in-class editor which does its very best to get out of the way, and let you focus on your content. Don't let its minimal looks fool you, though, beneath the surface lies a powerful editing toolset designed to accommodate the extensive needs of modern creators.</p><p>For many, the base canvas of the Ghost editor will feel familiar. You can start writing as you would expect, highlight content to access the toolbar you would expect, and generally use all of the keyboard shortcuts you would expect.</p><p>Our main focus in building the Ghost editor is to try and make as many things that you hope/expect might work: actually work. </p><ul><li>You can copy and paste raw content from web pages, and Ghost will do its best to correctly preserve the formatting. </li><li>Pasting an image from your clipboard will upload inline.</li><li>Pasting a social media URL will automatically create an embed.</li><li>Highlight a word in the editor and paste a URL from your clipboard on top: Ghost will turn it into a link.</li><li>You can also paste (or write!) Markdown and Ghost will usually be able to auto-convert it into fully editable, formatted content.</li></ul><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/editor.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3182\\" height=\\"1500\\"><figcaption>The Ghost editor. Also available in dark-mode, for late night writing sessions.</figcaption></figure><p>The goal, as much as possible, is for things to work so that you don't have to <em>think</em> so much about the editor. You won't find any disastrous \\"block builders\\" here, where you have to open 6 submenus and choose from 18 different but identical alignment options. That's not what Ghost is about.</p><p>What you will find though, is dynamic cards which allow you to embed rich media into your posts and create beautifully laid out stories.</p><h2 id=\\"using-cards\\">Using cards</h2><p>You can insert dynamic cards inside post content using the <code>+</code> button, which appears on new lines, or by typing <code>/</code> on a new line to trigger the card menu. Many of the choices are simple and intuitive, like bookmark cards, which allow you to create rich links with embedded structured data:</p><figure class=\\"kg-card kg-bookmark-card\\"><a class=\\"kg-bookmark-container\\" href=\\"https://opensubscriptionplatforms.com/\\"><div class=\\"kg-bookmark-content\\"><div class=\\"kg-bookmark-title\\">Open Subscription Platforms</div><div class=\\"kg-bookmark-description\\">A shared movement for independent subscription data.</div><div class=\\"kg-bookmark-metadata\\"><img class=\\"kg-bookmark-icon\\" src=\\"https://opensubscriptionplatforms.com/images/favicon.png\\" alt=\\"\\"><span class=\\"kg-bookmark-author\\">Open Subscription Platforms</span></div></div><div class=\\"kg-bookmark-thumbnail\\"><img src=\\"https://opensubscriptionplatforms.com/images/osp-card.png\\" alt=\\"\\"></div></a></figure><p>or embed cards which make it easy to insert content you want to share with your audience, from external services:</p><figure class=\\"kg-card kg-embed-card\\"><iframe width=\\"200\\" height=\\"113\\" src=\\"https://www.youtube.com/embed/hmH3XMlms8E?feature=oembed\\" frameborder=\\"0\\" allow=\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\\" allowfullscreen></iframe></figure><p>But, dig a little deeper, and you'll also find more advanced cards, like one that only shows up in email newsletters (great for personalized introductions) and a comprehensive set of specialized cards for different types of images and galleries.</p><blockquote>Once you start mixing text and image cards creatively, the whole narrative of the story changes. Suddenly, you're working in a new format.</blockquote><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-xSMqGH7gi6o-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"6000\\" height=\\"4000\\"></figure><p>As it turns out, sometimes pictures and a thousand words go together really well. Telling people a great story often has much more impact if they can feel, even for a moment, as though they were right there with you.</p><figure class=\\"kg-card kg-gallery-card kg-width-wide\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-e4yK8QQlZa0-unsplash.jpg\\" width=\\"4572\\" height=\\"3048\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/steve-carter-Ixp4YhCKZkI-unsplash.jpg\\" width=\\"4032\\" height=\\"2268\\" loading=\\"lazy\\" alt></div></div></div></figure><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/lukasz-szmigiel-jFCViYFYcus-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2560\\" height=\\"1705\\"></figure><figure class=\\"kg-card kg-gallery-card kg-width-wide kg-card-hascaption\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jd-mason-hPiEFq6-Eto-unsplash.jpg\\" width=\\"5184\\" height=\\"3888\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jp-valery-OBpOP9GVH9U-unsplash.jpg\\" width=\\"5472\\" height=\\"3648\\" loading=\\"lazy\\" alt></div></div></div><figcaption>Peaceful places</figcaption></figure><p>Galleries and image cards can be combined in so many different ways — the only limit is your imagination.</p><h2 id=\\"build-workflows-with-snippets\\">Build workflows with snippets</h2><p>One of the most powerful features of the Ghost editor is the ability to create and re-use content snippets. If you've ever used an email client with a concept of <em>saved replies</em> then this will be immediately intuitive.</p><p>To create a snippet, select a piece of content in the editor that you'd like to re-use in future, then click on the snippet icon in the toolbar. Give your snippet a name, and you're all done. Now your snippet will be available from within the card menu, or you can search for it directly using the <code>/</code> command.</p><p>This works really well for saving images you might want to use often, like a company logo or team photo, links to resources you find yourself often linking to, or introductions and passages that you want to remember.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/createsnippet.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2282\\" height=\\"1272\\"></figure><p>You can even build entire post templates or outlines to create a quick, re-usable workflow for publishing over time. Or build custom design elements for your post with an HTML card, and use a snippet to insert it.</p><p>Once you get a few useful snippets set up, it's difficult to go back to the old way of diving through media libraries and trawling for that one thing you know you used somewhere that one time.</p><hr><h2 id=\\"publishing-and-newsletters-the-easy-way\\">Publishing and newsletters the easy way</h2><p>When you're ready to publish, Ghost makes it as simple as possible to deliver your new post to all your existing members. Just hit the <em>Preview</em> link and you'll get a chance to see what your content looks like on Web, Mobile, Email and Social.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/preview.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3166\\" height=\\"2224\\"></figure><p>You can send yourself a test newsletter to make sure everything looks good in your email client, and then hit the <em>Publish</em> button to decide who to deliver it to.</p><p>Ghost comes with a streamlined, optimized email newsletter template that has settings built-in for you to customize the colors and typography. We've spent countless hours refining the template to make sure it works great across all email clients, and performs well for email deliverability.</p><p>So, you don't need to fight the awful process of building a custom email template from scratch. It's all done already!</p><hr><p>The Ghost editor is powerful enough to do whatever you want it to do. With a little exploration, you'll be up and running in no time.</p>",
|
||
"id": "6194d3ce51e2700162531a75",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 5,
|
||
"slug": "write",
|
||
"title": "Writing and managing content in Ghost, an advanced guide",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/write/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a74",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/creating-a-custom-theme.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>What sets Ghost apart from other products is that you can publish content and grow your audience using the same platform. Rather than just endlessly posting and hoping someone is listening, you can track real signups against your work and have them subscribe to be notified of future posts. The feature that makes all this possible is called <em>Portal</em>.</p><p>Portal is an embedded interface for your audience to sign up to your site. It works on every Ghost site, with every theme, and for any type of publisher. </p><p>You can customize the design, content and settings of Portal to suit your site, whether you just want people to sign up to your newsletter — or you're running a full premium publication with user sign-ins and private content.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/portalsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2924\\" height=\\"1810\\"></figure><p>Once people sign up to your site, they'll receive an email confirmation with a link to click. The link acts as an automatic sign-in, so subscribers will be automatically signed-in to your site when they click on it. There are a couple of interesting angles to this:</p><p>Because subscribers are automatically able to sign in and out of your site as registered members: You can (optionally) restrict access to posts and pages depending on whether people are signed-in or not. So if you want to publish some posts for free, but keep some really great stuff for members-only, this can be a great draw to encourage people to sign up!</p><p>Ghost members sign in using email authentication links, so there are no passwords for people to set or forget. You can turn any list of email subscribers into a database of registered members who can sign in to your site. Like magic.</p><p>Portal makes all of this possible, and it appears by default as a floating button in the bottom-right corner of your site. When people are logged out, clicking it will open a sign-up/sign-in window. When members are logged in, clicking the Portal button will open the account menu where they can edit their name, email, and subscription settings.</p><p>The floating Portal button is completely optional. If you prefer, you can add manual links to your content, navigation, or theme to trigger it instead.</p><p>Like this! <a href=\\"#/portal\\">Sign up here</a></p><hr><p>As you start to grow your registered audience, you'll be able to get a sense of who you're publishing <em>for</em> and where those people are coming <em>from</em>. Best of all: You'll have a straightforward, reliable way to connect with people who enjoy your work.</p><p>Social networks go in and out of fashion all the time. Email addresses are timeless.</p><p>Growing your audience is valuable no matter what type of site you run, but if your content <em>is</em> your business, then you might also be interested in <a href=\\"http://127.0.0.1:2369/sell/\\">setting up premium subscriptions</a>.</p>",
|
||
"id": "6194d3ce51e2700162531a74",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "portal",
|
||
"title": "Building your audience with subscriber signups",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/portal/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": false,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a73",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to ",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/organizing-your-content.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>For creators and aspiring entrepreneurs looking to generate a sustainable recurring revenue stream from their creative work, Ghost has built-in payments allowing you to create a subscription commerce business.</p><p>Connect your <a href=\\"https://stripe.com\\">Stripe</a> account to Ghost, and you'll be able to quickly and easily create monthly and yearly premium plans for members to subscribe to, as well as complimentary plans for friends and family.</p><p>Ghost takes <strong>0% payment fees</strong>, so everything you make is yours to keep!</p><p>Using subscriptions, you can build an independent media business like <a href=\\"https://stratechery.com\\">Stratechery</a>, <a href=\\"https://www.theinformation.com\\">The Information</a>, or <a href=\\"https://thebrowser.com\\">The Browser</a>.</p><p>The creator economy is just getting started, and Ghost allows you to build something based on technology that you own and control.</p><figure class=\\"kg-card kg-image-card kg-card-hascaption\\"><a href=\\"https://thebrowser.com\\"><img src=\\"https://static.ghost.org/v4.0.0/images/thebrowser.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"1600\\" height=\\"2000\\"></a><figcaption>The Browser has over 10,000 paying subscribers</figcaption></figure><p>Most successful subscription businesses publish a mix of free and paid posts to attract a new audience, and upsell the most loyal members to a premium offering. You can also mix different access levels within the same post, showing a free preview to logged out members and then, right when you're ready for a cliffhanger, that's a good time to...</p>",
|
||
"id": "6194d3ce51e2700162531a73",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"plaintext": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to keep!
|
||
|
||
Using subscriptions, you can build an independent media business like
|
||
Stratechery [https://stratechery.com], The Information
|
||
[https://www.theinformation.com], or The Browser [https://thebrowser.com].
|
||
|
||
The creator economy is just getting started, and Ghost allows you to build
|
||
something based on technology that you own and control.
|
||
|
||
[https://thebrowser.com]The Browser has over 10,000 paying subscribersMost
|
||
successful subscription businesses publish a mix of free and paid posts to
|
||
attract a new audience, and upsell the most loyal members to a premium offering.
|
||
You can also mix different access levels within the same post, showing a free
|
||
preview to logged out members and then, right when you're ready for a
|
||
cliffhanger, that's a good time to...",
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "sell",
|
||
"title": "Selling premium memberships with recurring revenue",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/sell/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "paid",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a72",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/admin-settings.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As you grow, you'll probably want to start inviting team members and collaborators to your site. Ghost has a number of different user roles for your team:</p><p><strong>Contributors</strong><br>This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are <strong>untrusted</strong> users with the most basic access to your publication.</p><p><strong>Authors</strong><br>Authors are the 2nd user level in Ghost. Authors can write, edit and publish their own posts. Authors are <strong>trusted</strong> users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.</p><p><strong>Editors</strong><br>Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.</p><p><strong>Administrators</strong><br>The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.<br><br><strong>The Owner</strong><br>There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using <a href=\\"https://ghost.org/pricing/\\"><strong>Ghost(Pro)</strong></a>.</p><blockquote><em>Ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.</em></blockquote><hr><p>If you're looking for insights, tips and reference materials to expand your content business, here's 5 top resources to get you started:</p><ul><li><a href=\\"https://ghost.org/blog/how-to-create-a-newsletter/\\"><strong>How to create a premium newsletter (+ some case studies)</strong></a><strong> </strong> <br>Learn how others run successful paid email newsletter products</li><li><strong><a href=\\"https://ghost.org/blog/membership-sites/\\">The ultimate guide to membership websites for creators</a></strong><br>Tips to help you build, launch and grow your new membership business</li><li><strong><a href=\\"https://newsletterguide.org/\\">The Newsletter Guide</a></strong><br>A 201 guide for taking your newsletters to the next level</li><li><a href=\\"https://ghost.org/blog/find-your-niche-creator-economy/\\"><strong>The proven way to find your niche, explained</strong></a><br>Find the overlap and find a monetizable niche that gets noticed</li><li><strong><a href=\\"https://ghost.org/blog/newsletter-referral-programs/\\">Should you launch a referral program? </a></strong><br>Strategies for building a sustainable referral growth machine</li></ul>",
|
||
"id": "6194d3ce51e2700162531a72",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "grow",
|
||
"title": "How to grow your business around an audience",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/grow/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a71",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/app-integrations.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>It's possible to extend your Ghost site and connect it with hundreds of the most popular apps and tools using integrations. </p><p>Whether you need to automatically publish new posts on social media, connect your favorite analytics tool, sync your community or embed forms into your content — our <a href=\\"https://ghost.org/integrations/\\">integrations library</a> has got it all covered with hundreds of integration tutorials.</p><p>Many integrations are as simple as inserting an embed by pasting a link, or copying a snippet of code directly from an app and pasting it into Ghost. Our integration tutorials are used by creators of all kinds to get apps and integrations up and running in no time — no technical knowledge required.</p><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/integrations-icons.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\"></figure><h2 id=\\"zapier\\">Zapier</h2><p>Zapier is a no-code tool that allows you to build powerful automations, and our official integration allows you to connect your Ghost site to more than 1,000 external services.</p><blockquote><strong>Example</strong>: When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).</blockquote><p><strong>Here's a few of the most popular automation templates:</strong> </p><!--kg-card-begin: markdown--><script src=\\"https://zapier.com/apps/embed/widget.js?services=Ghost,-shortcm,-hubspot,-sendpulse,-noticeable,-aweber,-icontact,-facebook-pages,-github,-medium,-slack,-mailchimp,-activecampaign,-twitter,-discourse&container,-convertkit,-drip,-airtable=true&limit=5\\"></script>
|
||
<!--kg-card-end: markdown--><h2 id=\\"custom-integrations\\">Custom integrations</h2><p>For more advanced automation, it's possible to create custom Ghost integrations with dedicated API keys from the Integrations page within Ghost Admin. </p><figure class=\\"kg-card kg-image-card\\"><img src=\\"https://static.ghost.org/v4.0.0/images/iawriter-integration.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2244\\" height=\\"936\\"></figure><p>These custom integrations allow you to use the Ghost API without needing to write code, and create powerful workflows such as sending content from your favorite desktop editor into Ghost as a new draft.</p>",
|
||
"id": "6194d3ce51e2700162531a71",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "integrations",
|
||
"title": "Setting up apps and custom integrations",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/integrations/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e7",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": " * Lorem
|
||
* Aliquam [http://127.0.0.1:2369/about#nowhere]
|
||
* Tortor [//somewhere.com/link#nowhere]
|
||
* Morbi [http://somewhere.com/link#nowhere]
|
||
* Praesent
|
||
* Pellentesque
|
||
|
||
|
||
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo.
|
||
|
||
1234abcdefghijklDefinition listConsectetur ad",
|
||
"feature_image": null,
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><p><nav><ul><li><a href=\\"#nowhere\\" title=\\"Anchor URL\\">Lorem</a></li><li><a href=\\"http://127.0.0.1:2369/about#nowhere\\" title=\\"Relative URL\\">Aliquam</a></li><li><a href=\\"//somewhere.com/link#nowhere\\" title=\\"Protocol Relative URL\\">Tortor</a></li><li><a href=\\"http://somewhere.com/link#nowhere\\" title=\\"Absolute URL\\">Morbi</a></li><li><a href=\\"#nowhere\\" title=\\"Praesent dapibus, neque id cursus faucibus\\">Praesent</a></li><li><a href=\\"#nowhere\\" title=\\"Pellentesque fermentum dolor\\">Pellentesque</a></li></ul></nav><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr><tr><td>i</td><td>j</td><td>k</td><td>l</td></tr></tbody></table><dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl><ul><li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li><li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</li><li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</li><li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li></ul></p><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e7",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "not-so-short-bit-complex",
|
||
"title": "Not so short, bit complex",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e3",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "testing
|
||
mctesters
|
||
|
||
* test
|
||
* line
|
||
* items",
|
||
"feature_image": "http://placekitten.com/500/200",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h2 id=\\"testing\\">testing</h2>
|
||
<p>mctesters</p>
|
||
<ul>
|
||
<li>test</li>
|
||
<li>line</li>
|
||
<li>items</li>
|
||
</ul>
|
||
<!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e3",
|
||
"meta_description": "meta description for short and sweet",
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 0,
|
||
"slug": "short-and-sweet",
|
||
"title": "Short and Sweet",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e1",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "HTML Ipsum Presents
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
|
||
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae,
|
||
ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
|
||
ipsum rutrum or",
|
||
"feature_image": "http://127.0.0.1:2369/content/images/2018/hey.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><img src=\\"http://127.0.0.1:2369/content/images/lol.jpg\\"><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e1",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "ghostly-kitchen-sink",
|
||
"title": "Ghostly Kitchen Sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request posts 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "46709",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request posts from different origin 1: [body] 1`] = `
|
||
Object {
|
||
"meta": Object {
|
||
"pagination": Object {
|
||
"limit": 15,
|
||
"next": null,
|
||
"page": 1,
|
||
"pages": 1,
|
||
"prev": null,
|
||
"total": 11,
|
||
},
|
||
},
|
||
"posts": Array [
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a77",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p><strong>Hey there</strong>, welcome to your new home on the web! </p><p>Unlike social networks, this one is all yours. Publish your work on a custom domain, invite your audience to subscribe, send them new content by email newsletter, and offer premium subscriptions to generate sustainable recurring revenue to fund your work. </p><p>Ghost is an independent, open source app, which means you can customize absolutely everything. Inside the admin area, you'll find straightforward controls for changing themes, colors, navigation, logos and settings — so you can set your site up just how you like it. No technical knowledge required.</p><p>If you're feeling a little more adventurous, there's really no limit to what's possible. With just a little bit of HTML and CSS you can modify or build your very own theme from scratch, or connect to Zapier to explore advanced integrations. Advanced developers can go even further and build entirely custom workflows using the Ghost API.</p><p>This level of customization means that Ghost grows with you. It's easy to get started, but there's always another level of what's possible. So, you won't find yourself outgrowing the app in a few months time and wishing you'd chosen something more powerful!</p><hr><p>For now, you're probably just wondering what to do first. To help get you going as quickly as possible, we've populated your site with starter content (like this post!) covering all the key concepts and features of the product.</p><p>You'll find an outline of all the different topics below, with links to each section so you can explore the parts that interest you most.</p><p>Once you're ready to begin publishing and want to clear out these starter posts, you can delete the \\"Ghost\\" staff user. Deleting an author will automatically remove all of their posts, leaving you with a clean blank canvas.</p><h2 id=\\"your-guide-to-ghost\\">Your guide to Ghost</h2><ul><li><a href=\\"http://127.0.0.1:2369/design/\\">Customizing your brand and site settings</a></li><li><a href=\\"http://127.0.0.1:2369/write/\\">Writing & managing content, an advanced guide for creators</a></li><li><a href=\\"http://127.0.0.1:2369/portal/\\">Building your audience with subscriber signups</a></li><li><a href=\\"http://127.0.0.1:2369/sell/\\">Selling premium memberships with recurring revenue</a></li><li><a href=\\"http://127.0.0.1:2369/grow/\\">How to grow your business around an audience</a></li><li><a href=\\"http://127.0.0.1:2369/integrations/\\">Setting up custom integrations and apps</a></li></ul><p>If you get through all those and you're hungry for more, you can find an extensive library of content for creators over on <a href=\\"https://ghost.org/blog/\\">the Ghost blog</a>.</p><hr><h2 id=\\"getting-help\\">Getting help</h2><p>If you need help, <a href=\\"https://ghost.org/pricing/\\">Ghost(Pro)</a> customers can always reach our full-time support team by clicking on the <em>Ghost(Pro)</em> link inside their admin panel.</p><p>If you're a developer working with the codebase in a self-managed install, check out our <a href=\\"https://forum.ghost.org\\">developer community forum</a> to chat with other users.</p><p>Have fun!</p>",
|
||
"id": "6194d3ce51e2700162531a77",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "welcome",
|
||
"title": "Start here for a quick overview of everything you need to know",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/welcome/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a76",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As discussed in the <a href=\\"http://127.0.0.1:2369/welcome/\\">introduction</a> post, one of the best things about Ghost is just how much you can customize to turn your site into something unique. Everything about your layout and design can be changed, so you're not stuck with yet another clone of a social network profile.</p><p>How far you want to go with customization is completely up to you, there's no right or wrong approach! The majority of people use one of Ghost's built-in themes to get started, and then progress to something more bespoke later on as their site grows. </p><p>The best way to get started is with Ghost's branding settings, where you can set up colors, images and logos to fit with your brand.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/brandsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3456\\" height=\\"2338\\"><figcaption>Ghost Admin → Settings → Branding</figcaption></figure><p>Any Ghost theme that's up to date and compatible with Ghost 4.0 and higher will reflect your branding settings in the preview window, so you can see what your site will look like as you experiment with different options.</p><p>When selecting an accent color, try to choose something which will contrast well with white text. Many themes will use your accent color as the background for buttons, headers and navigational elements. Vibrant colors with a darker hue tend to work best, as a general rule.</p><h2 id=\\"installing-ghost-themes\\">Installing Ghost themes</h2><p>By default, new sites are created with Ghost's friendly publication theme, called Casper. Everything in Casper is optimized to work for the most common types of blog, newsletter and publication that people create with Ghost — so it's a perfect place to start.</p><p>However, there are hundreds of different themes available to install, so you can pick out a look and feel that suits you best.</p><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/themesettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3208\\" height=\\"1618\\"><figcaption>Ghost Admin → Settings → Theme</figcaption></figure><p>Inside Ghost's theme settings you'll find 4 more official themes that can be directly installed and activated. Each theme is suited to slightly different use-cases.</p><ul><li><strong>Casper</strong> <em>(default)</em> — Made for all sorts of blogs and newsletters</li><li><strong>Edition</strong> — A beautiful minimal template for newsletter authors</li><li><strong>Alto</strong> — A slick news/magazine style design for creators</li><li><strong>London</strong> — A light photography theme with a bold grid</li><li><strong>Ease</strong> — A library theme for organizing large content archives</li></ul><p>And if none of those feel quite right, head on over to the <a href=\\"https://ghost.org/themes/\\">Ghost Marketplace</a>, where you'll find a huge variety of both free and premium themes.</p><h2 id=\\"building-something-custom\\">Building something custom</h2><p>Finally, if you want something completely bespoke for your site, you can always build a custom theme from scratch and upload it to your site.</p><p>Ghost's theming template files are very easy to work with, and can be picked up in the space of a few hours by anyone who has just a little bit of knowledge of HTML and CSS. Templates from other platforms can also be ported to Ghost with relatively little effort.</p><p>If you want to take a quick look at the theme syntax to see what it's like, you can <a href=\\"https://github.com/tryghost/casper/\\">browse through the files of the default Casper theme</a>. We've added tons of inline code comments to make it easy to learn, and the structure is very readable.</p><figure class=\\"kg-card kg-code-card\\"><pre><code class=\\"language-handlebars\\">{{#post}}
|
||
<article class=\\"article {{post_class}}\\">
|
||
|
||
<h1>{{title}}</h1>
|
||
|
||
{{#if feature_image}}
|
||
<img src=\\"{{feature_image}}\\" alt=\\"Feature image\\" />
|
||
{{/if}}
|
||
|
||
{{content}}
|
||
|
||
</article>
|
||
{{/post}}</code></pre><figcaption>A snippet from a post template</figcaption></figure><p>See? Not that scary! But still completely optional. </p><p>If you're interested in creating your own Ghost theme, check out our extensive <a href=\\"https://ghost.org/docs/themes/\\">theme documentation</a> for a full guide to all the different template variables and helpers which are available.</p>",
|
||
"id": "6194d3ce51e2700162531a76",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 3,
|
||
"slug": "design",
|
||
"title": "Customizing your brand and design settings",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/design/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a75",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "A full overview of all the features built into the Ghost editor, including powerful workflow automations to speed up your creative process.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/writing-posts-with-ghost.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>Ghost comes with a best-in-class editor which does its very best to get out of the way, and let you focus on your content. Don't let its minimal looks fool you, though, beneath the surface lies a powerful editing toolset designed to accommodate the extensive needs of modern creators.</p><p>For many, the base canvas of the Ghost editor will feel familiar. You can start writing as you would expect, highlight content to access the toolbar you would expect, and generally use all of the keyboard shortcuts you would expect.</p><p>Our main focus in building the Ghost editor is to try and make as many things that you hope/expect might work: actually work. </p><ul><li>You can copy and paste raw content from web pages, and Ghost will do its best to correctly preserve the formatting. </li><li>Pasting an image from your clipboard will upload inline.</li><li>Pasting a social media URL will automatically create an embed.</li><li>Highlight a word in the editor and paste a URL from your clipboard on top: Ghost will turn it into a link.</li><li>You can also paste (or write!) Markdown and Ghost will usually be able to auto-convert it into fully editable, formatted content.</li></ul><figure class=\\"kg-card kg-image-card kg-width-wide kg-card-hascaption\\"><img src=\\"https://static.ghost.org/v4.0.0/images/editor.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3182\\" height=\\"1500\\"><figcaption>The Ghost editor. Also available in dark-mode, for late night writing sessions.</figcaption></figure><p>The goal, as much as possible, is for things to work so that you don't have to <em>think</em> so much about the editor. You won't find any disastrous \\"block builders\\" here, where you have to open 6 submenus and choose from 18 different but identical alignment options. That's not what Ghost is about.</p><p>What you will find though, is dynamic cards which allow you to embed rich media into your posts and create beautifully laid out stories.</p><h2 id=\\"using-cards\\">Using cards</h2><p>You can insert dynamic cards inside post content using the <code>+</code> button, which appears on new lines, or by typing <code>/</code> on a new line to trigger the card menu. Many of the choices are simple and intuitive, like bookmark cards, which allow you to create rich links with embedded structured data:</p><figure class=\\"kg-card kg-bookmark-card\\"><a class=\\"kg-bookmark-container\\" href=\\"https://opensubscriptionplatforms.com/\\"><div class=\\"kg-bookmark-content\\"><div class=\\"kg-bookmark-title\\">Open Subscription Platforms</div><div class=\\"kg-bookmark-description\\">A shared movement for independent subscription data.</div><div class=\\"kg-bookmark-metadata\\"><img class=\\"kg-bookmark-icon\\" src=\\"https://opensubscriptionplatforms.com/images/favicon.png\\" alt=\\"\\"><span class=\\"kg-bookmark-author\\">Open Subscription Platforms</span></div></div><div class=\\"kg-bookmark-thumbnail\\"><img src=\\"https://opensubscriptionplatforms.com/images/osp-card.png\\" alt=\\"\\"></div></a></figure><p>or embed cards which make it easy to insert content you want to share with your audience, from external services:</p><figure class=\\"kg-card kg-embed-card\\"><iframe width=\\"200\\" height=\\"113\\" src=\\"https://www.youtube.com/embed/hmH3XMlms8E?feature=oembed\\" frameborder=\\"0\\" allow=\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\\" allowfullscreen></iframe></figure><p>But, dig a little deeper, and you'll also find more advanced cards, like one that only shows up in email newsletters (great for personalized introductions) and a comprehensive set of specialized cards for different types of images and galleries.</p><blockquote>Once you start mixing text and image cards creatively, the whole narrative of the story changes. Suddenly, you're working in a new format.</blockquote><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-xSMqGH7gi6o-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"6000\\" height=\\"4000\\"></figure><p>As it turns out, sometimes pictures and a thousand words go together really well. Telling people a great story often has much more impact if they can feel, even for a moment, as though they were right there with you.</p><figure class=\\"kg-card kg-gallery-card kg-width-wide\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/andreas-selter-e4yK8QQlZa0-unsplash.jpg\\" width=\\"4572\\" height=\\"3048\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/steve-carter-Ixp4YhCKZkI-unsplash.jpg\\" width=\\"4032\\" height=\\"2268\\" loading=\\"lazy\\" alt></div></div></div></figure><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/lukasz-szmigiel-jFCViYFYcus-unsplash.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2560\\" height=\\"1705\\"></figure><figure class=\\"kg-card kg-gallery-card kg-width-wide kg-card-hascaption\\"><div class=\\"kg-gallery-container\\"><div class=\\"kg-gallery-row\\"><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jd-mason-hPiEFq6-Eto-unsplash.jpg\\" width=\\"5184\\" height=\\"3888\\" loading=\\"lazy\\" alt></div><div class=\\"kg-gallery-image\\"><img src=\\"https://static.ghost.org/v4.0.0/images/jp-valery-OBpOP9GVH9U-unsplash.jpg\\" width=\\"5472\\" height=\\"3648\\" loading=\\"lazy\\" alt></div></div></div><figcaption>Peaceful places</figcaption></figure><p>Galleries and image cards can be combined in so many different ways — the only limit is your imagination.</p><h2 id=\\"build-workflows-with-snippets\\">Build workflows with snippets</h2><p>One of the most powerful features of the Ghost editor is the ability to create and re-use content snippets. If you've ever used an email client with a concept of <em>saved replies</em> then this will be immediately intuitive.</p><p>To create a snippet, select a piece of content in the editor that you'd like to re-use in future, then click on the snippet icon in the toolbar. Give your snippet a name, and you're all done. Now your snippet will be available from within the card menu, or you can search for it directly using the <code>/</code> command.</p><p>This works really well for saving images you might want to use often, like a company logo or team photo, links to resources you find yourself often linking to, or introductions and passages that you want to remember.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/createsnippet.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2282\\" height=\\"1272\\"></figure><p>You can even build entire post templates or outlines to create a quick, re-usable workflow for publishing over time. Or build custom design elements for your post with an HTML card, and use a snippet to insert it.</p><p>Once you get a few useful snippets set up, it's difficult to go back to the old way of diving through media libraries and trawling for that one thing you know you used somewhere that one time.</p><hr><h2 id=\\"publishing-and-newsletters-the-easy-way\\">Publishing and newsletters the easy way</h2><p>When you're ready to publish, Ghost makes it as simple as possible to deliver your new post to all your existing members. Just hit the <em>Preview</em> link and you'll get a chance to see what your content looks like on Web, Mobile, Email and Social.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/preview.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"3166\\" height=\\"2224\\"></figure><p>You can send yourself a test newsletter to make sure everything looks good in your email client, and then hit the <em>Publish</em> button to decide who to deliver it to.</p><p>Ghost comes with a streamlined, optimized email newsletter template that has settings built-in for you to customize the colors and typography. We've spent countless hours refining the template to make sure it works great across all email clients, and performs well for email deliverability.</p><p>So, you don't need to fight the awful process of building a custom email template from scratch. It's all done already!</p><hr><p>The Ghost editor is powerful enough to do whatever you want it to do. With a little exploration, you'll be up and running in no time.</p>",
|
||
"id": "6194d3ce51e2700162531a75",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 5,
|
||
"slug": "write",
|
||
"title": "Writing and managing content in Ghost, an advanced guide",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/write/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a74",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/creating-a-custom-theme.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>What sets Ghost apart from other products is that you can publish content and grow your audience using the same platform. Rather than just endlessly posting and hoping someone is listening, you can track real signups against your work and have them subscribe to be notified of future posts. The feature that makes all this possible is called <em>Portal</em>.</p><p>Portal is an embedded interface for your audience to sign up to your site. It works on every Ghost site, with every theme, and for any type of publisher. </p><p>You can customize the design, content and settings of Portal to suit your site, whether you just want people to sign up to your newsletter — or you're running a full premium publication with user sign-ins and private content.</p><figure class=\\"kg-card kg-image-card kg-width-wide\\"><img src=\\"https://static.ghost.org/v4.0.0/images/portalsettings.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2924\\" height=\\"1810\\"></figure><p>Once people sign up to your site, they'll receive an email confirmation with a link to click. The link acts as an automatic sign-in, so subscribers will be automatically signed-in to your site when they click on it. There are a couple of interesting angles to this:</p><p>Because subscribers are automatically able to sign in and out of your site as registered members: You can (optionally) restrict access to posts and pages depending on whether people are signed-in or not. So if you want to publish some posts for free, but keep some really great stuff for members-only, this can be a great draw to encourage people to sign up!</p><p>Ghost members sign in using email authentication links, so there are no passwords for people to set or forget. You can turn any list of email subscribers into a database of registered members who can sign in to your site. Like magic.</p><p>Portal makes all of this possible, and it appears by default as a floating button in the bottom-right corner of your site. When people are logged out, clicking it will open a sign-up/sign-in window. When members are logged in, clicking the Portal button will open the account menu where they can edit their name, email, and subscription settings.</p><p>The floating Portal button is completely optional. If you prefer, you can add manual links to your content, navigation, or theme to trigger it instead.</p><p>Like this! <a href=\\"#/portal\\">Sign up here</a></p><hr><p>As you start to grow your registered audience, you'll be able to get a sense of who you're publishing <em>for</em> and where those people are coming <em>from</em>. Best of all: You'll have a straightforward, reliable way to connect with people who enjoy your work.</p><p>Social networks go in and out of fashion all the time. Email addresses are timeless.</p><p>Growing your audience is valuable no matter what type of site you run, but if your content <em>is</em> your business, then you might also be interested in <a href=\\"http://127.0.0.1:2369/sell/\\">setting up premium subscriptions</a>.</p>",
|
||
"id": "6194d3ce51e2700162531a74",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "portal",
|
||
"title": "Building your audience with subscriber signups",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/portal/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": false,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a73",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to ",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/organizing-your-content.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>For creators and aspiring entrepreneurs looking to generate a sustainable recurring revenue stream from their creative work, Ghost has built-in payments allowing you to create a subscription commerce business.</p><p>Connect your <a href=\\"https://stripe.com\\">Stripe</a> account to Ghost, and you'll be able to quickly and easily create monthly and yearly premium plans for members to subscribe to, as well as complimentary plans for friends and family.</p><p>Ghost takes <strong>0% payment fees</strong>, so everything you make is yours to keep!</p><p>Using subscriptions, you can build an independent media business like <a href=\\"https://stratechery.com\\">Stratechery</a>, <a href=\\"https://www.theinformation.com\\">The Information</a>, or <a href=\\"https://thebrowser.com\\">The Browser</a>.</p><p>The creator economy is just getting started, and Ghost allows you to build something based on technology that you own and control.</p><figure class=\\"kg-card kg-image-card kg-card-hascaption\\"><a href=\\"https://thebrowser.com\\"><img src=\\"https://static.ghost.org/v4.0.0/images/thebrowser.jpg\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"1600\\" height=\\"2000\\"></a><figcaption>The Browser has over 10,000 paying subscribers</figcaption></figure><p>Most successful subscription businesses publish a mix of free and paid posts to attract a new audience, and upsell the most loyal members to a premium offering. You can also mix different access levels within the same post, showing a free preview to logged out members and then, right when you're ready for a cliffhanger, that's a good time to...</p>",
|
||
"id": "6194d3ce51e2700162531a73",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"plaintext": "For creators and aspiring entrepreneurs looking to generate a sustainable
|
||
recurring revenue stream from their creative work, Ghost has built-in payments
|
||
allowing you to create a subscription commerce business.
|
||
|
||
Connect your Stripe [https://stripe.com] account to Ghost, and you'll be able to
|
||
quickly and easily create monthly and yearly premium plans for members to
|
||
subscribe to, as well as complimentary plans for friends and family.
|
||
|
||
Ghost takes 0% payment fees, so everything you make is yours to keep!
|
||
|
||
Using subscriptions, you can build an independent media business like
|
||
Stratechery [https://stratechery.com], The Information
|
||
[https://www.theinformation.com], or The Browser [https://thebrowser.com].
|
||
|
||
The creator economy is just getting started, and Ghost allows you to build
|
||
something based on technology that you own and control.
|
||
|
||
[https://thebrowser.com]The Browser has over 10,000 paying subscribersMost
|
||
successful subscription businesses publish a mix of free and paid posts to
|
||
attract a new audience, and upsell the most loyal members to a premium offering.
|
||
You can also mix different access levels within the same post, showing a free
|
||
preview to logged out members and then, right when you're ready for a
|
||
cliffhanger, that's a good time to...",
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "sell",
|
||
"title": "Selling premium memberships with recurring revenue",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/sell/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "paid",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a72",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"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",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/admin-settings.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>As you grow, you'll probably want to start inviting team members and collaborators to your site. Ghost has a number of different user roles for your team:</p><p><strong>Contributors</strong><br>This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are <strong>untrusted</strong> users with the most basic access to your publication.</p><p><strong>Authors</strong><br>Authors are the 2nd user level in Ghost. Authors can write, edit and publish their own posts. Authors are <strong>trusted</strong> users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.</p><p><strong>Editors</strong><br>Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.</p><p><strong>Administrators</strong><br>The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.<br><br><strong>The Owner</strong><br>There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using <a href=\\"https://ghost.org/pricing/\\"><strong>Ghost(Pro)</strong></a>.</p><blockquote><em>Ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.</em></blockquote><hr><p>If you're looking for insights, tips and reference materials to expand your content business, here's 5 top resources to get you started:</p><ul><li><a href=\\"https://ghost.org/blog/how-to-create-a-newsletter/\\"><strong>How to create a premium newsletter (+ some case studies)</strong></a><strong> </strong> <br>Learn how others run successful paid email newsletter products</li><li><strong><a href=\\"https://ghost.org/blog/membership-sites/\\">The ultimate guide to membership websites for creators</a></strong><br>Tips to help you build, launch and grow your new membership business</li><li><strong><a href=\\"https://newsletterguide.org/\\">The Newsletter Guide</a></strong><br>A 201 guide for taking your newsletters to the next level</li><li><a href=\\"https://ghost.org/blog/find-your-niche-creator-economy/\\"><strong>The proven way to find your niche, explained</strong></a><br>Find the overlap and find a monetizable niche that gets noticed</li><li><strong><a href=\\"https://ghost.org/blog/newsletter-referral-programs/\\">Should you launch a referral program? </a></strong><br>Strategies for building a sustainable referral growth machine</li></ul>",
|
||
"id": "6194d3ce51e2700162531a72",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 2,
|
||
"slug": "grow",
|
||
"title": "How to grow your business around an audience",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/grow/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "6194d3ce51e2700162531a71",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "Work with all your favorite apps and tools or create your own custom integrations using the Ghost API.",
|
||
"feature_image": "https://static.ghost.org/v4.0.0/images/app-integrations.png",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<p>It's possible to extend your Ghost site and connect it with hundreds of the most popular apps and tools using integrations. </p><p>Whether you need to automatically publish new posts on social media, connect your favorite analytics tool, sync your community or embed forms into your content — our <a href=\\"https://ghost.org/integrations/\\">integrations library</a> has got it all covered with hundreds of integration tutorials.</p><p>Many integrations are as simple as inserting an embed by pasting a link, or copying a snippet of code directly from an app and pasting it into Ghost. Our integration tutorials are used by creators of all kinds to get apps and integrations up and running in no time — no technical knowledge required.</p><figure class=\\"kg-card kg-image-card kg-width-full\\"><img src=\\"https://static.ghost.org/v4.0.0/images/integrations-icons.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\"></figure><h2 id=\\"zapier\\">Zapier</h2><p>Zapier is a no-code tool that allows you to build powerful automations, and our official integration allows you to connect your Ghost site to more than 1,000 external services.</p><blockquote><strong>Example</strong>: When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).</blockquote><p><strong>Here's a few of the most popular automation templates:</strong> </p><!--kg-card-begin: markdown--><script src=\\"https://zapier.com/apps/embed/widget.js?services=Ghost,-shortcm,-hubspot,-sendpulse,-noticeable,-aweber,-icontact,-facebook-pages,-github,-medium,-slack,-mailchimp,-activecampaign,-twitter,-discourse&container,-convertkit,-drip,-airtable=true&limit=5\\"></script>
|
||
<!--kg-card-end: markdown--><h2 id=\\"custom-integrations\\">Custom integrations</h2><p>For more advanced automation, it's possible to create custom Ghost integrations with dedicated API keys from the Integrations page within Ghost Admin. </p><figure class=\\"kg-card kg-image-card\\"><img src=\\"https://static.ghost.org/v4.0.0/images/iawriter-integration.png\\" class=\\"kg-image\\" alt loading=\\"lazy\\" width=\\"2244\\" height=\\"936\\"></figure><p>These custom integrations allow you to use the Ghost API without needing to write code, and create powerful workflows such as sending content from your favorite desktop editor into Ghost as a new draft.</p>",
|
||
"id": "6194d3ce51e2700162531a71",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "integrations",
|
||
"title": "Setting up apps and custom integrations",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/integrations/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e7",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": " * Lorem
|
||
* Aliquam [http://127.0.0.1:2369/about#nowhere]
|
||
* Tortor [//somewhere.com/link#nowhere]
|
||
* Morbi [http://somewhere.com/link#nowhere]
|
||
* Praesent
|
||
* Pellentesque
|
||
|
||
|
||
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo.
|
||
|
||
1234abcdefghijklDefinition listConsectetur ad",
|
||
"feature_image": null,
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><p><nav><ul><li><a href=\\"#nowhere\\" title=\\"Anchor URL\\">Lorem</a></li><li><a href=\\"http://127.0.0.1:2369/about#nowhere\\" title=\\"Relative URL\\">Aliquam</a></li><li><a href=\\"//somewhere.com/link#nowhere\\" title=\\"Protocol Relative URL\\">Tortor</a></li><li><a href=\\"http://somewhere.com/link#nowhere\\" title=\\"Absolute URL\\">Morbi</a></li><li><a href=\\"#nowhere\\" title=\\"Praesent dapibus, neque id cursus faucibus\\">Praesent</a></li><li><a href=\\"#nowhere\\" title=\\"Pellentesque fermentum dolor\\">Pellentesque</a></li></ul></nav><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr><tr><td>i</td><td>j</td><td>k</td><td>l</td></tr></tbody></table><dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl><ul><li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li><li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</li><li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</li><li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li></ul></p><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e7",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "not-so-short-bit-complex",
|
||
"title": "Not so short, bit complex",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/not-so-short-bit-complex/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e3",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "testing
|
||
mctesters
|
||
|
||
* test
|
||
* line
|
||
* items",
|
||
"feature_image": "http://placekitten.com/500/200",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": true,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h2 id=\\"testing\\">testing</h2>
|
||
<p>mctesters</p>
|
||
<ul>
|
||
<li>test</li>
|
||
<li>line</li>
|
||
<li>items</li>
|
||
</ul>
|
||
<!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e3",
|
||
"meta_description": "meta description for short and sweet",
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 0,
|
||
"slug": "short-and-sweet",
|
||
"title": "Short and Sweet",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/short-and-sweet/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6e1",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "HTML Ipsum Presents
|
||
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
|
||
turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor
|
||
sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies
|
||
mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien
|
||
ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae,
|
||
ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
|
||
ipsum rutrum or",
|
||
"feature_image": "http://127.0.0.1:2369/content/images/2018/hey.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><img src=\\"http://127.0.0.1:2369/content/images/lol.jpg\\"><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6e1",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "ghostly-kitchen-sink",
|
||
"title": "Ghostly Kitchen Sink",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/ghostly-kitchen-sink/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
Object {
|
||
"access": true,
|
||
"canonical_url": null,
|
||
"codeinjection_foot": null,
|
||
"codeinjection_head": null,
|
||
"comment_id": "618ba1ffbe2896088840a6df",
|
||
"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,
|
||
"email_recipient_filter": "none",
|
||
"email_subject": null,
|
||
"excerpt": "This is my custom excerpt!",
|
||
"feature_image": "https://example.com/super_photo.jpg",
|
||
"feature_image_alt": null,
|
||
"feature_image_caption": null,
|
||
"featured": false,
|
||
"frontmatter": null,
|
||
"html": "<!--kg-card-begin: markdown--><h1>HTML Ipsum Presents</h1><p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=\\\\\\"#\\\\\\">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p><h2>Header Level 2</h2><ol><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ol><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote><h3>Header Level 3</h3><ul><li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li><li>Aliquam tincidunt mauris eu risus.</li></ul><pre><code>#header h1 a{display: block;width: 300px;height: 80px;}</code></pre><!--kg-card-end: markdown-->",
|
||
"id": "618ba1ffbe2896088840a6df",
|
||
"meta_description": null,
|
||
"meta_title": null,
|
||
"og_description": null,
|
||
"og_image": null,
|
||
"og_title": null,
|
||
"published_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"reading_time": 1,
|
||
"slug": "html-ipsum",
|
||
"title": "HTML Ipsum",
|
||
"twitter_description": null,
|
||
"twitter_image": null,
|
||
"twitter_title": null,
|
||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000\\\\\\+\\\\d\\{2\\}:\\\\d\\{2\\}/,
|
||
"url": "http://127.0.0.1:2369/html-ipsum/",
|
||
"uuid": StringMatching /\\[a-f0-9\\]\\{8\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{4\\}-\\[a-f0-9\\]\\{12\\}/,
|
||
"visibility": "public",
|
||
},
|
||
],
|
||
}
|
||
`;
|
||
|
||
exports[`Posts Content API Can request posts from different origin 2: [headers] 1`] = `
|
||
Object {
|
||
"access-control-allow-origin": "*",
|
||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||
"content-length": "46709",
|
||
"content-type": "application/json; charset=utf-8",
|
||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||
"vary": "Accept-Encoding",
|
||
"x-powered-by": "Express",
|
||
}
|
||
`;
|