Skip to content

First pass of a v4 cookbook #598

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

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open

First pass of a v4 cookbook #598

wants to merge 35 commits into from

Conversation

glenrobson
Copy link
Member

@glenrobson glenrobson commented Apr 8, 2025

Steps for adding a v4 recipe for example 0001-mvm-image:

  1. Make a directory in 0001-mvm-image called v4.
  2. Rename the index.md in 0001-mvm-image to recipe.md
  3. copy everything in 0001-mvm-image to v4
  4. Edit the manifest.json and recipe.md in v4 to make it work for v4
  5. Add a index.json similar to the one in this pull requests which will show both recipes.

Notes:

  • Frontmatter is only present in the index.md parent recipe so all topics, viewers and other things need to go in this file rather than the child recipes
  • added a new field to index.md v4-viewers to list v4 supporting recipes
  • Need a more elegant way of linking to v3 only recipes in a v4 recipe.
  • Maybe highlight which versions of a recipe are aviliable when linking to a recipe.
  • Will need to think about validation of v4 and sending v3 files to v3 validator and vise versa.

@glenrobson
Copy link
Member Author

Example v3 and v4 recipe: https://preview.iiif.io/cookbook/v4/recipe/0001-mvm-image/

@glenrobson glenrobson linked an issue Apr 8, 2025 that may be closed by this pull request

This illustrates the mandatory structure and properties of a manifest, with the simplest possible content.

The JSON-LD opens with the `@context` declaration, which identifies the terms used in the document as belonging to the IIIF specification. The `id` property identifies this manifest with the URL at which it is available online. The `type` property must be `Manifest`. The `label` property is mandatory, and the language of its value must be given (or the special value `none`), using a [language map][prezi3-languages]. Here the language of the label is English and its value is "Single Image Example". The manifest's `items` property is a list of canvases. In this example there is only one canvas, with a `height` of 1800 and a `width` of 1200. These units have no dimension: they establish a coordinate space that in this case the single image will fill. The canvas's `id` property is used later as the `target` of the annotation that links to the single image.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Point to version 4 of the spec: [language map][prezi3-languages]

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.

How to handle IIIF v3 and v4 recipes
3 participants