Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0007 Canonical Metadata #105

Merged
merged 9 commits into from
Nov 25, 2024
Merged

0007 Canonical Metadata #105

merged 9 commits into from
Nov 25, 2024

Conversation

dubadub
Copy link
Member

@dubadub dubadub commented Nov 5, 2024

Rendered

This proposal introduces a standardised set of metadata keys for Cooklang, improving the way recipes are described and organised. By defining a core set of canonical metadata, we aim to ensure consistent, machine-readable annotations that simplify recipe organisation, sharing, and usability across tools while maintaining Cooklang's minimalist philosophy.

Key Objectives:

  • Provide clear, standardised metadata keys for common recipe attributes (e.g., preparation time, servings, author).
  • Foster interoperability across tools by defining consistent and machine-readable metadata formats.
  • Simplify recipe management and enhance the user experience for developers and consumers alike.

Benefits:

  • Unifies metadata across recipes, addressing common fragmentation issues such as inconsistent time formatting.
  • Enhances automation, enabling tools to scale servings, sort by difficulty, and more.
  • Offers a clear, optional framework for adding useful context to recipes without complicating Cooklang’s simplicity.

Impact:

  • CookCLI: Will include options to filter recipes based on these new metadata keys.
  • Mobile Apps: Will incorporate search and display functionality for the new metadata, enhancing user interaction.

This proposal has been informed by ongoing discussions and feedback from the Cooklang community, and we invite your review and feedback on these enhancements.

Relevant Discussions:

@dubadub dubadub marked this pull request as draft November 5, 2024 09:28
@dubadub dubadub changed the title 0007: Canonical Metadata 0007 Canonical Metadata Nov 5, 2024
@dubadub dubadub marked this pull request as ready for review November 17, 2024 15:16
@jphastings
Copy link

jphastings commented Nov 18, 2024

This is excellent, thank you! Can I suggest that you establish a precedence between the metadata keys which have multiple options? For example, there should be a standard & predictable outcome for a recipe that contains the following two lines:

>> source: The Palomar Cookbook <urn:isbn:9781784720995>
>> author: Layo Paskin

I'd recommend something simple like the earliest conflicting declaration taking precedence.

@Zheoni
Copy link

Zheoni commented Nov 18, 2024

Already said some on discord, but here's all my thoughts/suggestions/questions:

  • Allow to use the structure provided by YAML in the frontmatter
  • I would keep source and author separate. Sometimes I want to link to a recipe and to the social media of the chef or whatever.
  • diet could also take a list. A recipe may fit multiple diets.
  • Lists of values like tags or diet (maybe) could also take a comma separated string.
  • Is the difficulty value restricted to only easy, medium or hard?

@dubadub
Copy link
Member Author

dubadub commented Nov 23, 2024

I updated the proposal:

  • added synonyms for nested YAML structures like source.author
  • keep source and author separate.
  • multiple values for diet and image
  • added introduction and description for recipe intro.
  • allow any values for difficulty, because for search purpose we can extract values user have

@dubadub dubadub merged commit 6e017de into main Nov 25, 2024
@dubadub dubadub deleted the proposal/0007-canonical-metadata branch November 25, 2024 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants