Créer un ebook | L’optimisation CSS (1) : méthodologie

Dans une création d’ebook, l’optimisation du code consiste à alléger le fichier CSS pour fluidifier l’affichage de l’EPUB. Cette opération est largement simplifiée si la maquette du livre a été élaborée dans cet objectif, mais cela ne dispense pas de retravailler le fichier CSS généré par InDesign. Cet article est une le premier d’une série de 4 articles consacrés à l’optimisation CSS d’un fichier EPUB.


Lorsqu’on réalise un ebook à partir du logiciel InDesign, la chose la plus déroutante pour un éditeur traditionnel est probablement la manière dont est organisé le fichier CSS, c’est-à-dire le fichier dans lequel sont placées les règles de style.

Création d’ebook depuis InDesign : pourquoi optimiser le fichier CSS ?

Lorsqu’on exporte le fichier au format EPUB, InDesign reproduit, dans le fichier CSS, l’ensemble des règles qui servent à définir les styles (à l’exception des effets appliqués aux objets, comme la lueur ou le biseautage, et de certains attributs de caractères), sous forme de règles de style indépendantes.

On perd ainsi la notion fondamentale de parenté ou de hiérarchie des styles permettant la modification des styles en cascade, qui est au cœur de la logique de composition d’un livre (PAO) et, paradoxalement aussi, de celle du langage CSS (Cascading Style Sheets), au profit d’un ensemble de déclarations qui deviennent inutiles dès lors qu’on restaure cette notion.

Même si elle relève prioritairement d’une stratégie d’automatisation de la mise en pages, la restauration de l’héritage des styles fait donc partie intégrante du travail d’optimisation CSS. Mais elle constitue simplement l’une des étapes de ce processus plus large de simplification du code.

Optimisation CSS : objectifs et stratégie dans le cadre d’une création d’ebook

Sans parler pour autant de « méthodologie », on peut distinguer quatre étapes dans la réécriture du code permettant de réduire de manière conséquente la taille (i.e. le nombre de lignes) du fichier CSS :

  1. Suppression des formatages locaux (voir l’article « Supprimer les formatages locaux dans un ePub : un détail ? ») ;
  2. Suppression des déclarations inutiles, générées à l’exportation ;
  3. Restauration de l’héritage des styles et regroupement des propriétés CSS ;
  4. Utilisation de combinateurs CSS.

Les deux premières étapes ont pour objectif de produire un fichier CSS propre, sans règles de style inutiles ou « polluantes ». Toutefois, la question de la suppression des formatages locaux (CharOverride, ParaOverride, char-style-override, para-style-override) ayant été largement traitée dans une précédente série d’articles, elle ne sera pas envisagée ici.

La troisième vise à restituer la logique de composition du livre papier et à permettre de modifier la mise en page de manière efficace et cohérente, par exemple à modifier les polices ou les couleurs.

La quatrième, enfin, permet de simplifier le fichier CSS en exploitant la richesse de la syntaxe CSS. Un équilibre est alors à trouver pour concilier deux enjeux de l’optimisation CSS :

  • la recherche d’efficacité dans la manière de déclarer les règles CSS ;
  • la préservation de la performance de lecture. En effet, si celle-ci est améliorée lorsqu’on simplifie le fichier CSS, la sophistication du code, i. e. des sélecteurs CSS trop complexes peuvent rendre le fichier EPUB compliqué à interpréter pour le moteur de rendu.

Cette réserve vaut toutefois principalement pour une création de site web, plus complexe qu’une création d’ebook, et où les enjeux de performance sont plus forts. Certains considéreront peut-être d’ailleurs que l’optimisation n’a pas lieu d’être poussée à ce point lorsqu’on cherche à créer un EPUB, et qu’elle constitue plus généralement une perte de temps « tant que l’EPUB s’affiche correctement ».

Le dernier article de cette série consacrée à l’optimisation CSS revient sur ces différentes objections, avec pour objectif : faire le point sur les bonnes pratiques et tenter de définir une méthodologie pérenne pour réaliser des ebooks de qualité. Chacun se fera sa propre opinion.

Bonne lecture !

0 réponses

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.