Skip to content

Commit 6f35371

Browse files
committed
Merge branch 'master' into 0561-text-on-image
2 parents 187dd65 + 5803569 commit 6f35371

File tree

24 files changed

+1014
-30
lines changed

24 files changed

+1014
-30
lines changed

.github/workflows/live.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
# Steps represent a sequence of tasks that will be executed as part of the job
2828
steps:
2929
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
30-
- uses: actions/checkout@v2
30+
- uses: actions/checkout@v4
3131

3232
- name: Setup ruby
3333
uses: ruby/setup-ruby@v1
@@ -50,14 +50,14 @@ jobs:
5050

5151
# Validate
5252
- name: Set up Python 3.x
53-
uses: actions/setup-python@v2
53+
uses: actions/setup-python@v5
5454
with:
5555
# Semantic version range syntax or exact version of a Python version
5656
python-version: '3.x'
5757
# Optional - x64 or x86 architecture, defaults to x64
5858
architecture: 'x64'
5959
- name: Cache pip
60-
uses: actions/cache@v2
60+
uses: actions/cache@v4
6161
with:
6262
# This path is specific to Ubuntu
6363
path: ~/.cache/pip

.github/workflows/preview.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
# Steps represent a sequence of tasks that will be executed as part of the job
2626
steps:
2727
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
28-
- uses: actions/checkout@v2
28+
- uses: actions/checkout@v4
2929
# store branch name in ${BRANCH_NAME}
3030
- name: Export BRANCH_NAME # store branch name in $BRANCH_NAME
3131
run: echo BRANCH_NAME=`git rev-parse --abbrev-ref HEAD` >> $GITHUB_ENV
@@ -48,14 +48,14 @@ jobs:
4848

4949
# Validate
5050
- name: Set up Python 3.x
51-
uses: actions/setup-python@v2
51+
uses: actions/setup-python@v5
5252
with:
5353
# Semantic version range syntax or exact version of a Python version
5454
python-version: '3.x'
5555
# Optional - x64 or x86 architecture, defaults to x64
5656
architecture: 'x64'
5757
- name: Cache pip
58-
uses: actions/cache@v2
58+
uses: actions/cache@v4
5959
with:
6060
# This path is specific to Ubuntu
6161
path: ~/.cache/pip

_includes/links.md

+3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
[0232]: {{ site.cookbook_url | absolute_url }}/recipe/0232-image-thumbnail-canvas/ "Implementation discussion: Thumbnails on Canvases"
5555
[0219]: {{ site.cookbook_url | absolute_url }}/recipe/0219-using-caption-file/ "Using Caption and Subtitle Files with Video Content"
56+
[0229]: {{ site.cookbook_url | absolute_url }}/recipe/0229-behavior-ranges/ "Adding Thumbnail Navigation and `no-nav` to a Video Resource"
5657
[0230]: {{ site.cookbook_url | absolute_url }}/recipe/0230-navdate/ "Navigation by Chronology"
5758
[0231]: {{ site.cookbook_url | absolute_url }}/recipe/0231-transcript-meta-recipe/ "Transcripts, Captions, and Subtitles - General Considerations"
5859

@@ -66,6 +67,7 @@
6667
[0283]: {{ site.cookbook_url | absolute_url }}/recipe/0283-missing-image/ "Missing Images in a Sequence"
6768

6869
[0306]: {{ site.cookbook_url | absolute_url }}/recipe/0306-linking-annotations-to-manifests/ "Linking external Annotations targeting a Canvas to a Manifest"
70+
[0309]: {{ site.cookbook_url | absolute_url }}/recipe/0309-annotation-collection/ "Using Annotation Collections"
6971
[0318]: {{ site.cookbook_url | absolute_url }}/recipe/0318-navPlace-navDate/ "Locating an Item in Place and Time"
7072
[0326]: {{ site.cookbook_url | absolute_url }}/recipe/0326-annotating-image-layer/ "Annotate a specific images or layers"
7173

@@ -78,6 +80,7 @@
7880

