Readium Logo

EPUB Profile

Editors:

Participate:

Introduction

While EPUB publications can mostly be converted directly to the Readium Web Publication Manifest, a number of collection roles and properties remain specific to EPUB.

This profile is meant to facilitate backward compatibility with EPUB and ensure that these specialized elements are not lost when converting to the Readium Web Publication Manifest.

This profile relies on:

1. Declaring conformance with the EPUB Profile

In order to declare that it conforms to the EPUB Profile, a Readium Web Publication Manifest must include a conformsTo key in its metadata section, with https://readium.org/webpub-manifest/profiles/epub as value.

2. Restrictions on resources in the readingOrder

A Readium Web Publication Manifest that conforms to the EPUB Profile must strictly reference XHTML documents (application/xhtml+xml) in its readingOrder.

While EPUB itself allows SVG and other formats as long as an XHTML fallback is provided, this is not the case for this profile, which requires to reverse the fallback chain.

3. Collection Roles

Role Semantics Compact? Required?
landmarks Identifies the collection that contains a list of points of interest. Yes No
loa Identifies the collection that contains a list of audio resources. Yes No
loi Identifies the collection that contains a list of illustrations. Yes No
lot Identifies the collection that contains a list of tables. Yes No
lov Identifies the collection that contains a list of videos. Yes No
pageList Identifies the collection that contains a list of pages. Yes No

This profile defines additional Link properties:

Key Semantics Type Values
contains Identifies content contained in the linked resource, that cannot be strictly identified using a media type. Array mathml, onix, remote-resources, js, svg or xmp
layout Hint about the nature of the layout for the linked resources. String fixed or reflowable

contains

While the media type is the main way to identify the nature of a resource in a Link Object, in certain cases it isnโ€™t sufficient because:

contains is meant to convey that information in the Properties Object using an array of string values.

{
  "href": "record.xml", "rel": "record", "type": "application/xml",
  "properties": {
    "contains": ["onix"]
  }
}
{
  "href": "chapter1.html", "type": "text/html",
  "properties": {
    "contains": ["svg", "remote-resources"]
  }
}

layout

The layout property defaults to reflowable for text resources and fixed for images or videos.

Using fixed it can also indicate that an HTML document has a viewport with a fixed size.

{
  "href": "page1.html", "type": "text/html",
  "properties": {
    "layout": "fixed"
  }
}