I'm currently using the diary template and would like to make a few adjustments to the structure of the website.
Right now, all the posts (or entries
) appear in the home page.
I'd like to create a kind
metadata for each entry with either blog
or work
as possible values. So that only the entries with kind = work
would appear on the home page, and the entries with kind = blog
would be on a dedicated page called (drumroll...) "Blog".
Note that I don't want to use the tags to achieve this result. Entries in
blog
andwork
could share some common tags. Hence the need for an additionalkind
metadata.
Last but not least, I was wondering if there was an easy way to differentiate the layout of each entry page. For instance, all kind = blog
entries could have a dark background or a "Subscribe to newsletter" button at the bottom. Things like that.
Preliminary note: I broke out one of your questions, How to create a new template view? into a separate page. Hope you can understand
I would recommend using custom metadata to accomplish this. For example, to mark a post as a 'blog' post, I'd do this:
Blog: yes
And to mark a post as a 'work' post, I'd do this:
Work: yes
After you've added this metadata to a few posts, you can then adjust your template. For example, consider the list of entries on your site's homepage, located in entries.html:
{{#entries}}
{{#metadata.blog}}
Shows when `Blog: yes` metadata is set.
{{/metadata.blog}}
{{^metadata.blog}}
Shows when `Blog: yes` metadata is NOT set.
{{/metadata.blog}}
...
{{/entries}}
You can use this strategy to inject work-or-blog-specific CSS, or JavaScript, or HTML. You can also use this to filter your list of posts. Here's an example which will render a list of the titles of your posts with Blog: yes
metadata:
{{#all_entries}}
{{#metadata.blog}}
- {{title}} <br>
{{/metadata.blog}}
{{/all_entries}}
Answered 3 years ago ·
Improve this answer