7981
[0434]: {{ site.cookbook_url | absolute_url }}/recipe/0434-choice-av/ "Multiple Choice of Audio Formats in a Single View (Canvas)"
8082
[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Rendering Multiple Media Types on a Time-Based Canvas"
83+
[0540]: {{ site.cookbook_url | absolute_url }}/recipe/0540-link-for-opening-multiple-canvases/ "Sharing a link for opening two or more Canvases"
8184

8285
[0561]: {{ site.cookbook_url | absolute_url }}/recipe/0561-text-on-image/ "Visible Text Resource on a Canvas"
8386

index.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ _(leading on to segmentation examples later)_
9292
* [Geographic coordinates][0139]
9393
* [Embedded or Referenced Annotations][0269]
9494
* [Linking external Annotations targeting a Canvas to a Manifest][0306]
95+
* [Using Annotation collections][0309]
9596
* [Image in annotations][0377]
9697
* [Annotating in Multiple Languages][0346]
9798
* [Visible Text Resource on a Canvas][0561]
@@ -101,6 +102,7 @@ _(leading on to segmentation examples later)_
101102
* [Table of Contents for Book Chapters][0024]
102103
* table of contents (ranges) - articles in a newspaper
103104
* [Table of contents for A/V content][0026] (26)
105+
* [Adding Thumbnail Navigation and `no-nav` to a Video Resource][0229]
104106
* Alternative Sequence (via `sequence` Range) (20,22,23)
105107
* `sequence` Range with partial canvases
106108

@@ -138,11 +140,13 @@ _(leading on to segmentation examples later)_
138140
* [Linking to Structured Metadata][0053] (8)
139141

140142

141-
## Sharing IIIF content
143+
## Sharing IIIF content
142144
Recipes using [Content State API](https://iiif.io/api/content-state/1.0/)
143145

144146
* [Loading a manifest with a viewer using a link][0466]
145147
* [Open a specific region of a canvas in a viewer][0485]
148+
* [Sharing a link for opening two or more Canvases][0540]
149+
146150

147151

148152
## Technical

recipe/0002-mvm-audio/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ viewers:
1111
- Ramp
1212
- Aviary
1313
- Theseus
14+
- Glycerine Viewer
1415
topic:
1516
- basic
1617
- AV
@@ -31,7 +32,7 @@ The implementation is identical to the [image example][0001], except that the co
3132

3233
This example shows a Manifest with a single Canvas that lasts for 1985.024 seconds. It has a single audio file (audio-sample.mp4) which is associated with it. The mp4 also has a duration of 1985.024 seconds.
3334

34-
{% include manifest_links.html viewers="UV, Mirador, Clover, Ramp, Aviary, Theseus" manifest="manifest.json" %}
35+
{% include manifest_links.html viewers="UV, Mirador, Clover, Ramp, Aviary, Theseus, Glycerine Viewer" manifest="manifest.json" %}
3536

3637
{% include jsonviewer.html src="manifest.json" %}
3738

recipe/0003-mvm-video/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ viewers:
1111
- Ramp
1212
- Aviary
1313
- Theseus
14+
- Glycerine Viewer
1415
topic:
1516
- basic
1617
- AV
@@ -31,7 +32,7 @@ The implementation is identical to the [image example][0001], except that the co
3132

3233
This example shows a Manifest with a single Canvas that lasts for 572 seconds, or just under 10 minutes. It has a single video file (lunchroom_manners_1024kb.mp4) which is associated with it. The mp4 also has a duration of 572 seconds.
3334

34-
{% include manifest_links.html viewers="UV, Mirador, Clover, Ramp, Aviary, Theseus" manifest="manifest.json" %}
35+
{% include manifest_links.html viewers="UV, Mirador, Clover, Ramp, Aviary, Theseus, Glycerine Viewer" manifest="manifest.json" %}
3536

3637
{% include jsonviewer.html src="manifest.json" %}
3738

recipe/0040-image-rotation-service/manifest-service.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@
4545
]
4646
},
4747
"selector": {
48-
"@context": "http://iiif.io/api/annex/openannotation/context.json",
49-
"type": "iiif:ImageApiSelector",
48+
"type": "ImageApiSelector",
5049
"rotation": "90"
5150
}
5251
},

