Getting Started

Introduction

The following documentation serves as your guide to the new theme. Since this is Ghost theme documentation, it is assumed that you have a basic knowledge of the Ghost.

Getting Started

Uploading a theme

This is where the magic happens! You are able to upload, activate and delete a theme in the Ghost Admin of your publication.

Step-by-Step
  1. To upload a theme, go to the 'Design & branding' settings in the Ghost Admin and click 'Change theme' in the bottom right corner.
  2. Then click the 'Upload theme' button in the upper right corner.
  3. Once uploaded, click 'Activate' to activate the theme on your site.
Activation

Dark & sepia version

The dark or sepia version introduces a fresh and distinctive appearance for your website, bringing a modern and stylish aesthetic that enhances the visual experience for your visitors.

Step-by-Step
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Site-wide' – expand this settings list and go to the 'Color scheme' position.
  3. Use the dropdown menu to select your option.
  4. Finally, click 'Save' to activate.
Tip: Dark & sepia version depending on operating system preferences
Modern operating systems (Windows, macOS, iOS, etc.) allow users to choose their preference for light or dark system themes. The below feature is used to detect if the user has requested the system to use a light or dark color theme.
  1. To activate an auto dark version based on user operating system preferences, select the 'Auto' option.
  2. Click 'Save' to activate.
Activation

Search function

By default, the theme uses a native search option. You can also use the search function specially designed for this theme — to do this, you must set the Content API key.

Step 1: Generating Content API key
  1. To generate 'Content API key', go to the 'Integrations' settings in the Ghost Admin.
  2. Click 'Add custom integration', then give the new integration a name, like 'Search', and click the 'Add' button.
  3. Copy your 'Content API key' and click 'Save & close'.
Step 2: Activate the search function
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Site-wide' – expand this settings list and go to the 'Content API key for search' position.
  3. Paste your 'Content API key'.
  4. Finally, click 'Save' to activate.
Activation

Social accounts

Facebook and X
  1. To add Facebook and X account to your publication, go to the 'Social accounts' settings in the Ghost Admin.
  2. Once adding social accounts, click 'Save' to activate.
  1. Open ../partials/footer_icons.hbs file in your code editor.
  2. Then, uncomment the block – remove the lines which contains {{!-- and --}} for the chosen profile icon.
  3. Now replace the # for each href value with your own profile links.
  4. Save your footer_icons.hbs file in ../partials/ folder.
Activation

Authors page

To present all authors from your publication in an elegant way, you can add a custom authors page.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Authors' template, close the panel.
  4. Finally, click 'Publish'.
Activation

Tags page

To present all tags from your publication in an elegant way, you can add a custom tags page.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Tags' template, close the panel.
  4. Finally, click 'Publish'.
Activation

Contact page

If you wish to have a direct way in which your readers can contact you, you can add a contact page based on Formspree or Getform.

Step 1: Add your Formspree or Getform endpoint
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Site-wide' – expand this settings list and go to the 'Contact form endpoint' position.
  3. Paste your Formspree or Getform endpoint, e.g. https://formspree.io/f/xhyplkej
  4. Finally, click Save to activate.
Step 2: Add a contact page
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Contact' template, close the panel.
  4. Finally, click 'Publish'.
Customization

Logo

A publication logo is the primary logo for your brand and is displayed across your theme.

Step-by-Step
  1. To upload a logo, go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Brand' – expand this settings list and go to the 'Publication logo' position.
  3. Click 'Upload logo' to upload your logo.
  4. Finally, click 'Save' to activate.
Tip: How to change logo size?
  1. To change logo size go to the 'Code injection' settings in the Ghost Admin and paste this code to the 'Site header':
<style>
:root {
   --height-logo-header: 26px;
   --height-logo-footer: 26px;
   --height-logo-mobile: 26px;
}
</style>
  1. Change the current value to the expected value.
  2. Finally, click 'Save' to activate.
Customization

Publication cover

A publication cover is an optional large background image that can be used with your publication.

Step-by-Step
  1. To upload a publication cover, go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Brand' – expand this settings list and go to the 'Publication cover' position.
  3. Click 'Upload cover' to upload your image.
  4. Finally, click 'Save' to activate.
Tip: Publication cover only on the homepage
By default, the publication cover is displayed on all pages. If you want to show the publication cover only on the homepage, change the 'Publication cover only on homepage' setting in the Ghost Admin.
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Site-wide' – expand this settings list and go to the 'Publication cover only on homepage' position.
  3. Use the switch to activate the option.
  4. Finally, click 'Save' to activate.
Customization

Accent color

Primary color used in your publication.

