# posts

id: 64cfd464dd97c5309d1aefbc
uuid: 7d113463-b236-4d8d-a49e-9c0fcee94cd1
title: Creating a custom theme
slug: themes
comment_id: 64cfd464dd97c5309d1aefbc
feature_image: https://static.ghost.org/v2.0.0/images/creating-a-custom-theme.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:04
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[],"cards":[["image",{"src":"https://static.ghost.org/v1.0.0/images/marketplace.jpg","caption":"Anyone can write a completely custom Ghost theme with some solid knowledge of HTML and CSS"}]],"markups":[["a",["href","https://ghost.org/marketplace/"]],["code"],["a",["href","https://github.com/TryGhost/Casper"]],["a",["href","https://ghost.org/docs/api/handlebars-themes/"]],["strong"],["a",["href","https://forum.ghost.org/c/themes"]]],"sections":[[1,"p",[[0,[],0,"Ghost comes with a beautiful default theme called Casper, which is designed to be a clean, readable publication layout and can be adapted for most purposes. However, Ghost can also be completely themed to suit your needs. Rather than just giving you a few basic settings which act as a poor proxy for code, we just let you write code."]]],[1,"p",[[0,[],0,"There are a huge range of both free and premium pre-built themes which you can get from the "],[0,[0],1,"Ghost Theme Marketplace"],[0,[],0,", or you can create your own from scratch."]]],[10,0],[1,"p",[[0,[],0,"Ghost themes are written with a templating language called handlebars, which has a set of dynamic helpers to insert your data into template files. For example: "],[0,[1],1,"{{author.name}}"],[0,[],0," outputs the name of the current author."]]],[1,"p",[[0,[],0,"The best way to learn how to write your own Ghost theme is to have a look at "],[0,[2],1,"the source code for Casper"],[0,[],0,", which is heavily commented and should give you a sense of how everything fits together."]]],[3,"ul",[[[0,[1],1,"default.hbs"],[0,[],0," is the main template file, all contexts will load inside this file unless specifically told to use a different template."]],[[0,[1],1,"post.hbs"],[0,[],0," is the file used in the context of viewing a post."]],[[0,[1],1,"index.hbs"],[0,[],0," is the file used in the context of viewing the home page."]],[[0,[],0,"and so on"]]]],[1,"p",[[0,[],0,"We've got "],[0,[3],1,"full and extensive theme documentation"],[0,[],0," which outlines every template file, context and helper that you can use."]]],[1,"p",[[0,[],0,"If you want to chat with other people making Ghost themes to get any advice or help, there's also a "],[0,[4],1,"themes"],[0,[],0," section on our "],[0,[5],1,"public Ghost forum"],[0,[],0,"."]]]]}

html:
  <p>Ghost comes with a beautiful default theme called Casper, which is designed to be a clean, readable publication layout and can be adapted for most purposes. However, Ghost can also be completely themed to suit your needs. Rather than just giving you a few basic settings which act as a poor proxy for code, we just let you write code.</p><p>There are a huge range of both free and premium pre-built themes which you can get from the <a href="https://ghost.org/marketplace/">Ghost Theme Marketplace</a>, or you can create your own from scratch.</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://static.ghost.org/v1.0.0/images/marketplace.jpg" class="kg-image"><figcaption>Anyone can write a completely custom Ghost theme with some solid knowledge of HTML and CSS</figcaption></figure><!--kg-card-end: image--><p>Ghost themes are written with a templating language called handlebars, which has a set of dynamic helpers to insert your data into template files. For example: <code>{{author.name}}</code> outputs the name of the current author.</p><p>The best way to learn how to write your own Ghost theme is to have a look at <a href="https://github.com/TryGhost/Casper">the source code for Casper</a>, which is heavily commented and should give you a sense of how everything fits together.</p><ul><li><code>default.hbs</code> is the main template file, all contexts will load inside this file unless specifically told to use a different template.</li><li><code>post.hbs</code> is the file used in the context of viewing a post.</li><li><code>index.hbs</code> is the file used in the context of viewing the home page.</li><li>and so on</li></ul><p>We've got <a href="https://ghost.org/docs/api/handlebars-themes/">full and extensive theme documentation</a> which outlines every template file, context and helper that you can use.</p><p>If you want to chat with other people making Ghost themes to get any advice or help, there's also a <strong>themes</strong> section on our <a href="https://forum.ghost.org/c/themes">public Ghost forum</a>.</p>

