Skip to content

Cookbook Support

Jones edited this page Jun 24, 2026 · 1 revision

Mango IIIF Viewer - IIIF Cookbook Support Matrix

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.

Compatibility Matrix by Category

Basic Recipes

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.

IIIF Properties

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.

Structuring Resources

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.

Image Recipes

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.

Audio/Visual Recipes

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.

Annotation Recipes

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.

Recipes involving Content State

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.

Geo Recipes

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.

Clone this wiki locally