Step-by-Step
  1. To change the accent color in your publication, go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Brand' – expand this settings list and go to the 'Accent color' position.
  3. Choose your color.
  4. Finally, click 'Save' to activate.
Customization

Accent color buttons

By default, the buttons (e.g 'Load more') in the theme are in accent color. You can change in to black – with the accent color when hovering the mouse.

Step-by-Step
  1. To deactivate accent color buttons in your publication, go to the 'Design & branding' in the Ghost Admin.
  2. On the right you’ll see the tab 'Site-wide' – expand this settings list and go to the 'Accent color buttons' position.
  3. Use the switch to deactivate the option.
  4. Finally, click 'Save' to activate.
Customization

Hero section

The hero section includes a title, subscription form or search box at the top of the homepage.

Tip: How to add your own hero title?
  1. To add your own hero title, go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Homepage' – expand this settings list and go to the 'Hero title text' position.
  3. Enter your own hero title.

If you want to use italic text, use the <span> ... </span>  tag, like this:

<span>This is text in italics</span> and this one doesn't.
  1. Finally, click 'Save' to activate.
Tip: How to add description?
  1. To add description to hero section, go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Brand' – expand this settings list and go to the 'Site description' position.
  3. Enter your own description.
  4. Finally, click 'Save' to activate.
  1. You can easily replace the /membership/ page with for example /signup/, for this purpose open ../partials/members/hero_button.hbs file in your code editor and find:
<a href="{{@site.url}}/membership/" ...
  1. Then, replace with:
<a href="{{@site.url}}/signup/" ...
  1. Save your hero_button.hbs file in ../partials/members/ folder.
  2. Create a 'signup' page with /signup/ page URL.
Customization

Special section

You have the option to add a special section with posts on the homepage, below the 'Load more' button.

By default, the section located on the homepage displays related posts to the most recent post if it has a 'primary tag' added.
Tip: How to add a special section with posts for selected tag?
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Homepage' – expand this settings list and go to the 'Tag for special section' position.
  3. Enter your tag slug, e.g. lifestyle
Customization

Post header layouts

The theme includes a collection of post header layouts, allowing you to customize text and images in relation to each other.

Templates only work when a featured image is added.
Activate 'Background Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Background Image' template, close the panel.
  4. Finally, click 'Publish'.
Activate 'Box Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Box Image' template, close the panel.
  4. Finally, click 'Publish'.
Activate 'Box With Background Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Box With Background Image' template, close the panel.
  4. Finally, click 'Publish'.
Activate 'Default With Background Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Default With Background' Image template, close the panel.
  4. Finally, click 'Publish'.
Activate 'Full Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Full Image' template, close the panel.
  4. Finally, click 'Publish'.
Activate 'Full With Background Image' template (example)
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Post Full With Background Image' template, close the panel.
  4. Finally, click 'Publish'.
Customization

Post title: 'italic' style

Ghost, unfortunately, does not natively support italicizing titles. However, you can achieve this by adding a simple JavaScript code to the post or page.

The javascript code is done on client-side with the use of browser (not the server-side), so it is possible that you’ll see a quick conversion to italic text. This is called FOUT (Flash of Unstyled Text) and unfortunately that can’t be changed.
Step-by-Step
  1. Open the 'Post settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a item titled 'Code injection'.
  3. Then, paste this code to the 'Post footer':
<script>
var newTitle=document.getElementById('post-title');
    newTitle&&(newTitle.innerHTML="This is <span>italics</span>")
</script>

When analyzing the provided code, make sure to insert your title between the quotation marks. Anything placed between the <span> ... </span> tags will appear in italics. For example:

"This is <span>italics</span>"
  1. Close the panel and click 'Update', to activate.
Customization

Post-cards options

You can take advantage of several additional options for post-cards placed in the feed.

Top title for post-card
  1. To change the post-card size, just add an internal tag #item-large (tags which are prefixed by a # character, are internal tags within Ghost) in 'Post settings' panel to the published post.
  2. Click 'Update', to activate.
  1. The tag slug should be hash-item-large
Large size for post-card
  1. To change the post-card size, just add an internal tag #item-large (tags which are prefixed by a # character, are internal tags within Ghost) in 'Post settings' panel to the published post.
  2. Click 'Update', to activate.
  1. The tag slug should be hash-item-large
Customization

Responsive tables

The responsive table will display a horizontal scroll bar if the screen is too small to display the full content. The following description applies to the table added using the markdown card.

By default, the table adapts to the window width. If you have a table that is too wide, you can add a container <div class="responsive-table"> element with around the table, and it will display a horizontal scroll bar when needed.
Step-by-Step
  1. To add a responsive table, use the 'Markdown card'.
  2. Add a container <div class="responsive-table"> element with around the table (in markdown there always needs to be a blank line between any HTML and markdown).
<div class="responsive-table">

| # | Heading | Heading | Heading | Heading | Heading |
|:--|:--------|:--------|:--------|:--------|:--------|
| 1 | Cell    | Cell    | Cell    | Cell    | Cell    |
| 2 | Cell    | Cell    | Cell    | Cell    | Cell    |
| 3 | Cell    | Cell    | Cell    | Cell    | Cell    |

</div>

Markdown table syntax is quite simple. It does not allow row or cell spanning as well as putting multi-line text in a cell. The first row is always the header followed by an extra line with dashes - and optional colons : for forcing column alignment.

Tip: What it takes to generate a table?

To generate a table, you can use the tool Markdown Tables Generator.

Members

Custom pages

The members feature allows you to turn any site into a membership business with member signup, paid subscriptions and email newsletters.

The members feature is enabled by default. However, you need to create the following pages to avoid the 404 error.

Step-by-Step
  1. Create an Account page.
  2. Create Signup & Signin pages.
  3. Create a Membership page.
Tip: What to do in case of an 400 error with message e.g. 'Missing template members/signin.hbs for route /signin/'
The error indicates that there was previously used a routes.yaml file with another theme that required it. To solve the problem, reset the routes.yaml file to its default settings.
routes:

collections:
  /:
    permalink: /{slug}/
    template: index

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

Default settings for routes.yaml file

Members

Login panel

The login panel is a navigation component that shows 'Sign in / Sign up' button when a member is logged out, and 'Account' button when a member is logged in.

Tip: Replacing 'Sign up' with 'Membership' (Requires theme editing)
  1. You can easily replace the 'Membership' page with 'Sign up', for this purpose open ../partials/members/login_panel.hbs file in your code editor and find:
<a href="{{@site.url}}/signup/" class="global-button">{{t "Sign up"}}</a>
  1. Then, replace with:
<a href="{{@site.url}}/membership/" class="global-button">Membership</a>
  1. Save your login_panel.hbs file in ../partials/members/ folder.
Members

Account page

The account page shows your members the type of account they’re having and gives them some subscription specific data.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. Provide the appropriate 'Page URL' as /account/
  3. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  4. Use the dropdown menu to select the 'Account' template, close the panel.
  5. Finally, click 'Publish'.
There is also a special template called 'Account Basic' which does not display pricing plans. This template is a good choice when you do not offer paid plans and you don’t have posts marked as 'Paid-members only'.
Members

Signup & Signin pages

The 'Signup' and 'Signin' pages are allowing your visitors to sign up to your site in order to access members only content.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. Provide the appropriate 'Page URL' as /signin/ for the 'Signin' page and /signup/ for the 'Signup' page.
  3. At the bottom of the panel, you’ll see a dropdown menu titled 'Template'.
  4. Use the dropdown menu to select the 'Signin' for the signin page and 'Signup' for the signup page.
  5. Finally, click 'Publish'.
Members

Membership page

The 'Membership' page is helping your visitors to quickly visualize and compare the different pricing plans you offer.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Membership' template, close the panel.
  4. Finally, click 'Publish'.
Tip: How to add premium tier?
  1. Go to the 'Tiers' settings in the Ghost Admin.
  2. Click on the 'Connect with Stripe' and configure your Stripe account.
  3. If you have Stripe connected, click '+Add tier' – add your own tier name, description, monthly and yearly prices and list of benefits.
  4. Click 'Save & close'.
  5. Making tiers available to visitors – from the 'Portal settings', you can control which tiers appear on your site.
Tip: How to add description and list of benefits to free tier?
  1. Go to the 'Tiers' settings in the Ghost Admin.
  2. Click 'Free' position and add your tier description and list of benefits.
  3. Finally, click 'Save & close' to activate.
Tip: How to add position to FAQ?

You can add FAQ items in your page content using the HTML card by pasting the code below:

<section>
  <h4>Your title</h4>
  <p>Your description</p>
</section>

The page content on the Membership page only serves to add FAQ items, it is not designed for other types of content.

Members

Subscribe page

The subscribe page is allowing your visitors to sign up to your site in order to access members only content and receive the premium newsletter.

Step-by-Step
  1. Create a new page, add a page title, and open the 'Page settings' panel using the icon in the top right of the screen.
  2. At the bottom of the panel you’ll see a dropdown menu titled 'Template'.
  3. Use the dropdown menu to select the 'Subscribe' template, close the panel.
  4. Finally, click 'Publish'.
Members

Comments

The native comments feature in Ghost allows you to invite members to join the discussion and participate in a community directly on your website. Alternatively, you can opt for the Disqus option.

