Skip to content
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

Added the concept of meaningful spread #103

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 65 additions & 67 deletions profiles/divina.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,18 +159,79 @@ Reading systems are strongly encouraged to let the user decide if they prefer re
- paginated or scrolled
- with or without spreads (for example, with spreads in landscape mode but without spreads in portrait mode)

Some publications may contain spreads where the user needs to navigate back and forth between both pages of the spread to read through the publication.

In order to convey this information, this profile introduces a new property for Link Objects:

<dl>
<dt>meaningfulSpread</dt>
<dd>Hint that the current resource should be presented in a spread to fully convey the meaning of its content.</dd>
</dl>

*Example 4: Meaningful spread in a manga*

```json
{
"metadata": {
"title": "Kawaii Nekko",
"identifier": "https://example.com/kawaii-nekko",
"conformsTo": "https://readium.org/webpub-manifest/profiles/divina",
"readingProgression": "rtl"
},
"readingOrder": [
{
"href": "cover.jpg",
"type": "image/jpeg",
"properties": {
"page": "center"
}
},
{
"href": "page1.jpg",
"type": "image/jpeg",
"properties": {
"page": "right"
}
},
{
"href": "page2.jpg",
"type": "image/jpeg",
"properties": {
"page": "left"
}
},
{
"href": "page3.jpg",
"type": "image/jpeg",
"properties": {
"page": "right",
"meaningfulSpread": true
}
},
{
"href": "page4.jpg",
"type": "image/jpeg",
"properties": {
"page": "left",
"meaningfulSpread": true
}
}
]
}
```

### 4.2. Scrolled publications

For publications where a single continuous scroll is required to properly display the publication (such as webtoons for example), content creators <strong class="rfc">should</strong> use the [`layout`](../contexts/default/README.md#layout-and-reading-progression) property with the `scrolled` value.

In order to override the default behaviour of displaying all images from the `readingOrder` in a single continuous scroll, this profile also introduces a new property for Link Objects:

<dl>
<dt>break-scroll-before</dt>
<dt>breakScrollBefore</dt>
<dd>Specifies that an item in the reading order should break the current continuous scroll and start a new one.</dd>
</dl>

*Example 4: A scrolled publication with a break in its continuous scroll*
*Example 5: A scrolled publication with a break in its continuous scroll*

```json
{
Expand All @@ -197,7 +258,7 @@ In order to override the default behaviour of displaying all images from the `re
"href": "episode2-image1.jpg",
"type": "image/jpeg",
"properties": {
"break-scroll-before": true
"breakScrollBefore": true
}
},
{
Expand Down Expand Up @@ -226,70 +287,7 @@ As an alternative, the manifest may also be included in:
- an EPUB 3 publication, as specified in the [Readium Packaging Format](./packaging.md#6-hybrid-epub-3--rpf-packages) specification
- or dedicated formats for comics such as CBZ/CBR


## Appendix A. Examples

*Example 5: A manga is a Divina where the reading progression is right-to-left*


```json
{
"metadata": {
"title": "Manga",
"identifier": "https://example.com/manga",
"conformsTo": "https://readium.org/webpub-manifest/profiles/divina",
"readingProgression": "rtl"
},
"readingOrder": [
{
"rel": "cover",
"href": "cover.jpg",
"type": "image/jpeg",
"properties": { "page": "center" }
},
{
"href": "page1.jpg",
"type": "image/jpeg",
"properties": { "page": "right" }
},
{
"href": "page2.jpg",
"type": "image/jpeg",
"properties": { "page": "left" }
}
]
}
```

*Example 6: A continuously scrolled publication (a "webtoon") is a Divina where images are displayed in a single continuous strip of content*


```json
{
"metadata": {
"title": "Webtoon",
"identifier": "https://example.com/webtoon",
"conformsTo": "https://readium.org/webpub-manifest/profiles/divina",
"layout": "scrolled"
},
"readingOrder": [
{
"href": "image1.jpg",
"type": "image/jpeg"
},
{
"href": "image2.jpg",
"type": "image/jpeg"
},
{
"href": "image3.jpg",
"type": "image/jpeg"
}
]
}
```

## Appendix B. JSON Schema
## Appendix A. JSON Schema

The following JSON Schemas for this profile is available under version control:

Expand Down
4 changes: 3 additions & 1 deletion properties.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ The `page` property is meant to provide a hint to reading systems that rely on s

| Key | Semantics | Type | Values | Reference |
| ----- | --------- | -------- | --------- | --------- |
| [`breakScrollBefore`](/profiles/divina.md#42-scrolled-publications) | Specifies that an item in the reading order should break the current continuous scroll and start a new one. | Boolean | Defaults to `false` | [Divina Profile](/profiles/divina.md) |
| [`contains`](/profiles/epub.md#contains) | Indentifies content contained in the linked resource, that cannot be strictly identified using a media type. | Array | `mathml`, `onix`, `remote-resources`, `js`, `svg` or `xmp` | [EPUB Profile](/profiles/epub.md#properties) |
| [`layout`](/profiles/epub.md#layout) | Hint about the nature of the layout for the linked resources. | String | `fixed` or `reflowable` | [EPUB Profile](/profiles/epub.md#properties) |
| [`encrypted`](/modules/encryption.md) | Indicates how a given resource has been encrypted or obfuscated. | [Encryption Object](/modules/encryption.md#encryption-object) | See the definition of the Encryption Object | [Encryption Module](/modules/encryption.md) |
| [`layout`](/profiles/epub.md#layout) | Hint about the nature of the layout for the linked resources. | String | `fixed` or `reflowable` | [EPUB Profile](/profiles/epub.md#properties) |
| [`meaningfulSpread`](/profiles/divina.md#41-fixed-layout) | Hint that the current resource should be presented in a spread to fully convey the meaning of its content. | Boolean | Defaults to `false` | [Divina Profile](/profiles/divina.md) |

## OPDS 2.0

Expand Down
7 changes: 6 additions & 1 deletion schema/extensions/divina/properties.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
"title": "Divina Profile - Link Properties",
"type": "object",
"properties": {
"break-scroll-before": {
"breakScrollBefore": {
"description": "Specifies that an item in the reading order should break the current continuous scroll and start a new one.",
"type": "boolean",
"default": false
},
"meaningfulSpread": {
"description": "Hint that the current resource should be presented in a spread to fully convey the meaning of its content.",
"type": "boolean",
"default": false
}
}
}