recipe/0229-behavior-ranges/index.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: Adding Thumbnail Navigation and no-nav to a Video Resource
3+
id: 229
4+
layout: recipe
5+
tags: structure
6+
summary: "How to tell a viewer to create a thumbnail-based visual navigation of a video as well as to exclude a segment of that video from any such navigation."
7+
viewers:
8+
topic:
9+
- structure
10+
---
11+
12+
## Use Case
13+
14+
You would like to provide visitors with the ability to navigate a video visually using thumbnails, excluding portions of the video with no meaningful video or audio.
15+
16+
## Implementation Notes
17+
18+
This recipe shows two ways that `behavior` can serve in a Range to tell clients how navigation should work. (For a fuller discussion of Ranges, see [the Presentation API Range section][prezi3-range].)
19+
20+
One of the present ways to influence navigation behavior is to use the `no-nav` value, telling a client explicitly to not include a portion of the resource in navigation. When this value appears, whatever Canvases or portions of Canvases are used in the `items` part of the Range should not appear in the interface's navigation. The `id` of a Canvas in the `items` section indicates a Canvas from the Manifest's own `items` section or can be such an `id` with a bounding fragment for AV resources.
21+
22+
The other value used in this recipe is the `thumbnail-nav` value, which directs the consuming client to present an alternate, visual navigation structure using the thumbnail(s) with this `behavior` value. The API is quite clear that a traditional table of contents is not the place to put this visual navigation. Something more akin to thumbnail scrubbing is the metaphor to aim for. This can work with AV resources, where thumbnails might be put along a timeline to represent key moments a viewer might want to use in navigation. It can also be used with still images, where thumbnails might be employed usefully to navigate very large images (long, tall, or both dimensions). For those large still images, thumbnail based navigation — independent of the manifest's Canvases' thumbnails — may be arranged in any way that presents a helpful experience.
23+
24+
Note that `behavior` values are inherited. In order to determine the behaviors governing a particular resource, [there are four inheritance rules to observe](https://iiif.io/api/presentation/3.0/#behavior), two of which apply to Ranges:
25+
> + Canvases inherit behaviors from their referencing Manifest, but **DO NOT** inherit behaviors from any referencing Ranges, as there might be several with different behaviors.
26+
> + Ranges inherit behaviors from any referencing Range and referencing Manifest.
27+
28+
The cookbook discusses elsewhere several other uses of the `behavior` property, collected in the Related Recipes section below.
29+
30+
## Restrictions
31+
32+
None known.
33+
34+
## Example
35+
36+
This example uses a video (roughly 55 minutes long) of a live opera performance. The first nine seconds of the video are marked, in the first subsidiary Range, with `no-nav` because they contain no meaningful video and audio. Subsequent peer Ranges divide the video into ten segments, each assigned a `thumbnail` property and a thumbnail image. While in an authentic environment these might be created from moments that are structurally, semantically, pedagogically, or otherwise significant, here they are merely an equal amount of running time except for the final one.
37+
38+
{% include manifest_links.html manifest="manifest.json" %}
39+
40+
{% include jsonviewer.html src="manifest.json" config='data-line="52,57"'%}
41+
42+
## Related Recipes
43+
44+
* [Simple book][0009] gives an example of a basic paging interface
45+
* [Book paging variations][0011] shows selected `behavior` options for a book
46+
* [Viewing direction and its effect on navigation][0010] uses `behavior` for objects with other than left-to-right, top-to-bottom viewing directions
47+
* [Simple Annotation — Tagging][0021] notes, but does not show, how `behavior` in a tagging annotation can be used to hide the annotation
48+
* [Table of contents: Book chapters][0024]
49+
* [Table of contents: One video resource on one canvas][0064]
50+
* [Table of contents: One video resource on multiple canvases][0065]
51+
* [Multi-volume work with individually-bound volumes][0030] uses `behavior` to distinguish a multi-volume Collection from other Collection types
52+
* [Foldouts, flaps, and maps][0035] uses `behavior` to mark a Manifest as paged and a Canvas within the Manifest as not participating in the paging
53+
54+
{% include acronyms.md %}
55+
{% include links.md %}

0 commit comments

Comments
 (0)