Ghost comments
  1. To enable native comments, go to the 'Access' settings in the Ghost Admin.
  2. Change the 'Commenting' level to 'All members' or 'Paid-members only'.
  3. Finally, click 'Save' to activate.
Disqus comments
  1. Go to the 'Design & branding' settings in the Ghost Admin.
  2. On the right you’ll see the tab 'Post' – expand this settings list and go to the 'Disqus shortname' position.
  3. Paste your 'Disqus shortname', e.g. copy only your-site from your-site.disqus.com
  4. Finally, click 'Save' to activate.
Advanced

Editing a theme

To edit files, you will need to unzip the theme archive — at this point you will have access to the necessary files indicated in the theme documentation.

Step-by-Step
  1. To edit your theme files, download a copy of the theme. For this purpose go to the 'Design & branding' settings in the Ghost Admin and click 'Change theme' in the bottom right corner.
  2. Use the 'Installed' tab menu in the upper right corner to download your theme, then unzip the theme locally.
  3. Once the theme is unzipped, the files can be edited using an code editor – make the changes indicated in the theme documentation.
You can edit files using applications (code editor) such as Sublime Text, Visual Studio Code or Brackets. Using native text editors like TextEdit on macOS may add formatting may cause the theme to work incorrectly.
  1. When you’ve finished making changes to the theme code, re-zip the theme directory for uploading back to Ghost.
To create a zip archive on a macOS, right-click on the theme folder to view the context menu. Then, click the 'Compress' option. On Windows right-click on the theme folder, select 'Send to', and then select 'Compressed (zipped) folder'.
  1. To upload a theme, go to the 'Design & branding' settings in the Ghost Admin and click 'Change theme' in the bottom right corner.
  2. Then click the 'Upload theme' button in the upper right corner.
  3. Once uploaded, click 'Activate' to activate the theme on your site.
Advanced

Updating a theme

Updates to the theme ensure compatibility with the latest Ghost version, performance improvements and minor bug fixes. So it is important that you use the latest available theme version.

If your theme features custom code, updating it with the latest versions will overwrite all your customizations.

Step-by-Step
  1. Download the latest version of the theme, then unzip the archive locally.
  2. Choose a theme version that is compatible with your Ghost version.
  3. To upload a theme, go to the 'Design & branding' settings in the Ghost Admin and click 'Change theme' in the bottom right corner.
  4. Then click the 'Upload theme' button in the upper right corner.
  5. Once uploaded, click 'Activate' to activate the theme on your site.
Tip: What if you’ve already edited the theme, and want to update it without losing your changes?

That’s a bit trickier to deal with but not impossible, as long as you can remember what the changes were, or more specifically which files you edited. Unfortunately in Ghost when updating a theme you have to re-enter your changes.

For more advanced users, it can be helpful to use a comparing files app like Sublime Merge – that way you can find your changes if you don’t remember them.

Tip: After uploading the theme my settings in Design section were reset, what should I do?

The best solution is to always use the same name e.g. theme-name.zip – that way you will not have to enter your settings again after uploading a theme.

Ghost assigns the settings in the 'Design & branding' section to the name of the uploaded archive. If you upload theme-v1.zip and theme-v2.zip – Ghost will recognize them as two different themes – so the settings will reset.
Advanced

Theme translation

Translations are used both when you want to add a new language and when you want to edit current phrases used in the theme.

Editing current phrases used in the theme (Requires theme editing)
  1. You’ll need to open the theme’s ../locales/en.json file in your code editor.
  2. Change the sentences used in the theme following the pattern:
{
    "Old translate": "New translate",
    ...
}
  1. After making your changes, save your file, compress the theme into a zip format, and upload it to Ghost.
Translation to another language (Requires theme editing)
  1. Inside the ../locales/ folder, add target language file for example es.json for Spanish and pl.json for Polish (a valid language code must be used).
  2. Based on the translation from the en.json file, add translations for your language in your code editor. For example, for Spanish, use in the es.json file:
{
    "Back": "Volver",
    "Newer Posts": "Artículos Siguientes",
    "Older Posts": "Artículos Anteriores",
    ...
}
  1. After making your changes, save your file, compress the theme into a zip format, and upload it to Ghost.
  2. Then, go to the 'Publication Language' settings in the Ghost Admin.
  3. Enter the correct language code into the 'Site language' field.
  4. Finally, click 'Save' to activate.
Advanced

Posts per page

The number of posts provided will depend on the 'post per page' setting which you can configure in your package.json file.

Step-by-Step (Requires theme editing)
  1. You’ll need to open the theme’s package.json file in your code editor and find:
"config": {
    ...
    "posts_per_page": <value>
    ...
}
  1. Change the current value to the expected value.
  2. Save your package.json file in root folder.