Comments (1)
Here are my reasons for planning out a longer-term project and writing a "bookreader" to the IIIF spec using Backbone as the framework and the current BookReader as a guide:
- The IIIF Presentation API 2.0 Spec models content in a flexible way, however, it has an ontology unto itself. While concepts can be "mapped" to each other (canvas = leaf = page) during implementation, it makes more sense to use the vocabulary and models defined in the spec -- for clarity's sake, if for nothing else.
2.The IIIF Presentation API is written with a strong bias towards client-server implementations (Single-page JS frontend with RESTful backend, delivering JSON). The BookReader, on the other hand, simply takes a list of images as its pages with no additional information. For the time being, I'm just developing with local storage since Backbone's Sync API allows one to seamlessly go from local storage to a wide array of REST-based server storage options. As for Node.js, I was thinking of spinning up a sample REST API with Node, Express and MongoDB. I think the fact that MongoDB stores objects as JSON and the IIIF Spec assumes JSON and the app is Javascript will allow at least a few less headaches. - The Backbone framework is, as I said, lightweight. A complete annotated source code is available, which is not the case with the other frameworks, and it's important for me to be able to "dispell the magic" if I need to. It is built to be used as a front-end client to a RESTful API. I think that it's structure would alleviate a lot of the "Frankenstein" effect, and provide a starting point for others to be able to contribute and extend.
- In order for the BookReader to be more than just a "reader", but perhaps an editor and discovery tool as well, I think we need to be able to build it with or without certain dependencies. We need to break code out into modules, and allow for minimal (and lightweight) use as well as more robust use. It should be as easy to implement as a jQuery plugin (at least in its most minimal manifestation).
- Essentially, all of this leads up to taking account of the changes that have been taking place in front-end development since the BookReader was implemented (build tasks, linting, dependency management, unit testing, etc.). The amount of refactoring adds up to rewriting/reinvention anyway, so I think it might be better used as a guide, rather than a vehicle.
That said, I like that the BookReader is pretty much pure JS and jQuery (there are many more things I like about the BookReader). I want to know what's going on at every level of the code. I feel like Backbone is a pretty good compromise.
from bookreader.
Related Issues (16)
- Update to latest jQuery library HOT 3
- Add IIIF API support for latest Image API
- Add enhanced gesture support HOT 5
- Add non-image based pages
- IIIF Presentation 2.0 Manifest authoring
- Add Annotation Authoring/Reading Support
- Optimize display based on for device type/screen size
- Lazy load thumbnail grid view HOT 1
- Allow for bookmarking of pages
- Print optimization
- Download page(s) option
- Add Unit Tests
- Improve Zoom Functionality HOT 1
- Add/View Translations and Transcriptions
- ePub 3.0 Import/Export
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bookreader.