Blitz eBook Framework

Un billet rapide pour signaler le travail qui a été entrepris autour du framework Blitz. J’ai pu enfin créer une page web et améliorer la documentation la semaine dernière.

Blitz, c’est quoi ?

Fournir des solutions simples à des problèmes complexes.

Blitz est un cadre de développement (framework) amélioré pour l’EPUB redistribuable (reflowable text). Il est composé :

  1. d’un modèle (template) EPUB 3 ;
  2. de feuilles de styles CSS ;
  3. d’un méta-langage pour mettre en pages ses livres numériques (LESS CSS) ;
  4. de 3 web apps.

Plus de détails (en anglais) sur la page dédiée.

On se trouve donc bien au-delà de la simple librairie, ne serait-ce que par l’existence des web apps.

Le tout est rétrocompatible ePub 2 et Kindle Mobi, et couvre un panel assez large de solutions de lecture. Une documentation simple et concise a été mise en place pour vous mettre le pied à l’étrier.

Les valeurs du projet

Je crois que, dans l’idéal, ce projet ne devrait pas exister. Malheureusement, la production de livres numérique est complexe et requiert des compétences certaines pour contourner les problématiques d’overrides système et de réglages utilisateurs.

Plusieurs issues Github de la spec EPUB 3.1 sont d’ailleurs là pour le rappeler : #671, #672, #685 et #693.

Le web a démontré que chacun a un rôle à jouer et que mettre connaissances et outils à libre disposition pouvait bénéficier à l’écosystème tout entier.

Les progrès se font réellement quand nous en demandons plus, nous devons tirer dans le même sens et promouvoir des livres numériques de meilleure qualité. C’est la raison pour laquelle Blitz est publié sous licence MIT.

Deux ans de recherche et développement

Sortir le framework en version 1, c’est-à-dire une version stable pouvant être utilisé en production, n’a pas été une mince affaire – pour information, je l’utilise moi-même en production.

Il a en effet fallu documenter les overrides des apps de lecture puis mettre en place un labo afin de déterminer jusqu’où il était possible de « pousser le bouchon ».

Au final, cela a également permis la conception d’outils supplémentaires sous la forme de web apps.

Blitz Web Apps

Trois progressive web apps

À mon sens, c’est à ce niveau-là que Blitz dépasse le statut de librairie et devient un véritable cadre (framework).

Ces trois apps web sont à envisager comme des outils :

  1. eBook Tricks propose une collection de morceaux CSS pour améliorer vos EPUB de manière progressive ;
  2. Design Checklist est une checklist interactive permettant de suivre quelques bonnes pratiques de conception (le design, ce n’est pas que l’esthétique, c’est surtout l’expérience de lecture et d’utilisation) ;
  3. Performance Checklist est une checklist interactive permettant d’optimiser au maximum ses fichiers EPUB afin d’atteindre de bonnes performances.

Ces 3 apps peuvent être ajoutées à l’écran d’accueil de votre appareil mobile et fonctionnent hors ligne. En ce qui concerne les checklists, elles disposent d’une sauvegarde automatique – vous pouvez reprendre là où vous avez arrêté votre progression.

Le méta-langage

Cette partie du framework est un système automatisé de conception qui repose sur le pré-processeur LESS CSS. Si besoin, un tutoriel pour Blitz est disponible (en anglais).

L’idée est de pouvoir concevoir des maquettes rapidement, de simplifier le travail (variables de configuration, calcul automatique des tailles de caractères, interlignages et marges, etc.) et d’offrir une sémantique pouvant être implémentée dans des logiciels de création de livres numériques.

On peut considérer ce méta-langage comme une sorte d’API, l’important est ce que vous en faites. N’hésitez donc pas à l’adapter et l’étendre pour vos besoins.

Le futur

L’objectif de cette version 1 était d’obtenir une fondation solide sur laquelle bâtir de manière pérenne.

Malgré tout, le framework est un projet d’envergure qui aura besoin de contributions. Voici par exemple la liste actuelle de choses à faire :

  • améliorer le site et la documentation ;
  • implémenter l’amélioration progressive dans le méta-langage (LESS) ;
  • construire un kit de test pour les solutions de lecture ;
  • concevoir des configurations spécifiques à des genres d’ouvrages (LESS)
  • construire une web app permettant de créer une feuille CSS à partir du méta-langage ;
  • Envisager une web app permettant de faire quelque chose des feuilles CSS par défaut des apps de lecture (une sorte de référence à la CanIUse).

Pour l’anecdote, la version pre-release et un récapitulatif ont pu être envoyés comme feedback à des rédacteurs de la spécification EPUB 3.1, signe qu’ils sont à l’écoute et que ce type de projet peut avoir un réel impact. J’en profite d’ailleurs pour remercier une nouvelle fois Dave Cramer et Romain Deltour.

Enfin, je vous invite à consulter cette présentation, réalisée à l’invitation du PILEn pour réitérer les valeurs du projet et vous montrer vers quoi nous nous dirigeons en matière d’amélioration progressive.