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
For the schema you’re best off making a custom theme with custom meta structure to match the recipe spec from schema.org, 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?
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
@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 Article - Schema.org Type 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?
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 ?