Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mathewjordan/hydroponic
IIIF Collection grow kit for @samvera/bloom-iiif
https://github.com/mathewjordan/hydroponic
iiif-collection iiif-presentation-3
Last synced: 12 days ago
JSON representation
IIIF Collection grow kit for @samvera/bloom-iiif
- Host: GitHub
- URL: https://github.com/mathewjordan/hydroponic
- Owner: mathewjordan
- License: mit
- Created: 2022-05-27T19:02:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-07T15:21:50.000Z (over 2 years ago)
- Last Synced: 2024-10-12T09:35:52.069Z (2 months ago)
- Topics: iiif-collection, iiif-presentation-3
- Language: TypeScript
- Homepage:
- Size: 916 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hydroponic :seedling:
IIIF Collection grow kit for [@samvera/bloom-iiif](https://github.com/samvera-labs/bloom-iiif).
## Usage
### Define new collection structure
```jsx
const instance = {
id: "https://published.uri/for/the/collection.json",
label: { none: ["My Curated Collection"] },
summary: { none: ["A short summary of this collection, optionally."] },
homepage: [
{
id: "https://published.homepage/for/the/collection",
type: "Text",
label: { none: "An optional homepage for this collection." },
format: "text/html",
},
],
}const items = [
{id: "https://manifest.id/uri.json"},
{id: "https://manifest.id/uri.json", href: "https://optional.id/for/this/items/homepage/entry"},
{id: "https://manifest.id/uri.json"},
{id: "https://collection.id/uri.json"},
{id: "https://manifest.id/uri.json"},
{id: "https://manifest.id/uri.json"}
]
```### Grow your Bloom ready IIIF Collection
```jsx
const hydroponic = new Hydroponic();
const collection = hydroponic.grow(instance, items);// `collection` now can be written to file or screen for use.
```## Constructed JSON Shape
**IIIF Presentation API 3.0 Collection**
- @context: **"http://iiif.io/api/presentation/3/context.json"**
- type: **"Collection"**
- id: **string**
- label: **InternationalString**
- summary: **InternationalString** (optional)
- homepage: **ExternalResource[]** (optional)
- items[]:
- type: **"Manifest" | "Collection"**
- id: **string**
- label: **InternationalString**
- summary: **InternationalString** (optional)
- homepage: **ExternalResource[]** (optional)
- thumbnail: **ContentResource[]** (optional)