Interactive TODO lists for Recipe Blog?

We’re planning to create a Recipe blog on Ghost. However, there’re several issues with this. Not having the option of custom fields to enter cooking time or total preparation time etc which are required in recipe schema. The default schema is an article only in most themes. I can add custom schema manually via the code injection. But that’s not the desired expectations.

The other feature which we need and I’m creating this topic for is interactive TODO lists for ingredients and various steps. Ghost doesn’t even support Github style TODO lists, discourse also supports these.

[ ] Foo
[*] Foo

Which gives the following result:-
Add Water
Add Milk


Hey @hawk-eye :wave:
For the schema you’re best off making a custom theme with custom meta structure to match the recipe spec from, post meta such as tags and code injection can be used to insert extra schema meta into the head.
As for the todo list, Maybe it should be a regular list that is enriched with JavaScript to add checkboxes. Maybe something like this?

Just some ideas to go off :blush:


Would be interesting to see this develop, i.e. a block for inserting recipe might be of help to maintain the SEO.

If you can introduce this, you might see a tonne of food bloggers move over to Ghost.


As you can see from the example on the page, it’s a very complex piece of JSON structure that needs to be added. However that isn’t to say you couldn’t implement it yourself by replacing the {{ghost_head}} helper with your own custom code. You could even use Ghost headless style and construct the JSON from the data in the page :slight_smile:

1 Like

@DavidDarnes I have been able to follow your suggestions (I have a todo style ingredient and instructions list). To extract the recipe schema from my recipe posts in ghost I have created an Elixir (phoenix framework) app. It assumes a particular structure which I’m using in my website. And I have been able to extract a valid Recipe markup. However, I’m also intending to use isPartOf property and then reference the existing default markup. And to do that I need to add and “@id” attribute in the default article schema markup. How should I modify the default ld+json, schema which is {{ghost_head}} i.e. where should I edit the ghost_head?

You can edit the output of ghost_head. As I said the best way to achieve what you want is by replacing the helper with your own custom JSON code :slight_smile:

Which file should I edit to change the output of ghost_head? What do I need to modify the output of ghost_head? If that works, do you recommend using private tags e.g. #cook_time_20_min ?

You’ll need to replace the use of {{ghost_head}} in the default.hbs template file to construct your own head code