How to Add a Custom Homepage to the Krabi Ghost Theme
Use these steps to set a static page as the Krabi homepage instead of showing the latest posts.
You can also watch the following video.
➊ Create the home.hbs File
In the root of your Krabi theme, create a new file, and name it home.hbs.
Next, copy the following code to it.
{{!< default}}
{{#page}}
<article class='c-{{ post_class }}'>
{{> post-header }}
<section class='c-content'>
{{ content }}
<br>
</section>
</article>
{{/page}}
Once you finish, zip the theme files, and upload the final zip file to Ghost.
➋ Update and Upload the Routes File
Copy the following code to the theme routes.yaml file and then upload it.
routes:
/:
data: page.home
template: home
collections:
/blog/:
permalink: /blog/{slug}/
template: index
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
That’s all for this step.
To know what’s going on in the above code, we tell Ghost to do the following:
- Use the home template file for the homepage instead of the index file.
/:
data: page.home
template: home
- Using collections, make the posts available at the
/blog/URL and use the index template file.
collections:
/blog/:
permalink: /blog/{slug}/
template: index
Upload the routes.yaml File (⚑ Required)
To upload the file, follow these steps:
- Unzip the krabi.zip theme file.
- In your Ghost admin, click the settings icon ( ) at the bottom of the left-hand side.
- Go to Labs.
- From the Routes section, click the Upload routes YAML button.
- Select and upload the
routes.yamlfile inside the theme folder.
Note: upload routes.yaml after uploading the theme zip
There will already be a default routes.yaml file uploaded to Ghost. You need to upload your theme’s routes.yaml to override the default.
Upload the routes.yaml file separately after uploading your theme zip file.
➌ Create the Homepage
In Ghost admin, create a custom homepage as a Ghost Page.
Make sure that the Page URL setting is home.
Add your content and publish the page.
Now, go to your website homepage, and you should see the homepage becomes the static page you created like the following examples.
Like the regular theme page view, upload a page feature image, and it will be visible first.
Or skip it and the title will come first.
➍ Add the Blog Item to the Navigation
After moving the posts to the /blog/ URL you may be asking: How can I access this URL without typing it in the browser bar?
You can add it as a Navigation item.
You might also want to remove the Latest tab item from the header tags bar. By default, it points to the homepage and describes its latest-posts view. After this change, the homepage is a custom page instead.
404: Page Not Found
In case you get the 404 message on the homepage, do the following:
Go to Settings → Site → Theme section in your Ghost admin.
Then, activate another theme other than Krabi and activate Krabi again.
This should solve the issue.
Change RSS Icon URL
Because we moved the posts to the /blog/ URL, the website RSS feed will now be accessed through /blog/rss/ instead of /rss/. So, we need to change the URL in the sidebar RSS icon. To do this, open the partials/sidebar-social-icons.hbs theme file using a code editor and change the URL for the RSS link from /rss/ to /blog/rss/.
Homepage metadata
Ghost uses your publication settings for the custom homepage’s title, description, and preview image.
- Set the Title & description in Settings → General.
- Set the Publication cover in Settings → Site → Design & branding → Customize → Brand. You can use the same image as the homepage feature image.
Search engines and social platforms can use these values when they show a link to your homepage.
Use the Twitter card and Facebook card fields in Settings → General when you want a platform-specific title, description, or image.
Social platforms cache link previews, so a changed image or description may not appear immediately.