esmero / format_strawberryfield

Set of Display formatters, extractors and utils to make Strawberry field data glow
GNU Lesser General Public License v3.0
6 stars 9 forks source link

Upgrade to Mirador 3.0.0 and implement some new Manifest + Ranged Streaming HUGE files #102

Open DiegoPino opened 3 years ago

DiegoPino commented 3 years ago

Mirador 3.0.0 is out, let's use it

We have been on 3.0.0-RC6 and 7 for a while. Not that https://github.com/ProjectMirador/mirador/releases/tag/v3.0.0 is out and it includes new features it is time to upgrade.

I want to also add more config options to the JS. We are under using it and probably want to also use the Annotation Plugin it provides and inject the annotations the same way we do with annotorious since we already have the CRUD endpoints.

Tasks

  1. Easiest, update the main JS library.
  2. Check all the new features and decide which ones are relevant and we may want to expose as configs
  3. Allow Metadata overrides for the Formatter (See the Pannellum code, we do that there, not documented yet sadly)
  4. Rewrite our IIIF Twig templates to allow Audio/Video and also fetch the annotations if any. This implies 4.1 IIIF V3, Images, PDFs, Video, Audio + Annotations and validate output for each one against IIIF.io 4.1 IIIF V2, Images, PDFs, Video, Audio + Annotations and validate output for each one against IIIF.io

This also solves https://github.com/esmero/archipelago-deployment/issues/75

@giancarlobi @alliomeria

DiegoPino commented 3 years ago

A few things.

Mirador allows 2 Annotation storage options for its Annotation-plugin: Local Storage (In your Browser's local storage) And Annotot: Annotot uses this API implementation, similar to our own Endpoints but not exactly https://github.com/ProjectMirador/mirador-annotations/blob/master/src/AnnototAdapter.js Wonder if we should make our CRUD endpoints Annotot? Compliant? Or, instead of that us the Browser Local Storage and push via JS data into our own notation?

DiegoPino commented 3 years ago

More research: Clearly the Plugin system they have is meant for web pack or node.js and won't work for us out of the box. To allow Annotation (and any other plugin) we need to either compile/pack our own version (not something I want really) or maybe explore modern browser capabilities of dealing with ES JS imports https://www.sitepoint.com/using-es-modules/

Anyone wants to give this a try? If not I'm ok with skipping for now Plugins until we figure this out. But happy to help if we have some Javascript wizards in house.