plaintext:
  Ghost comes with a beautiful default theme called Casper, which is designed to
  be a clean, readable publication layout and can be adapted for most purposes.
  However, Ghost can also be completely themed to suit your needs. Rather than
  just giving you a few basic settings which act as a poor proxy for code, we just
  let you write code.

  There are a huge range of both free and premium pre-built themes which you can
  get from the Ghost Theme Marketplace [https://ghost.org/marketplace/], or you
  can create your own from scratch.

  Anyone can write a completely custom Ghost theme with some solid knowledge of
  HTML and CSSGhost themes are written with a templating language called
  handlebars, which has a set of dynamic helpers to insert your data into template
  files. For example: {{author.name}} outputs the name of the current author.

  The best way to learn how to write your own Ghost theme is to have a look at 
  the
  source code for Casper [https://github.com/TryGhost/Casper], which is heavily
  commented and should give you a sense of how everything fits together.

   * default.hbs is the main template file, all contexts will load inside this
     file unless specifically told to use a different template.
   * post.hbs is the file used in the context of viewing a post.
   * index.hbs is the file used in the context of viewing the home page.
   * and so on

  We've got full and extensive theme documentation
  [https://ghost.org/docs/api/handlebars-themes/] which outlines every template
  file, context and helper that you can use.

  If you want to chat with other people making Ghost themes to get any advice or
  help, there's also a themes section on our public Ghost forum
  [https://forum.ghost.org/c/themes].

custom_excerpt:
  Ghost comes with a beautiful default theme called Casper, which is designed to be a clean, readable publication layout and can be easily adapted for most purposes.


id: 64cfd464dd97c5309d1aefbe
uuid: 469f62b0-9e3f-4411-97a7-f6e9dd82341b
title: Apps & integrations
slug: apps-integrations
comment_id: 64cfd464dd97c5309d1aefbe
feature_image: https://static.ghost.org/v2.0.0/images/app-integrations.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:05
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[],"cards":[["markdown",{"markdown":"<script src=\"https://zapier.com/apps/embed/widget.js?services=Ghost&container=true&limit=8\"></script>\n"}]],"markups":[["a",["href","https://zapier.com"]],["strong"],["a",["href","https://ghost.org/docs/api/handlebars-themes/"]],["em"],["a",["href","https://ghost.org/integrations/disqus/"]],["a",["href","https://ghost.org/integrations/discourse/"]],["a",["href","https://ghost.org/integrations/"]],["a",["href","https://prismjs.com/"]],["a",["href","https://www.google.com/forms/"]],["a",["href","https://www.typeform.com/"]],["a",["href","https://ghost.org/docs/api/"]],["a",["href","/themes/"]]],"sections":[[1,"p",[[0,[],0,"There are three primary ways to work with third-party services in Ghost: using Zapier, editing your theme, or using the Ghost API."]]],[1,"h1",[[0,[],0,"Zapier"]]],[1,"p",[[0,[],0,"You can connect your Ghost site to over 1,000 external services using the official integration with "],[0,[0],1,"Zapier"],[0,[],0,"."]]],[1,"p",[[0,[],0,"Zapier sets up automations with Triggers and Actions, which allows you to create and customise a wide range of connected applications."]]],[1,"blockquote",[[0,[1],1,"Example"],[0,[],0,": When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action)."]]],[1,"p",[[0,[1],1,"Here are the most popular Ghost<>Zapier automation templates:"],[0,[],0," "]]],[10,0],[1,"h1",[[0,[],0,"Editing your theme"]]],[1,"p",[[0,[],0,"One of the biggest advantages of using Ghost over centralised platforms is that you have total control over the front end of your site. Either customise your existing theme, or create a new theme from scratch with our "],[0,[2],1,"Theme SDK"],[0,[],0,". "]]],[1,"p",[[0,[],0,"You can integrate "],[0,[3],1,"any"],[0,[],0," front end code into a Ghost theme without restriction, and it will work just fine. No restrictions!"]]],[1,"p",[[0,[1],1,"Here are some common examples"],[0,[],0,":"]]],[3,"ul",[[[0,[],0,"Include comments on a Ghost blog with "],[0,[4],1,"Disqus"],[0,[],0," or "],[0,[5],1,"Discourse"]],[[0,[],0,"Implement "],[0,[6],1,"MathJAX"],[0,[],0," with a little bit of JavaScript"]],[[0,[],0,"Add syntax highlighting to your code snippets using "],[0,[7],1,"Prism.js"]],[[0,[],0,"Integrate any dynamic forms from "],[0,[8],1,"Google"],[0,[],0," or "],[0,[9],1,"Typeform"],[0,[],0," to capture data"]],[[0,[],0,"Just about anything which uses JavaScript, APIs and Markup."]]]],[1,"h1",[[0,[],0,"Using the Public API"]]],[1,"p",[[0,[],0,"Ghost itself is driven by a set of core APIs, and so you can access the Public Ghost JSON API from external webpages or applications in order to pull data and display it in other places."]]],[1,"blockquote",[[0,[],0,"The Ghost API is "],[0,[10],1,"thoroughly documented"],[0,[],0," and straightforward to work with for developers of almost any level. "]]],[1,"p",[[0,[],0,"Alright, the last post in our welcome-series! If you're curious about creating your own Ghost theme from scratch, here are "],[0,[11],1,"some more details"],[0,[],0," on how that works."]]]]}

html:
  <p>There are three primary ways to work with third-party services in Ghost: using Zapier, editing your theme, or using the Ghost API.</p><h1 id="zapier">Zapier</h1><p>You can connect your Ghost site to over 1,000 external services using the official integration with <a href="https://zapier.com">Zapier</a>.</p><p>Zapier sets up automations with Triggers and Actions, which allows you to create and customise a wide range of connected applications.</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 are the most popular Ghost&lt;&gt;Zapier automation templates:</strong> </p><!--kg-card-begin: markdown--><script src="https://zapier.com/apps/embed/widget.js?services=Ghost&container=true&limit=8"></script>
  <!--kg-card-end: markdown--><h1 id="editing-your-theme">Editing your theme</h1><p>One of the biggest advantages of using Ghost over centralised platforms is that you have total control over the front end of your site. Either customise your existing theme, or create a new theme from scratch with our <a href="https://ghost.org/docs/api/handlebars-themes/">Theme SDK</a>. </p><p>You can integrate <em>any</em> front end code into a Ghost theme without restriction, and it will work just fine. No restrictions!</p><p><strong>Here are some common examples</strong>:</p><ul><li>Include comments on a Ghost blog with <a href="https://ghost.org/integrations/disqus/">Disqus</a> or <a href="https://ghost.org/integrations/discourse/">Discourse</a></li><li>Implement <a href="https://ghost.org/integrations/">MathJAX</a> with a little bit of JavaScript</li><li>Add syntax highlighting to your code snippets using <a href="https://prismjs.com/">Prism.js</a></li><li>Integrate any dynamic forms from <a href="https://www.google.com/forms/">Google</a> or <a href="https://www.typeform.com/">Typeform</a> to capture data</li><li>Just about anything which uses JavaScript, APIs and Markup.</li></ul><h1 id="using-the-public-api">Using the Public API</h1><p>Ghost itself is driven by a set of core APIs, and so you can access the Public Ghost JSON API from external webpages or applications in order to pull data and display it in other places.</p><blockquote>The Ghost API is <a href="https://ghost.org/docs/api/">thoroughly documented</a> and straightforward to work with for developers of almost any level. </blockquote><p>Alright, the last post in our welcome-series! If you're curious about creating your own Ghost theme from scratch, here are <a href="/themes/">some more details</a> on how that works.</p>

plaintext:
  There are three primary ways to work with third-party services in Ghost: using
  Zapier, editing your theme, or using the Ghost API.

  Zapier
  You can connect your Ghost site to over 1,000 external services using the
  official integration with Zapier [https://zapier.com].

  Zapier sets up automations with Triggers and Actions, which allows you to create
  and customise a wide range of connected applications.

  > Example: When someone new subscribes to a newsletter on a Ghost site (Trigger)
  then the contact information is automatically pushed into MailChimp (Action).
  Here are the most popular Ghost<>Zapier automation templates: 

  Editing your theme
  One of the biggest advantages of using Ghost over centralised platforms is that
  you have total control over the front end of your site. Either customise your
  existing theme, or create a new theme from scratch with our Theme SDK
  [https://ghost.org/docs/api/handlebars-themes/]. 

  You can integrate any front end code into a Ghost theme without restriction, and
  it will work just fine. No restrictions!

  Here are some common examples:

   * Include comments on a Ghost blog with Disqus
     [https://ghost.org/integrations/disqus/] or Discourse
     [https://ghost.org/integrations/discourse/]
   * Implement MathJAX [https://ghost.org/integrations/] with a little bit of
     JavaScript
   * Add syntax highlighting to your code snippets using Prism.js
     [https://prismjs.com/]
   * Integrate any dynamic forms from Google [https://www.google.com/forms/] or 
     Typeform [https://www.typeform.com/] to capture data
   * Just about anything which uses JavaScript, APIs and Markup.

  Using the Public API
  Ghost itself is driven by a set of core APIs, and so you can access the Public
  Ghost JSON API from external webpages or applications in order to pull data and
  display it in other places.

  > The Ghost API is thoroughly documented [https://ghost.org/docs/api/] and
  straightforward to work with for developers of almost any level. 
  Alright, the last post in our welcome-series! If you're curious about creating
  your own Ghost theme from scratch, here are some more details [/themes/] on how
  that works.

custom_excerpt:
  There are three primary ways to work with third-party services in Ghost: using Zapier, editing your theme, or using the Ghost API.


id: 64cfd464dd97c5309d1aefc0
uuid: 111563ce-9c04-4063-b363-6f811d4570c8
title: Organising your content
slug: organising-content
comment_id: 64cfd464dd97c5309d1aefc0
feature_image: https://static.ghost.org/v2.0.0/images/organising-your-content.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:06
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[["soft-return","",{}]],"cards":[],"markups":[["strong"],["code"],["em"],["a",["href","https://ghost.org/docs/api/handlebars-themes/"]],["a",["href","http://yaml.org/spec/1.2/spec.html","rel","noreferrer nofollow noopener"]],["a",["href","https://ghost.org/docs/api/handlebars-themes/routing/"]],["a",["href","/apps-integrations/"]]],"sections":[[1,"p",[[0,[],0,"Ghost has a flexible organisational taxonomy called"],[0,[0],1," tags"],[0,[],0," which can be used to configure your site structure using "],[0,[0],1,"dynamic routing"],[0,[],0,". "]]],[1,"h1",[[0,[],0,"Basic Tagging"]]],[1,"p",[[0,[],0,"You can think of tags like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of related content."]]],[1,"p",[[0,[],0,"When you create content for your publication you can assign tags to help differentiate between categories of content. "]]],[1,"p",[[0,[],0,"For example you may tag some content with  News and other content with Podcast, which would create two distinct categories of content listed on "],[0,[1],1,"/tag/news/"],[0,[],0," and "],[0,[1],1,"/tag/weather/"],[0,[],0,", respectively."]]],[1,"p",[[0,[],0,"If you tag a post with both "],[0,[1],1,"News"],[0,[],0," "],[0,[2],1,"and"],[0,[],0," "],[0,[1],1,"Weather"],[0,[],0," - then it appears in both sections. Tag archives are like dedicated home-pages for each category of content that you have. They have their own pages, their own RSS feeds, and can support their own cover images and meta data."]]],[1,"h1",[[0,[],0,"The primary tag"]]],[1,"p",[[0,[],0,"Inside the Ghost editor, you can drag and drop tags into a specific order. The first tag in the list is always given the most importance, and some themes will only display the primary tag (the first tag in the list) by default. "]]],[1,"blockquote",[[0,[2,0],1,"News"],[0,[],1,", Technology, Startup"]]],[1,"p",[[0,[],0,"So you can add the most important tag which you want to show up in your theme, but also add related tags which are less important."]]],[1,"h1",[[0,[],0,"Private tags"]]],[1,"p",[[0,[],0,"Sometimes you may want to assign a post a specific tag, but you don't necessarily want that tag appearing in the theme or creating an archive page. In Ghost, hashtags are private and can be used for special styling."]]],[1,"p",[[0,[],0,"For example, if you sometimes publish posts with video content - you might want your theme to adapt and get rid of the sidebar for these posts, to give more space for an embedded video to fill the screen. In this case, you could use private tags to tell your theme what to do."]]],[1,"blockquote",[[0,[2,0],1,"News"],[0,[],1,", #video"]]],[1,"p",[[0,[],0,"Here, the theme would assign the post publicly displayed tags of News - but it would also keep a private record of the post being tagged with #video. In your theme, you could then look for private tags conditionally and give them special formatting. "]]],[1,"blockquote",[[0,[2],0,"You can find documentation for theme development techniques like this and many more over on Ghost's extensive "],[0,[3],1,"theme documentation"],[0,[],1,"."]]],[1,"h1",[[0,[],0,"Dynamic Routing"]]],[1,"p",[[0,[],0,"Dynamic routing gives you the ultimate freedom to build a custom publication to suit your needs. Routes are rules that map URL patterns to your content and templates. "]]],[1,"p",[[0,[],0,"For example, you may not want content tagged with "],[0,[1],1,"News"],[0,[],0," to exist on: "],[0,[1],1,"example.com/tag/news"],[0,[],0,". Instead, you want it to exist on "],[0,[1],1,"example.com/news"],[0,[],0," . "]]],[1,"p",[[0,[],0,"In this case you can use dynamic routes to create customised collections of content on your site. It's also possible to use multiple templates in your theme to render each content type differently."]]],[1,"p",[[0,[],0,"There are lots of use cases for dynamic routing with Ghost, here are a few common examples: "]]],[3,"ul",[[[0,[],0,"Setting a custom home page with its own template"]],[[0,[],0,"Having separate content hubs for blog and podcast, that render differently, and have custom RSS feeds to support two types of content"]],[[0,[],0,"Creating a founders column as a unique view, by filtering content created by specific authors"]],[[0,[],0,"Including dates in permalinks for your posts"]],[[0,[],0,"Setting posts to have a URL relative to their primary tag like "],[0,[1],1,"example.com/europe/story-title/"],[1,[],0,0]]]],[1,"blockquote",[[0,[2],0,"Dynamic routing can be configured in Ghost using "],[0,[4],1,"YAML"],[0,[],0," files. Read our dynamic routing "],[0,[5],1,"documentation"],[0,[],1," for further details."]]],[1,"p",[[0,[],0,"You can further customise your site using "],[0,[6],1,"Apps & Integrations"],[0,[],0,"."]]]]}

html:
  <p>Ghost has a flexible organisational taxonomy called<strong> tags</strong> which can be used to configure your site structure using <strong>dynamic routing</strong>. </p><h1 id="basic-tagging">Basic Tagging</h1><p>You can think of tags like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of related content.</p><p>When you create content for your publication you can assign tags to help differentiate between categories of content. </p><p>For example you may tag some content with  News and other content with Podcast, which would create two distinct categories of content listed on <code>/tag/news/</code> and <code>/tag/weather/</code>, respectively.</p><p>If you tag a post with both <code>News</code> <em>and</em> <code>Weather</code> - then it appears in both sections. Tag archives are like dedicated home-pages for each category of content that you have. They have their own pages, their own RSS feeds, and can support their own cover images and meta data.</p><h1 id="the-primary-tag">The primary tag</h1><p>Inside the Ghost editor, you can drag and drop tags into a specific order. The first tag in the list is always given the most importance, and some themes will only display the primary tag (the first tag in the list) by default. </p><blockquote><em><strong>News</strong>, Technology, Startup</em></blockquote><p>So you can add the most important tag which you want to show up in your theme, but also add related tags which are less important.</p><h1 id="private-tags">Private tags</h1><p>Sometimes you may want to assign a post a specific tag, but you don't necessarily want that tag appearing in the theme or creating an archive page. In Ghost, hashtags are private and can be used for special styling.</p><p>For example, if you sometimes publish posts with video content - you might want your theme to adapt and get rid of the sidebar for these posts, to give more space for an embedded video to fill the screen. In this case, you could use private tags to tell your theme what to do.</p><blockquote><em><strong>News</strong>, #video</em></blockquote><p>Here, the theme would assign the post publicly displayed tags of News - but it would also keep a private record of the post being tagged with #video. In your theme, you could then look for private tags conditionally and give them special formatting. </p><blockquote><em>You can find documentation for theme development techniques like this and many more over on Ghost's extensive <a href="https://ghost.org/docs/api/handlebars-themes/">theme documentation</a>.</em></blockquote><h1 id="dynamic-routing">Dynamic Routing</h1><p>Dynamic routing gives you the ultimate freedom to build a custom publication to suit your needs. Routes are rules that map URL patterns to your content and templates. </p><p>For example, you may not want content tagged with <code>News</code> to exist on: <code>example.com/tag/news</code>. Instead, you want it to exist on <code>example.com/news</code> . </p><p>In this case you can use dynamic routes to create customised collections of content on your site. It's also possible to use multiple templates in your theme to render each content type differently.</p><p>There are lots of use cases for dynamic routing with Ghost, here are a few common examples: </p><ul><li>Setting a custom home page with its own template</li><li>Having separate content hubs for blog and podcast, that render differently, and have custom RSS feeds to support two types of content</li><li>Creating a founders column as a unique view, by filtering content created by specific authors</li><li>Including dates in permalinks for your posts</li><li>Setting posts to have a URL relative to their primary tag like <code>example.com/europe/story-title/</code><br></li></ul><blockquote><em>Dynamic routing can be configured in Ghost using <a href="http://yaml.org/spec/1.2/spec.html" rel="noreferrer nofollow noopener">YAML</a> files. Read our dynamic routing <a href="https://ghost.org/docs/api/handlebars-themes/routing/">documentation</a> for further details.</em></blockquote><p>You can further customise your site using <a href="/apps-integrations/">Apps &amp; Integrations</a>.</p>

plaintext:
  Ghost has a flexible organisational taxonomy called tags which can be used to
  configure your site structure using dynamic routing. 

  Basic Tagging
  You can think of tags like Gmail labels. By tagging posts with one or more
  keyword, you can organise articles into buckets of related content.

  When you create content for your publication you can assign tags to help
  differentiate between categories of content. 

  For example you may tag some content with  News and other content with Podcast,
  which would create two distinct categories of content listed on /tag/news/ and 
  /tag/weather/, respectively.

  If you tag a post with both News and Weather - then it appears in both sections.
  Tag archives are like dedicated home-pages for each category of content that you
  have. They have their own pages, their own RSS feeds, and can support their own
  cover images and meta data.

  The primary tag
  Inside the Ghost editor, you can drag and drop tags into a specific order. The
  first tag in the list is always given the most importance, and some themes will
  only display the primary tag (the first tag in the list) by default. 

  > News, Technology, Startup
  So you can add the most important tag which you want to show up in your theme,
  but also add related tags which are less important.

  Private tags
  Sometimes you may want to assign a post a specific tag, but you don't
  necessarily want that tag appearing in the theme or creating an archive page. In
  Ghost, hashtags are private and can be used for special styling.

  For example, if you sometimes publish posts with video content - you might want
  your theme to adapt and get rid of the sidebar for these posts, to give more
  space for an embedded video to fill the screen. In this case, you could use
  private tags to tell your theme what to do.

  > News, #video
  Here, the theme would assign the post publicly displayed tags of News - but it
  would also keep a private record of the post being tagged with #video. In your
  theme, you could then look for private tags conditionally and give them special
  formatting. 

  > You can find documentation for theme development techniques like this and many
  more over on Ghost's extensive theme documentation
  [https://ghost.org/docs/api/handlebars-themes/].
  Dynamic Routing
  Dynamic routing gives you the ultimate freedom to build a custom publication to
  suit your needs. Routes are rules that map URL patterns to your content and
  templates. 

  For example, you may not want content tagged with News to exist on: 
  example.com/tag/news. Instead, you want it to exist on example.com/news . 

  In this case you can use dynamic routes to create customised collections of
  content on your site. It's also possible to use multiple templates in your theme
  to render each content type differently.

  There are lots of use cases for dynamic routing with Ghost, here are a few
  common examples: 

   * Setting a custom home page with its own template
   * Having separate content hubs for blog and podcast, that render differently,
     and have custom RSS feeds to support two types of content
   * Creating a founders column as a unique view, by filtering content created by
     specific authors
   * Including dates in permalinks for your posts
   * Setting posts to have a URL relative to their primary tag like 
     example.com/europe/story-title/
     

  > Dynamic routing can be configured in Ghost using YAML
  [http://yaml.org/spec/1.2/spec.html] files. Read our dynamic routing 
  documentation [https://ghost.org/docs/api/handlebars-themes/routing/] for
  further details.
  You can further customise your site using Apps & Integrations
  [/apps-integrations/].

custom_excerpt:
  Ghost has a flexible organisational taxonomy called tags which can be used to configure your site structure using dynamic routing.


id: 64cfd464dd97c5309d1aefc2
uuid: a76879ed-7f59-4d70-9220-9c7333a22a9d
title: Managing admin settings
slug: admin-settings
comment_id: 64cfd464dd97c5309d1aefc2
feature_image: https://static.ghost.org/v2.0.0/images/admin-settings.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:07
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[["soft-return","",{}],["soft-return","",{}],["soft-return","",{}],["soft-return","",{}],["soft-return","",{}],["soft-return","",{}],["soft-return","",{}]],"cards":[["image",{"src":"https://static.ghost.org/v1.0.0/images/private.png"}],["hr",{"_config":{"url":"http://localhost:2368","adminUrl":null,"apiVersions":{"all":["v0.1","v2","canary"],"canary":{"admin":"canary/admin","content":"canary/content","members":"canary/members"},"v2":{"admin":"v2/admin","content":"v2/content","members":"v2/members"},"v0.1":{"admin":"v0.1","content":"v0.1"}},"slugs":["ghost","rss","amp"],"redirectCacheMaxAge":31536000,"baseApiPath":"/ghost/api","defaultApiVersion":"v0.1","defaultApiType":"content","staticImageUrlPrefix":"content/images","cardTransformers":[{"name":"card-markdown","type":"dom"},{"name":"code","type":"dom"},{"name":"embed","type":"dom"},{"name":"bookmark","type":"dom"},{"name":"hr","type":"dom"},{"name":"html","type":"dom"},{"name":"image","type":"dom"},{"name":"markdown","type":"dom"},{"name":"gallery","type":"dom"}]},"_defaultApiPathOptions":{"baseApiPath":"/ghost/api","version":"v0.1","type":"content","apiVersions":{"all":["v0.1","v2","canary"],"canary":{"admin":"canary/admin","content":"canary/content","members":"canary/members"},"v2":{"admin":"v2/admin","content":"v2/content","members":"v2/members"},"v0.1":{"admin":"v0.1","content":"v0.1"}}}}]],"markups":[["a",["href","/ghost/settings/general/"]],["em"],["strong"],["a",["href","https://ghost.org/pricing/"]],["a",["href","/organising-content/"]]],"sections":[[1,"p",[[0,[],0,"There are a couple of things to do next while you're getting set up:"]]],[1,"h1",[[0,[],0,"Make your site private"]]],[1,"p",[[0,[],0,"If you've got a publication that you don't want the world to see yet because it's not ready to launch, you can hide your Ghost site behind a basic shared pass-phrase."]]],[1,"p",[[0,[],0,"You can toggle this preference on at the bottom of Ghost's "],[0,[0],1,"General Settings"],[0,[],0,":"]]],[10,0],[1,"p",[[0,[],0,"Ghost will give you a short, randomly generated pass-phrase which you can share with anyone who needs access to the site while you're working on it. While this setting is enabled, all search engine optimisation features will be switched off to help keep your site under the radar."]]],[1,"p",[[0,[],0,"Do remember though, this is "],[0,[1],1,"not"],[0,[],0," secure authentication. You shouldn't rely on this feature for protecting important private data. It's just a simple, shared pass-phrase for some very basic privacy."]]],[10,1],[1,"h1",[[0,[],0,"Invite your team "]]],[1,"p",[[0,[],0,"Ghost has a number of different user roles for your team:"]]],[1,"p",[[0,[2],1,"Contributors"],[1,[],0,0],[0,[],0,"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 "],[0,[2],1,"untrusted"],[0,[],0," users with the most basic access to your publication."]]],[1,"p",[[0,[2],1,"Authors"],[1,[],0,1],[0,[],0,"Authors are the 2nd user level in Ghost. Authors can write, edit  and publish their own posts. Authors are "],[0,[2],1,"trusted"],[0,[],0," users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors."]]],[1,"p",[[0,[2],1,"Editors"],[1,[],0,2],[0,[],0,"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."]]],[1,"p",[[0,[2],1,"Administrators"],[1,[],0,3],[0,[],0,"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."],[1,[],0,4],[1,[],0,5],[0,[2],1,"The Owner"],[1,[],0,6],[0,[],0,"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 "],[0,[3,2],2,"Ghost(Pro)"],[0,[],0,"."]]],[1,"blockquote",[[0,[1],1,"It's a good idea to 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."]]],[1,"p",[[0,[],0,"Next up: "],[0,[4],1,"Organising your content"],[0,[],0," "]]]]}

html:
  <p>There are a couple of things to do next while you're getting set up:</p><h1 id="make-your-site-private">Make your site private</h1><p>If you've got a publication that you don't want the world to see yet because it's not ready to launch, you can hide your Ghost site behind a basic shared pass-phrase.</p><p>You can toggle this preference on at the bottom of Ghost's <a href="/ghost/settings/general/">General Settings</a>:</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://static.ghost.org/v1.0.0/images/private.png" class="kg-image"></figure><!--kg-card-end: image--><p>Ghost will give you a short, randomly generated pass-phrase which you can share with anyone who needs access to the site while you're working on it. While this setting is enabled, all search engine optimisation features will be switched off to help keep your site under the radar.</p><p>Do remember though, this is <em>not</em> secure authentication. You shouldn't rely on this feature for protecting important private data. It's just a simple, shared pass-phrase for some very basic privacy.</p><!--kg-card-begin: hr--><hr><!--kg-card-end: hr--><h1 id="invite-your-team">Invite your team </h1><p>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>It's a good idea to 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><p>Next up: <a href="/organising-content/">Organising your content</a> </p>

plaintext:
  There are a couple of things to do next while you're getting set up:

  Make your site private
  If you've got a publication that you don't want the world to see yet because
  it's not ready to launch, you can hide your Ghost site behind a basic shared
  pass-phrase.

  You can toggle this preference on at the bottom of Ghost's General Settings
  [/ghost/settings/general/]:

  Ghost will give you a short, randomly generated pass-phrase which you can share
  with anyone who needs access to the site while you're working on it. While this
  setting is enabled, all search engine optimisation features will be switched off
  to help keep your site under the radar.

  Do remember though, this is not secure authentication. You shouldn't rely on
  this feature for protecting important private data. It's just a simple, shared
  pass-phrase for some very basic privacy.


  --------------------------------------------------------------------------------

  Invite your team 
  Ghost has a number of different user roles for your team:

  Contributors
  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 untrusted users with the most basic access to your publication.

  Authors
  Authors are the 2nd user level in Ghost. Authors can write, edit  and publish
  their own posts. Authors are trusted users. If you don't trust users to be
  allowed to publish their own posts, they should be set as Contributors.

  Editors
  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.

  Administrators
  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.

  The Owner
  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 Ghost(Pro) [https://ghost.org/pricing/].

  > It's a good idea to 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.
  Next up: Organising your content [/organising-content/]

custom_excerpt:
  There are a couple of things to do next while you're getting set up: making your site private and inviting your team.


id: 64cfd464dd97c5309d1aefc4
uuid: 2a3a4540-b267-4a6b-af0e-73c444b23ff5
title: Publishing options
slug: publishing-options
comment_id: 64cfd464dd97c5309d1aefc4
feature_image: https://static.ghost.org/v2.0.0/images/publishing-options.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:08
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[],"cards":[["code",{"code":"{\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"Article\",\n    \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Publishing options\",\n        \"logo\": \"https://static.ghost.org/ghost-logo.svg\"\n    },\n    \"author\": {\n        \"@type\": \"Person\",\n        \"name\": \"Ghost\",\n        \"url\": \"http://demo.ghost.io/author/ghost/\",\n        \"sameAs\": []\n    },\n    \"headline\": \"Publishing options\",\n    \"url\": \"http://demo.ghost.io/publishing-options\",\n    \"datePublished\": \"2018-08-08T11:44:00.000Z\",\n    \"dateModified\": \"2018-08-09T12:06:21.000Z\",\n    \"keywords\": \"Getting Started\",\n    \"description\": \"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.\",\n    }\n}\n    "}]],"markups":[["a",["href","https://schema.org/"]],["a",["href","https://search.google.com/structured-data/testing-tool","rel","noreferrer nofollow noopener"]],["strong"],["a",["href","/ghost/settings/code-injection/"]],["a",["href","/admin-settings/"]]],"sections":[[1,"p",[[0,[],0,"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page. "]]],[1,"blockquote",[[0,[],0,"Access the post settings menu in the top right hand corner of the editor. "]]],[1,"h2",[[0,[],0,"Post feature image"]]],[1,"p",[[0,[],0,"Insert your post feature image from the very top of the post settings menu. Consider resizing or optimising your image first to ensure it's an appropriate size."]]],[1,"h2",[[0,[],0,"Structured data & SEO"]]],[1,"p",[[0,[],0,"Customise your social media sharing cards for Facebook and Twitter, enabling you to add custom images, titles and descriptions for social media."]]],[1,"p",[[0,[],0,"There’s no need to hard code your meta data. You can set your meta title and description using the post settings tool, which has a handy character guide and SERP preview. "]]],[1,"p",[[0,[],0,"Ghost will automatically implement structured data for your publication using JSON-LD to further optimise your content."]]],[10,0],[1,"p",[[0,[],0,"You can test that the structured data "],[0,[0],1,"schema"],[0,[],0," on your site is working as it should using "],[0,[1],1,"Google’s structured data tool"],[0,[],0,". "]]],[1,"h2",[[0,[],0,"Code Injection"]]],[1,"p",[[0,[],0,"This tool allows you to inject code on a per post or page basis, or across your entire site. This means you can modify CSS, add unique tracking codes, or add other scripts to the head or foot of your publication without making edits to your theme files. "]]],[1,"p",[[0,[2],1,"To add code site-wide"],[0,[],0,", use the code injection tool "],[0,[3],1,"in the main admin menu"],[0,[],0,". This is useful for adding a Facebook Pixel, a Google Analytics tracking code, or to start tracking with any other analytics tool."]]],[1,"p",[[0,[2],1,"To add code to a post or page"],[0,[],0,", use the code injection tool within the post settings menu. This is useful if you want to add art direction, scripts or styles that are only applicable to one post or page. "]]],[1,"p",[[0,[],0,"From here, you might be interested in managing some more specific "],[0,[4],1,"admin settings"],[0,[],0,"!"]]]]}

html:
  <p>The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page. </p><blockquote>Access the post settings menu in the top right hand corner of the editor. </blockquote><h2 id="post-feature-image">Post feature image</h2><p>Insert your post feature image from the very top of the post settings menu. Consider resizing or optimising your image first to ensure it's an appropriate size.</p><h2 id="structured-data-seo">Structured data &amp; SEO</h2><p>Customise your social media sharing cards for Facebook and Twitter, enabling you to add custom images, titles and descriptions for social media.</p><p>There’s no need to hard code your meta data. You can set your meta title and description using the post settings tool, which has a handy character guide and SERP preview. </p><p>Ghost will automatically implement structured data for your publication using JSON-LD to further optimise your content.</p><!--kg-card-begin: code--><pre><code>{
      "@context": "https://schema.org",
      "@type": "Article",
      "publisher": {
          "@type": "Organization",
          "name": "Publishing options",
          "logo": "https://static.ghost.org/ghost-logo.svg"
      },
      "author": {
          "@type": "Person",
          "name": "Ghost",
          "url": "http://demo.ghost.io/author/ghost/",
          "sameAs": []
      },
      "headline": "Publishing options",
      "url": "http://demo.ghost.io/publishing-options",
      "datePublished": "2018-08-08T11:44:00.000Z",
      "dateModified": "2018-08-09T12:06:21.000Z",
      "keywords": "Getting Started",
      "description": "The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.",
      }
  }
      </code></pre><!--kg-card-end: code--><p>You can test that the structured data <a href="https://schema.org/">schema</a> on your site is working as it should using <a href="https://search.google.com/structured-data/testing-tool" rel="noreferrer nofollow noopener">Google’s structured data tool</a>. </p><h2 id="code-injection">Code Injection</h2><p>This tool allows you to inject code on a per post or page basis, or across your entire site. This means you can modify CSS, add unique tracking codes, or add other scripts to the head or foot of your publication without making edits to your theme files. </p><p><strong>To add code site-wide</strong>, use the code injection tool <a href="/ghost/settings/code-injection/">in the main admin menu</a>. This is useful for adding a Facebook Pixel, a Google Analytics tracking code, or to start tracking with any other analytics tool.</p><p><strong>To add code to a post or page</strong>, use the code injection tool within the post settings menu. This is useful if you want to add art direction, scripts or styles that are only applicable to one post or page. </p><p>From here, you might be interested in managing some more specific <a href="/admin-settings/">admin settings</a>!</p>

plaintext:
  The Ghost editor has everything you need to fully optimise your content. This is
  where you can add tags and authors, feature a post, or turn a post into a page. 

  > Access the post settings menu in the top right hand corner of the editor. 
  Post feature image
  Insert your post feature image from the very top of the post settings menu.
  Consider resizing or optimising your image first to ensure it's an appropriate
  size.

  Structured data & SEO
  Customise your social media sharing cards for Facebook and Twitter, enabling you
  to add custom images, titles and descriptions for social media.

  There’s no need to hard code your meta data. You can set your meta title and
  description using the post settings tool, which has a handy character guide and
  SERP preview. 

  Ghost will automatically implement structured data for your publication using
  JSON-LD to further optimise your content.

  {
      "@context": "https://schema.org",
      "@type": "Article",
      "publisher": {
          "@type": "Organization",
          "name": "Publishing options",
          "logo": "https://static.ghost.org/ghost-logo.svg"
      },
      "author": {
          "@type": "Person",
          "name": "Ghost",
          "url": "http://demo.ghost.io/author/ghost/",
          "sameAs": []
      },
      "headline": "Publishing options",
      "url": "http://demo.ghost.io/publishing-options",
      "datePublished": "2018-08-08T11:44:00.000Z",
      "dateModified": "2018-08-09T12:06:21.000Z",
      "keywords": "Getting Started",
      "description": "The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.",
      }
  }
      

  You can test that the structured data schema [https://schema.org/] on your site
  is working as it should using Google’s structured data tool
  [https://search.google.com/structured-data/testing-tool]. 

  Code Injection
  This tool allows you to inject code on a per post or page basis, or across your
  entire site. This means you can modify CSS, add unique tracking codes, or add
  other scripts to the head or foot of your publication without making edits to
  your theme files. 

  To add code site-wide, use the code injection tool in the main admin menu
  [/ghost/settings/code-injection/]. This is useful for adding a Facebook Pixel, a
  Google Analytics tracking code, or to start tracking with any other analytics
  tool.

  To add code to a post or page, use the code injection tool within the post
  settings menu. This is useful if you want to add art direction, scripts or
  styles that are only applicable to one post or page. 

  From here, you might be interested in managing some more specific admin settings
  [/admin-settings/]!

custom_excerpt:
  The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.


id: 64cfd464dd97c5309d1aefc6
uuid: acc1e8ff-7b9b-4981-b5e8-8db27d7c442f
title: Writing posts with Ghost ✍️
slug: the-editor
comment_id: 64cfd464dd97c5309d1aefc6
feature_image: https://static.ghost.org/v2.0.0/images/writing-posts-with-ghost.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:04
created_by: 1
updated_at: 2023-08-06 17:12:04
updated_by: 1
published_at: 2023-08-06 17:12:09
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[],"cards":[["image",{"src":"https://static.ghost.org/v2.0.0/images/formatting-editor-demo.gif"}],["code",{"code":"<header class=\"site-header outer\">\n    <div class=\"inner\">\n        {{> \"site-nav\"}}\n    </div>\n</header>"}],["image",{"src":"https://static.ghost.org/v2.0.0/images/using-images-demo.gif"}]],"markups":[["strong"],["code"],["a",["href","/publishing-options/"]]],"sections":[[1,"p",[[0,[],0,"Ghost has a powerful visual editor with familiar formatting options, as well as the ability to seamlessly add dynamic content. "]]],[1,"p",[[0,[],0,"Select the text to add formatting, headers or create links, or use Markdown shortcuts to do the work for you - if that's your thing. "]]],[10,0],[1,"h2",[[0,[],0,"Rich editing at your fingertips"]]],[1,"p",[[0,[],0,"The editor can also handle rich media objects, called "],[0,[0],1,"cards"],[0,[],0,". "]]],[1,"p",[[0,[],0,"You can insert a card either by clicking the  "],[0,[1],1,"+"],[0,[],0,"  button on a new line, or typing  "],[0,[1],1,"/"],[0,[],0,"  on a new line to search for a particular card. This allows you to efficiently insert"],[0,[0],1," images"],[0,[],0,", "],[0,[0],1,"markdown"],[0,[],0,", "],[0,[0],1,"html"],[0,[],0," and "],[0,[0],1,"embeds"],[0,[],0,"."]]],[1,"p",[[0,[0],1,"For Example"],[0,[],0,":"]]],[3,"ul",[[[0,[],0,"Insert a video from YouTube directly into your content by pasting the URL "]],[[0,[],0,"Create unique content like a button or content opt-in using the HTML card"]],[[0,[],0,"Need to share some code? Embed code blocks directly "]]]],[10,1],[1,"h1",[[0,[],0,"Working with images in posts"]]],[1,"p",[[0,[],0,"You can add images to your posts in many ways:"]]],[3,"ul",[[[0,[],0,"Upload from your computer"]],[[0,[],0,"Click and drag an image into the browser"]],[[0,[],0,"Paste directly into the editor from your clipboard"]],[[0,[],0,"Insert using a URL"]]]],[1,"p",[[0,[],0,"Once inserted you can blend images beautifully into your content at different sizes and add captions wherever needed."]]],[10,2],[1,"p",[[0,[],0,"The post settings menu and publishing options can be found in the top right hand corner. For more advanced tips on post settings check out the "],[0,[2],1,"publishing options"],[0,[],0," post!"]]],[1,"p",[]]]}

html:
  <p>Ghost has a powerful visual editor with familiar formatting options, as well as the ability to seamlessly add dynamic content. </p><p>Select the text to add formatting, headers or create links, or use Markdown shortcuts to do the work for you - if that's your thing. </p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://static.ghost.org/v2.0.0/images/formatting-editor-demo.gif" class="kg-image"></figure><!--kg-card-end: image--><h2 id="rich-editing-at-your-fingertips">Rich editing at your fingertips</h2><p>The editor can also handle rich media objects, called <strong>cards</strong>. </p><p>You can insert a card either by clicking the  <code>+</code>  button on a new line, or typing  <code>/</code>  on a new line to search for a particular card. This allows you to efficiently insert<strong> images</strong>, <strong>markdown</strong>, <strong>html</strong> and <strong>embeds</strong>.</p><p><strong>For Example</strong>:</p><ul><li>Insert a video from YouTube directly into your content by pasting the URL </li><li>Create unique content like a button or content opt-in using the HTML card</li><li>Need to share some code? Embed code blocks directly </li></ul><!--kg-card-begin: code--><pre><code>&lt;header class="site-header outer"&gt;
      &lt;div class="inner"&gt;
          {{&gt; "site-nav"}}
      &lt;/div&gt;
  &lt;/header&gt;</code></pre><!--kg-card-end: code--><h1 id="working-with-images-in-posts">Working with images in posts</h1><p>You can add images to your posts in many ways:</p><ul><li>Upload from your computer</li><li>Click and drag an image into the browser</li><li>Paste directly into the editor from your clipboard</li><li>Insert using a URL</li></ul><p>Once inserted you can blend images beautifully into your content at different sizes and add captions wherever needed.</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://static.ghost.org/v2.0.0/images/using-images-demo.gif" class="kg-image"></figure><!--kg-card-end: image--><p>The post settings menu and publishing options can be found in the top right hand corner. For more advanced tips on post settings check out the <a href="/publishing-options/">publishing options</a> post!</p>

plaintext:
  Ghost has a powerful visual editor with familiar formatting options, as well as
  the ability to seamlessly add dynamic content. 

  Select the text to add formatting, headers or create links, or use Markdown
  shortcuts to do the work for you - if that's your thing. 

  Rich editing at your fingertips
  The editor can also handle rich media objects, called cards. 

  You can insert a card either by clicking the+ button on a new line, or typing/ 
  on a new line to search for a particular card. This allows you to efficiently
  insert images, markdown, html and embeds.

  For Example:

   * Insert a video from YouTube directly into your content by pasting the URL 
   * Create unique content like a button or content opt-in using the HTML card
   * Need to share some code? Embed code blocks directly 

  <header class="site-header outer">
      <div class="inner">
          {{> "site-nav"}}
      </div>
  </header>

  Working with images in posts
  You can add images to your posts in many ways:

   * Upload from your computer
   * Click and drag an image into the browser
   * Paste directly into the editor from your clipboard
   * Insert using a URL

  Once inserted you can blend images beautifully into your content at different
  sizes and add captions wherever needed.

  The post settings menu and publishing options can be found in the top right hand
  corner. For more advanced tips on post settings check out the publishing options
  [/publishing-options/] post!

custom_excerpt:
  Getting started with the editor is simple, with familiar formatting options in a functional toolbar and the ability to add dynamic content seamlessly.


id: 64cfd465dd97c5309d1aefc8
uuid: dcb6b296-731b-4c51-a155-984aeee61044
title: Welcome to Ghost
slug: welcome
comment_id: 64cfd465dd97c5309d1aefc8
feature_image: https://static.ghost.org/v2.0.0/images/welcome-to-ghost.jpg
status: published
visibility: public
author_id: 5951f5fca366002ebd5dbef7
created_at: 2023-08-06 17:12:05
created_by: 1
updated_at: 2023-08-06 17:12:05
updated_by: 1
published_at: 2023-08-06 17:12:10
published_by: 1
mobiledoc:
  {"version":"0.3.1","atoms":[],"cards":[],"markups":[["strong"],["a",["href","https://ghost.org/downloads/"]],["a",["href","https://ghost.org/pricing"]],["a",["href","https://github.com/TryGhost"]],["a",["href","/the-editor/"]],["em"]],"sections":[[1,"p",[[0,[],0,"👋 Welcome, it's great to have you here."]]],[1,"p",[[0,[],0,"We know that first impressions are important, so we've populated your new site with some initial "],[0,[0],1,"getting started"],[0,[],0," posts that will help you get familiar with everything in no time. This is the first one!"]]],[1,"p",[[0,[0],1,"A few things you should know upfront"],[0,[],0,":"]]],[3,"ol",[[[0,[],0,"Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for. "]],[[0,[],0,"The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog. "]],[[0,[],0,"For the best experience we recommend downloading the "],[0,[1],1,"Ghost Desktop App"],[0,[],0," for your computer, which is the best way to access your Ghost site on a desktop device. "]]]],[1,"p",[[0,[],0,"Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our "],[0,[2],1,"Ghost(Pro)"],[0,[],0," service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing."]]],[1,"p",[[0,[],0,"The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source "],[0,[3],1,"community"],[0,[],0,"."]]],[1,"h2",[[0,[],0,"Next up, the editor"]]],[1,"p",[[0,[],0,"The main thing you'll want to read about next is probably: "],[0,[4],1,"the Ghost editor"],[0,[],0,". This is where the good stuff happens."]]],[1,"blockquote",[[0,[5],0,"By the way, once you're done reading, you can simply delete the default "],[0,[0],1,"Ghost"],[0,[],1," user from your team to remove all of these introductory posts! "]]]]}

html:
  <p>👋 Welcome, it's great to have you here.</p><p>We know that first impressions are important, so we've populated your new site with some initial <strong>getting started</strong> posts that will help you get familiar with everything in no time. This is the first one!</p><p><strong>A few things you should know upfront</strong>:</p><ol><li>Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for. </li><li>The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog. </li><li>For the best experience we recommend downloading the <a href="https://ghost.org/downloads/">Ghost Desktop App</a> for your computer, which is the best way to access your Ghost site on a desktop device. </li></ol><p>Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our <a href="https://ghost.org/pricing">Ghost(Pro)</a> service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.</p><p>The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source <a href="https://github.com/TryGhost">community</a>.</p><h2 id="next-up-the-editor">Next up, the editor</h2><p>The main thing you'll want to read about next is probably: <a href="/the-editor/">the Ghost editor</a>. This is where the good stuff happens.</p><blockquote><em>By the way, once you're done reading, you can simply delete the default <strong>Ghost</strong> user from your team to remove all of these introductory posts! </em></blockquote>

plaintext:
  👋 Welcome, it's great to have you here.

  We know that first impressions are important, so we've populated your new site
  with some initial getting started posts that will help you get familiar with
  everything in no time. This is the first one!

  A few things you should know upfront:

   1. Ghost is designed for ambitious, professional publishers who want to
      actively build a business around their content. That's who it works best
      for. 
   2. The entire platform can be modified and customised to suit your needs. It's
      very powerful, but does require some knowledge of code. Ghost is not
      necessarily a good platform for beginners or people who just want a simple
      personal blog. 
   3. For the best experience we recommend downloading the Ghost Desktop App
      [https://ghost.org/downloads/] for your computer, which is the best way to
      access your Ghost site on a desktop device. 

  Ghost is made by an independent non-profit organisation called the Ghost
  Foundation. We are 100% self funded by revenue from our Ghost(Pro)
  [https://ghost.org/pricing] service, and every penny we make is re-invested into
  funding further development of free, open source technology for modern
  publishing.

  The version of Ghost you are looking at right now would not have been made
  possible without generous contributions from the open source community
  [https://github.com/TryGhost].

  Next up, the editor
  The main thing you'll want to read about next is probably: the Ghost editor
  [/the-editor/]. This is where the good stuff happens.

  > By the way, once you're done reading, you can simply delete the default Ghost 
  user from your team to remove all of these introductory posts!

custom_excerpt:
  Welcome, it's great to have you here.
  We know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.


# settings

id: 64cfd466dd97c5309d1af0bc
key: navigation
type: blog
created_at: 2023-08-06 17:12:06
created_by: 1
updated_at: 2023-08-06 17:12:06
updated_by: 1
value:
  [{"label":"Home", "url":"/"},{"label":"Tag", "url":"/tag/getting-started/"}, {"label":"Author", "url":"/author/ghost/"},{"label":"Help", "url":"https://ghost.org/docs/"}]


id: 64cfd466dd97c5309d1af0cb
key: members_public_key
type: members
created_at: 2023-08-06 17:12:06
created_by: 1
updated_at: 2023-08-06 17:12:06
updated_by: 1
value:
  -----BEGIN RSA PUBLIC KEY-----
  MIGJAoGBAMtAUhTFqRcjPGzvqQqlivwE7suLYdzFqe2jAPF9a5ENU7jzu98q9mMf27SYvIaa
  inIfAVbu5UJiLwDuN8Hiq40sraHu45RdDpacThiP8VMdiqynShN3dbigERhraChK0unsP06h
  sVEv6FFFITcEg4FdPsfO4x/tc6rVpG4yX0TXAgMBAAE=
  -----END RSA PUBLIC KEY-----


id: 64cfd466dd97c5309d1af0cc
key: members_private_key
type: members
created_at: 2023-08-06 17:12:06
created_by: 1
updated_at: 2023-08-06 17:12:06
updated_by: 1
value:
  -----BEGIN RSA PRIVATE KEY-----
  MIICXgIBAAKBgQDLQFIUxakXIzxs76kKpYr8BO7Li2HcxantowDxfWuRDVO487vfKvZjH9u0
  mLyGmopyHwFW7uVCYi8A7jfB4quNLK2h7uOUXQ6WnE4Yj/FTHYqsp0oTd3W4oBEYa2goStLp
  7D9OobFRL+hRRSE3BIOBXT7HzuMf7XOq1aRuMl9E1wIDAQABAoGAYQfw55fBdJlOxJbZdYq4
  Qj48nhGJg7Mdv6P81EzS6GmbWYWKYC0LeSEBa0MrZXsrsvWYVx8vdbSXyfLvzXDgAmiJ+9m0
  Is78KEXe3Hz0TsYKb5XZH76lYQG4ucRPoGjfVxb83u711T5sITWOAAISvN2UuKy0XdWSWHHE
  1u7A5SkCQQDv61a6icKIQa9cqWlwuAatF4Znf7myKmnSl2+PQcaOGlrLhRVPMLI/RwS6VKmK
  z9lv0w7GP9qV72vB3KQtZ86tAkEA2N/P9w6pMmgFf5ZDjw2bdg+n0mt65xo7sBxxVaEmx5CF
  +jJ/EdbrBFrFPfclKJOELznwg7c9Tq2fzKhOWNpmEwJBAIKhDXjFdyC/Ot7l8t4HpMLr8yc5
  OP9T7ohWIczLUHOgz9zOGjsi1Xp0jZNyc1l8L/Sd4wZ4T+ihEnfcTZvXUIUCQQAIVfnxXg/k
  zxi/AbCRFA3QqONjdBwiO+DlcQJuLyaFbymnJz+5GNCpty9zpUc5WwouooR7G5TwrD3DKQjx
  41sfAkEA2fmrrvaebrjmk6CvUuZ2WacSkH/bxh8ypd9YarBb7ypTFH+B1R24R7M40S+hWtgD
  BWDQCZeojy12zjcfk2aCZw==
  -----END RSA PRIVATE KEY-----


id: 64cfd466dd97c5309d1af0ce
key: members_email_auth_secret
type: members
created_at: 2023-08-06 17:12:06
created_by: 1
updated_at: 2023-08-06 17:12:06
updated_by: 1
value:
  86e2c5392a0db5f3a1d32a6cef651b30723d71a3984f790f6514f74103af0ef9ac44d48d9330889eed62957d80421677d0a3f1beeea221dd6ec5fbca2643a9bb


id: 64cfd466dd97c5309d1af0d0
key: members_subscription_settings
type: members
created_at: 2023-08-06 17:12:06
created_by: 1
updated_at: 2023-08-06 17:12:06
updated_by: 1
value:
  {"isPaid":false,"fromAddress":"noreply","allowSelfSignup":true,"paymentProcessors":[{"adapter":"stripe","config":{"secret_token":"","public_token":"","product":{"name":"Ghost Subscription"},"plans":[{"name":"Monthly","currency":"usd","interval":"month","amount":""},{"name":"Yearly","currency":"usd","interval":"year","amount":""}]}}]}


