Place this app in nextcloud/apps/
todo
A Nextcloud application for managing your ebook library
License: GNU Affero General Public License v3.0
Maybe:
Build main navigation items from e-books currently in the database.
Loading a book into the reader can take a couple of seconds, mostly because locations are generated every time a new book is opened. There should be some kind of UI element indicating that work is done while users wait for the book to finish loading.
As a long term solution, book locations should definitely be cached, probably in local storage on the client side.
Some table of contents entries fail to navigate to the specified position in the book. Clicking on them produces a No Section Found
error.
Stack trace:
epub.min.js:formatted:5124 Uncaught (in promise) Error: No Section Found
at b._display (epub.min.js:formatted:5124)
at e.a.dequeue (epub.min.js:formatted:2541)
at epub.min.js:formatted:2558
_display @ epub.min.js:formatted:5124
dequeue @ epub.min.js:formatted:2541
(anonymous) @ epub.min.js:formatted:2558
Promise.then (async)
dequeue @ epub.min.js:formatted:2541
(anonymous) @ epub.min.js:formatted:2558
requestAnimationFrame (async)
run @ epub.min.js:formatted:2557
enqueue @ epub.min.js:formatted:2535
display @ epub.min.js:formatted:5106
toSection @ app.js:1
Another problem is that TOC entries are not always highlighted even though they should be. Seems to be linked to url fragments.
An example file is attached.
Embed the table of contents in the app's sidebar.
The code is completely untested right now. That needs to change. Unit testing needs to be set up for PHP and JavaScript independently.
Allow users to change the font size of books. Store the value in a cookie or local storage in order to allow having different values for different devices at the same time.
AJAX response messages are logged to console, but never shown in the UI. Implement a UI element that displays messages to the user and takes care of timeouts and stuff.
The slider at the bottom of the reader view should provide navigation functionality. The view should be updated live, but with a delay for performance reason.
Snapping to section markers might not be optimal, because it makes it harder to precisely hit pages near those markers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.