The IIIF Presentation API specifies a standardized way to describe complex digital objects. The resource types and properties of the specification are the building blocks of interoperable representations, for rendering by viewers and other software clients. This cookbook gathers together many examples of these representations (usually IIIF Manifests), in order to:
- provide many more examples than the specification alone can do, for reference and learning;
- encourage publishers to adopt common patterns in modeling classes of complex objects;
- enable client software developers to support these patterns, for consistency of user experience (when desirable);
- demonstrate the applicability of IIIF to a broad range of use cases.
The issues of the Cookbook Recipes repository are used to identify and discuss cookbook recipes, prior to their inclusion in the final cookbook site.
Viewer Support
As part of the work to aid implementation the Cookbook group have developed a Viewer Matrix which shows which recipe is supported by which IIIF viewer.
Presentation API Versions
The cookbook contains recipes primarily for version 3 of the IIIF Presentation API. Where a recipe has been written for only version 4, or for both versions 3 and 4, that is indicated following the recipe title.
Code samples
As well as viewer support, the cookbook provides links to code samples in various development libraries to aid developers who hope to re-create these recipes in Code. You can see a full list of recipes with code samples in the code samples page.
Contributing
Anyone is welcome to submit a recipe idea or work on implementing a recipe. Advice and support can be received from the IIIF Cookbook channel on the IIIF Slack. For detailed information on how to contribute please see the Cookbook process.
The Recipes
Building a manifest in stages, adding more complexity at each stage
- Simplest Manifest - Image (version 3 / version 4)
- Simplest Manifest - Audio (version 3 / version 4)
- Simplest Manifest - Video (version 3 / version 4)
- Simplest Manifest - 3D (version 4)
- Image and Canvas with Differing Dimensions (version 3)
- Support Deep Viewing with Basic Use of a IIIF Image Service (version 3)
- Internationalization and Multi-language Values (version 3)
- Displaying Multiple Values with Language Maps (version 3)
- Embedding HTML in descriptive properties (version 3)
- Metadata on any Resource (version 3)
- Rights statement(s) (version 3)
- Simple Manifest - Book (version 3)
- Book behavior (paging) variations (version 3)
- Addressing a spatial region (version 3)
- Viewing direction and its effect on navigation (version 3)
- Missing Images in a Sequence (version 3)
- Image Thumbnail for Manifest (version 3)
- Implementation discussion: Thumbnails on Canvases (version 3)
- Load a Preview Image Before the Main Content (version 3)
- Audio Presentation with Accompanying Image (version 3)
- Load Manifest Beginning with a Specific Canvas (version 3)
- Begin playback at a specific point - Time-based media (version 3)
- Navigation by Chronology (version 3)
- Locate a Manifest on a Web Map (version 3)
- Locate Multiple Canvases on a Web Map (version 3)
- Acknowledge Content Contributors (version 3)
- Simple Collection (version 3)
- Reuse parts of a Manifest (version 3)
Textual and other supplementary content
- Using Transcripts with A/V Content (version 3)
- Scholarly Annotation of a Poetry Reading (version 3)
- Using Captions and Subtitles with Video Content (version 3)
- Providing Alternative Representations (version 3)
- Transcripts, Captions, and Subtitles - General Considerations (version 3)
Other kinds of annotations
(These are also building blocks for segmentation, below)
- Simplest Annotation (version 3)
- HTML in Annotations (version 3)
- CSS in an Annotation (version 3)
- Simple Annotation - Tagging (version 3)
- Annotation with a Non-Rectangular Polygon (version 3)
- Tagging with an External Resource (version 3)
- Redirecting from one Canvas to another resource (Hotspot linking) (version 3)
- Annotate a specific images or layers (version 3)
- Annotating a specific point of an image (version 3)
- Geographic coordinates (version 3)
- Embedded or Referenced Annotations (version 3)
- Linking external Annotations targeting a Canvas to a Manifest (version 3)
- Using Annotation collections (version 3)
- Image in annotations (version 3)
- Annotating in Multiple Languages (version 3)
- Visible Text Resource on a Canvas (version 3)
Internal structure
- Table of Contents for Book Chapters (version 3)
- Navigation by Newspaper Article (version 3)
- Table of contents for A/V content (version 3)
- Adding Thumbnail Navigation and
no-navto a Video Resource (version 3) - Alternative Page Sequences (version 3)
Higher-level structure
- Multi-volume Work with Individually-bound Volumes (version 3)
- Multiple Volumes in a Single Bound Volume (version 3)
Segmentation and complex resources
- Multiple choice of images in a single view (version 3)
- Foldouts, Flaps, and Maps (version 3)
- Composition from Multiple Images (version 3)
- Rendering Resources Sequentially on a Timeline (version 3)
- Rendering Multiple Media Types on a Time-Based Canvas (version 3)
- Image Rotation Two Ways (version 3)
Linking
Sharing IIIF content
Recipes using Content State API
- Loading a manifest with a viewer using a link (version 3)
- Open a specific region of a canvas in a viewer (version 3)
- Sharing a link for opening two or more Canvases (version 3)
- Drag and drop (version 3)
Technical
- Making IIIF Presentation API v2 and v3 manifests available at the same URL (version 3)
Real-world complex objects (ideally taken from actual collections)
- Multiple Choice of Audio Formats in a Single View (Canvas) (version 3)
- Table of Contents for Multiple A/V files on a Single Canvas (version 3)
- Table of Contents for Multiple A/V files on Multiple Canvases (version 3)
- Basic Newspaper (version 3)
- Using Caption and Subtitle Files in Multiple Languages with Video Content (version 3)
- Locating an Item in Place and Time (version 3)