-
Notifications
You must be signed in to change notification settings - Fork 0
Cookbook Support
Jones edited this page Jun 24, 2026
·
1 revision
This document provides a detailed overview of Mango's compatibility with the official IIIF Cookbook Recipes. The assessment covers the main Presentation API 3.0 elements, media types (Images, deep zoom via OpenSeadragon, Audio, Video, PDF, 3D), ranges, and Annotation formats.
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0001 | Simplest Manifest - Single Image File | JSON-LD | π’ Yes | Fully supported. Renders the image correctly using Mango's default ImageRenderer and OpenSeadragon. |
| 0002 | Simplest Manifest - Audio | JSON-LD | π’ Yes | Fully supported. Audio content is resolved and played using the custom AudioRenderer component. |
| 0003 | Simplest Manifest - Video | JSON-LD | π’ Yes | Fully supported. Video files are played using the custom HTML5 VideoRenderer with full controls. |
| 0005 | Support Deep Viewing with Basic Use of a IIIF Image Service | JSON-LD | π’ Yes | Fully supported. Integrates with standard IIIF Image API services (v2 and v3) via OpenSeadragon for multi-tile deep zoom. |
| 0006 | Internationalization and Multi-language Values (label, summary, metadata, requiredStatement) | JSON-LD | π’ Yes | Fully supported. Handles IIIF language maps, selecting the active locale (English, French, Spanish, Welsh) dynamically. |
| 0009 | Simple Manifest - Book | JSON-LD | π’ Yes | Fully supported. Displays sequential canvas thumbnails and permits navigating through multiple image canvases. |
| 0019 | HTML in Annotations | JSON-LD | π’ Yes | Fully supported. HTML annotations targeting canvases are parsed and rendered correctly as interactive overlays. |
| 0032 | Simple Collection | JSON-LD | π΄ No | Mango resolves single manifests; viewing collections hierarchically is not supported. |
| 0045 | CSS in an Annotation | JSON-LD | π’ Yes | Fully supported. CSS rules and classes embedded in stylesheets are respected when rendering HTML annotations. |
| 0283 | Missing Images in a Sequence | JSON-LD | π’ Yes | Fully supported. Missing or corrupted images in the canvas strip are handled gracefully. |
| 0299 | Addressing a Spatial Region | JSON-LD | π’ Yes | Fully supported. Displays region-specific image fragments via OpenSeadragon clipping coordinates. |
| 0309 | Grouping Annotations into Collections | JSON-LD | π’ Yes | Fully supported. Handles nested AnnotationCollections referencing multiple pages. |
| 0377 | Image in Annotations | JSON-LD | π’ Yes | Fully supported. Renders static or service-based images inside HTML annotations. |
| 0434 | Multiple Choice of Audio Formats in a Single View (Canvas) | JSON-LD | π’ Yes | Fully supported. Resolves multiple audio formats in a single canvas and lists them as alternative choices or falls back gracefully to the primary supported source. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0007 | Embedding HTML in descriptive properties (label, summary, metadata, requiredStatement) | JSON-LD | π’ Yes | Fully supported. Sanitizes and renders basic HTML formatting inside labels, summaries, and metadata lists. |
| 0008 | Rights statement (rights, requiredStatement) | JSON-LD | π’ Yes | Fully supported. Parses the rights field and displays the license details in the metadata panel. |
| 0010 | Viewing direction and Its Effect on Navigation (viewingDirection) | JSON-LD | π‘ Partial | Mango parses viewingDirection (e.g. right-to-left), but manual layout toggling is required; it does not automatically re-orient layouts dynamically. |
| 0011 | Book 'behavior' Variations (continuous, individuals) (behaviorimage) | JSON-LD | π‘ Partial | Supports individual page views, but continuous page layouts are basic. |
| 0013 | Load a Preview Image Before the Main Content (placeholderCanvas) | JSON-LD | π‘ Partial | Parses placeholderCanvas and displays it during loading, but does not implement advanced multi-stage loading or crossfades. |
| 0014 | Audio Presentation with Accompanying Image (accompanyingCanvas) | JSON-LD | π‘ Partial | Plays audio with the accompanying image displayed, but lacks tight synchronization for active sub-regions on the image. |
| 0015 | Begin playback at a specific point - Time-based media (start) | JSON-LD | π’ Yes | Fully supported. Respects the start property and begins playback of time-based media at the specified timestamp. |
| 0029 | Metadata on any Resource (metadata) | JSON-LD | π’ Yes | Fully supported. Correctly parses metadata fields attached directly to canvases or specific files. |
| 0047 | Linking to Web Page of an Object (homepage) | JSON-LD | π’ Yes | Fully supported. Homepage links are parsed and displayed within the metadata panel. |
| 0053 | Linking to Structured Metadata (seeAlso) | JSON-LD | π’ Yes | Fully supported. seeAlso metadata endpoints are resolved and linked in the details panel. |
| 0117 | Image Thumbnail for Manifest (thumbnail) | JSON-LD | π’ Yes | Fully supported. Resolves thumbnails for the manifest and displays them in search/header lists. |
| 0118 | Displaying Multiple Values with Language Maps (label, summary, metadata, requiredStatement) | JSON-LD | π’ Yes | Fully supported. Handles multiple localized entries and lets the user toggle active language displays. |
| 0202 | Load Manifest Beginning with a Specific Canvas (start) | JSON-LD | π’ Yes | Fully supported. Follows the start canvas index/id parameters. |
| 0230 | Navigation by Chronology (navDate) | JSON-LD | π΄ No | Mango does not have a timeline navigator UI for chronologically sorting/browsing canvases. |
| 0234 | Acknowledge Content Contributors (provider) | JSON-LD | π’ Yes | Fully supported. Provider information is displayed under the metadata panel. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0024 | Table of Contents for Book Chapters (structures) | JSON-LD | π’ Yes | Fully supported. Displays book structures/chapters hierarchically in the Table of Contents navigation tree. |
| 0026 | Table of Contents for A/V Content | JSON-LD | π’ Yes | Fully supported. Renders ranges as clickable video/audio chapters that seek to the specific start times during playback. |
| 0027 | Alternative Page Sequences | JSON-LD | π‘ Partial | Multiple sequences are parsed, but the sequence browser interface is simple. |
| 0030 | Multi-volume Work with Individually-bound Volumes | JSON-LD | π΄ No | Collections are currently not supported; only individual manifests can be loaded. |
| 0031 | Multiple Volumes in a Single Bound Volume | JSON-LD | π’ Yes | Fully supported. Handled via chapter/ranges pointing to canvases within the same manifest. |
| 0033 | Multiple Choice of Images in a Single View (Canvas) | JSON-LD | π΄ No | Toggling between alternative image layers (the choice property) is not natively supported inside OpenSeadragon. |
| 0035 | Foldouts, Flaps, and Maps (behavior) | JSON-LD | π‘ Partial | Renders these as separate canvases, but layout presets for overlapping foldouts or flaps are not automated. |
| 0036 | Composition from Multiple Images | JSON-LD | π’ Yes | Fully supported. OpenSeadragon supports tiling and composing multiple source images on a single canvas. |
| 0229 | Adding Thumbnail Navigation and no-nav to a Video Resource | JSON-LD | π’ Yes | Fully supported. Video thumbnail tracks are fully displayed, and controls obey behaviors. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0001 | Simplest Manifest - Single Image File | JSON-LD | π’ Yes | Fully supported. Renders the image correctly using Mango's default ImageRenderer and OpenSeadragon. |
| 0004 | Image and Canvas with Differing Dimensions | JSON-LD | π’ Yes | Fully supported. OpenSeadragon automatically scales and fits image coordinates to differing canvas aspect ratios. |
| 0005 | Support Deep Viewing with Basic Use of a IIIF Image Service | JSON-LD | π’ Yes | Fully supported. Integrates with standard IIIF Image API services (v2 and v3) via OpenSeadragon for multi-tile deep zoom. |
| 0009 | Simple Manifest - Book | JSON-LD | π’ Yes | Fully supported. Displays sequential canvas thumbnails and permits navigating through multiple image canvases. |
| 0010 | Viewing direction and Its Effect on Navigation (viewingDirection) | JSON-LD | π‘ Partial | Mango parses viewingDirection (e.g. right-to-left), but manual layout toggling is required; it does not automatically re-orient layouts dynamically. |
| 0040 | Image Rotation Two Ways | JSON-LD | π’ Yes | Fully supported. Supports 90/180/270 degree rotation services on canvas images. |
| 0202 | Load Manifest Beginning with a Specific Canvas (start) | JSON-LD | π’ Yes | Fully supported. Follows the start canvas index/id parameters. |
| 0283 | Missing Images in a Sequence | JSON-LD | π’ Yes | Fully supported. Missing or corrupted images in the canvas strip are handled gracefully. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0002 | Simplest Manifest - Audio | JSON-LD | π’ Yes | Fully supported. Audio content is resolved and played using the custom AudioRenderer component. |
| 0003 | Simplest Manifest - Video | JSON-LD | π’ Yes | Fully supported. Video files are played using the custom HTML5 VideoRenderer with full controls. |
| 0013 | Load a Preview Image Before the Main Content (placeholderCanvas) | JSON-LD | π‘ Partial | Parses placeholderCanvas and displays it during loading, but does not implement advanced multi-stage loading or crossfades. |
| 0014 | Audio Presentation with Accompanying Image (accompanyingCanvas) | JSON-LD | π‘ Partial | Plays audio with the accompanying image displayed, but lacks tight synchronization for active sub-regions on the image. |
| 0015 | Begin playback at a specific point - Time-based media (start) | JSON-LD | π’ Yes | Fully supported. Respects the start property and begins playback of time-based media at the specified timestamp. |
| 0017 | Providing Access to Transcript Files of A/V Content (rendering) | JSON-LD | π’ Yes | Fully supported. Lists external transcription files or resource rendering formats in the details panel. |
| 0026 | Table of Contents for A/V Content | JSON-LD | π’ Yes | Fully supported. Renders ranges as clickable video/audio chapters that seek to the specific start times during playback. |
| 0064 | Table of Contents for Multiple A/V Files on a Single Canvas (start) | JSON-LD | π‘ Partial | Plays multiple files sequentially, but sub-chapter duration mapping has minor sync issues. |
| 0065 | Table of Contents for Multiple A/V Files on Multiple Canvases | JSON-LD | π’ Yes | Fully supported. Connects structures to separate canvases and handles smooth transition during playback. |
| 0074 | Using Caption and Subtitle Files in Multiple Languages with Video Content | JSON-LD | π’ Yes | Fully supported. Integrates standard WebVTT tracks in different languages directly into the VideoRenderer. |
| 0103 | Scholarly Annotation of a Poetry Reading | JSON-LD | π’ Yes | Fully supported. Annotations with temporal targets are displayed in sync with audio playback. |
| 0219 | Using Caption and Subtitle Files with Video Content | JSON-LD | π’ Yes | Fully supported. Captions/subtitles are supported using standard track elements. |
| 0434 | Multiple Choice of Audio Formats in a Single View (Canvas) | JSON-LD | π’ Yes | Fully supported. Resolves multiple audio formats in a single canvas and lists them as alternative choices or falls back gracefully to the primary supported source. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0135 | Annotating a specific point of an image | JSON-LD | π’ Yes | Fully supported. Renders HTML/SVG point markers precisely on the zoomable image canvas. |
| 0021 | Simple Annotation β Tagging | JSON-LD | π’ Yes | Fully supported. Text annotation tags are resolved and listed inside the annotations sidebar panel. |
| 0022 | Redirecting from one Canvas to another resource (Hotspot linking) | JSON-LD | π΄ No | Hotspot annotation links targeting other canvases or external web resources do not automatically trigger redirection. |
| 0258 | Tagging with an External Resource | JSON-LD | π’ Yes | Fully supported. Resolves and links annotation tags to external RDF or Web pages. |
| 0261 | Annotation with a Non-Rectangular Polygon | JSON-LD | π’ Yes | Fully supported. Renders complex polygon paths over the OpenSeadragon viewport via SVG overlay. |
| 0266 | Simplest Annotation | JSON-LD | π’ Yes | Fully supported. Full canvas comment annotations are listed in the side drawer. |
| 0269 | Embedded or referenced Annotations | JSON-LD | π’ Yes | Fully supported. Resolves embedded items array or external AnnotationPage references. |
| 0306 | Linking external Annotations targeting a Canvas to a Manifest | JSON-LD | π’ Yes | Fully supported. Parses external annotations defined on the canvas level. |
| 0326 | Annotate specific images or layers | JSON-LD | π’ Yes | Fully supported. Allows target matching specific canvas media resources. |
| 0346 | Annotating in Multiple Languages | JSON-LD | π’ Yes | Fully supported. Selects appropriate language variants for annotation bodies. |
| 0489 | Rendering Multiple Media Types on a Time-Based Canvas | JSON-LD | π‘ Partial | Audio and video play, but complex layout grids overlapping on a single timeline have minor presentation issues. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0466 | Sharing a link to open a Manifest in a specific viewer | JSON-LD | π’ Yes | Fully supported. Content state loader supports query parameters for quick manifest sharing. |
| 0485 | Open a specific region of a Canvas in a viewer | JSON-LD | π’ Yes | Fully supported. Deep zoom viewport centers on the canvas region matching the target coordinate. |
| 0540 | Sharing a link for opening two or more Canvases | JSON-LD | π‘ Partial | Opens the target canvases, but custom dual-panel layout setups are basic. |
| 0599 | Drag and Drop | JSON-LD | π’ Yes | Fully supported. Users can drag and drop IIIF manifest URLs/files directly to load them. |
| ID | Recipe Name | Manifest JSON-LD | Support | Notes & Limitations |
|---|---|---|---|---|
| 0139 | Represent Canvas Fragment as a Geographic Area in a Web Mapping Client | JSON-LD | π΄ No | Geographic coordinate parsing and map layer integrations are not supported. |
| 0154 | Locate a Manifest on a Web Map | JSON-LD | π΄ No | Geographic location markers using navPlace are not displayed. |
| 0240 | Locate Multiple Canvases on a Web Map | JSON-LD | π΄ No | Geographic metadata (navPlace on canvases) is not integrated with a web map. |
| 0318 | Locating an Item in Place and Time | JSON-LD | π΄ No | Combined geographic (navPlace) and temporal (navDate) mapping views are not supported. |