Présentation
Le projet est né de plusieurs besoins :
- L'impossibilité de lire une base de donnée calibre sur le réseau et donc la volonté d'écrire une application web capable de le faire.
- Récupérer les annotations de ma liseuse, les convertir au format standard des annotations web et les stocker quelque part où je puisse m'y référer facilement.
Conséquences de ce qui précède :
- Les outils sont là pour répondre à ces besoins et quelques autres ; ils ne deviendront sans doute jamais un vrai lecteur d'epub.
- Si d'éventuels utilisateurs proposent des évolutions pertinentes, elles pourront être intégrées. Sinon, le code source est libre.
Enfin, la decouverte du logiciel Foliate, application GTK écrite en javascript, a quelque peu réorienté ce projet. L'application fait en gros ce que j'envisageais de faire ici. Voir aussi la note sur le principe du contribuer ou créer. Il se peut donc que le projet devienne un plugin pour Foliate capable de lire les annotations de ma liseuse.
CybookAnnotations
Présentation
Ma liseuse cybook utilise Adobe Digital Annotations et le framework XPointer pour stocker les annotations. Le but de l'outil CybookAnnotations
est de récupérer ces annotations pour les convertir en un format plus standard, l'epubcfi.
Utilisation
import {CybookAnnotations} from './CybookAnnotations.js';
const annotations = new CybookAnnotations();
annotationsLoader.addEventListener('change', ('e') => {
const file = e.target.files[0];
annotations.load(file).then(() => {
for (const annotation of annotations) {
console.log(annotation);
}
});
});
API
EpubData
Présentation
Un outil extrêmement simple qui permet de lire quelques données pertinentes d'un epub, principalement le fichier content.opf
. Il est principalement utilisé par CybookAnnotations pour convertir les annotations au format epubcfi
.
Dépendances
- zipjs pour dézipper les epubs.
Utilisation
import {EpubData} from './path/to/epub-tools/EpubData.js';
const epubData = new EpubData(document.getElementById('epub-loader'));
epubData.addEventListener('epubdata-loaded', () => {
// do something with data
});
API
EpubReader
Présentation
Un (extrêmement) simple lecteur d'epub basé sur epub.js. Il n'est en aucun cas destiné à devenir un véritable lecteur, les alternatives existent. Il s'agit juste d'un petit utilitaire que j'améliorerai sans doute pour permettre de retrouver et marquer rapidement un extrait de texte.
Dépendances
- epub.js pour lire les fichiers epub.
Utilisation
import {EpubReader} from './EpubReader.js';
const epubReader = new EpubReader();
epubLoader.addEventListener('change', (e) => {
const file = e.target.files[0];
epubReader.open(file).then(() => {
epubReader.renderTocTo(epubToc);
epubReader.renderTo(epubViewer);
}).catch((err) => {
console.log(err);
});
});
API
FoliateIntegration
Présentation
Application GTK qui permet de transférer des annotations prises avec une liseuse Cybook vers le lecteur d'epub Foliate.
A faire...
Utilisation
A écrire...
Historique
- 2019-11-16 (beta)
-
- fix corrections des epubcfis générées
- add EpubReader
- 2019-04-20 (alpha)
-
- add Première version
Ressources et références
- Titre
- EPUB Canonical Fragment Identifiers 1-1
- Auteurs
-
- Peter SOROTOKIN
- Garth CONBOY
- Brady DUGA
- John RIVLIN
- Don BEAVER
- Kevin BALLARD
- Alastair FETTES
- Daniel WECK
- Éditeur
- www.idpf.org
- Date
- Titre
- XPointer Framework
- Auteurs
-
- Paul GROSSO
- Eve MALER
- Jonathan MARSH
- Norman WALSH
- Éditeur
- W3C
- Date
- Titre
- EPUB Annotations – Lost in the Ether
- Auteurs
-
- Matt GARRISH
- Éditeur
- matt.garrish.ca
- Date
- Titre
- Navigating EPUB CFIs
- Auteurs
-
- Matt GARRISH
- Éditeur
- matt.garrish.ca
- Date
- Remarque
- Part 1, Part 2
Licence de diffusion
epub tools Copyright (C) 2019 Rui Nibau
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.