Epub Tools

Une série d'outils plus ou moins simples et plus ou moins utiles pour manipuler des epubs dans un navigateur web, notamment la gestion des annotations. En cours d'écriture sans être certain que cela arrive quelque part.

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);
    });
});
Chargement à partir d'un champ input file.

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/>.