Use: {{#is "post"}}{{/is}}
to detect this context
post
context. The post
context is not set on static pages, which uses the page context instead.
/:slug/
. Ghost also has an option for date-based permalinks, and can support many other formats using routing.
post.hbs
, which is a required template in all Ghost themes.
To provide a custom template for a specific post, use post-:slug.hbs
as the template name, with :slug
matching the post’s slug.
For example, if you have a ‘1.0 Announcement’ post with the url /1-0-announcement/, adding a template called post-1-0-announcement.hbs
will cause that template to be used for the announcement post, instead of post.hbs
.
Another option is to use a “global” custom post template. If you add a template to your theme called custom-gallery.hbs
it will be available in a dropdown in the post settings menu so that it can be selected in any post or page.
These templates exist in a hierarchy. Ghost looks for a template which matches the slug (post-:slug.hbs
) first, then looks for a custom template (custom-gallery.hbs
if selected in the post settings) and finally uses post.hbs
if no slug-specific template exists and no custom template is specified.
post
context provides access to the post object which matches the route. As with all contexts, all of the @site
global data is also available.
When outputting the post, use a block expression ({{#post}}{{/post}}
) to drop into the post scope and access all of the attributes.
false
true
if the post is a page. Defaults to false
{{#post}}{{/post}}
block expression is used to theme the post template. Once inside of the post, you can use any of these useful helpers (and many more) to output your post’s data:
{{title}}
, {{content}}
, {{url}}
, {{author}}
, {{date}}
, {{excerpt}}
, {{img_url}}
, {{post_class}}
, {{tags}}
.
{{url}}
helper rather than referenced as a data attribute.
Always open a context and use {{url}}
explicitly for all resources, especially in posts. For example, use {{#post}}{{url}}{{/post}}
instead of {{post.url}}
.
tags
property and {{tags}}
helper. The first tag in the list is considered more important, and can be accessed using a primary_tag
calculated property. This is a path expression, which points to a whole tag object, rather than a helper function.