Créer une liste interactive automatiquement sous Sigil

Parfois, il est nécessaire de constituer une liste de mots ou d’images – par exemple une table des illustrations, de vocabulaire, etc. – et leur affecter un lien hypertexte ; Sigil dispose de tous les outils pour réaliser la tâche automatiquement, ou presque.

Génération de la table des matières en utilisant le balisage HTML

Génération de la table des matières en utilisant le balisage HTML

Dans l’exemple suivant, nous disposons d’un fichier epub contenant une cinquantaine d’images dont on souhaite établir une liste en fin d’ouvrage, et dont le lien nous amènera sur l’illustration dans le corps du livre.

L’utilisation d’expressions régulières (Regex) associée à des fonctionnalités natives sous Sigil (permettant la génération automatique d’une table des matières à partir de balises de type h1, h2…), vont nous permettre de mener cette tâche en quelques clics. Le seul prérequis étant que les images disposent déjà d’une légende.

La table interactive des illustrations a été créée

La table interactive des illustrations a été créée

Les images et leurs légendes ont peu ou prou le code HTML suivant :

<img alt= » » src= »source de l’image.jpg » /> et <span>Légende de mon image</span>

Nous allons donc « encadrer » la légende entre 2 balises h1, avec un rechercher/remplacer Regex <span>(.*)</span> <h1><span>\1</span></h1> (voir capture ci-dessus)

Ainsi, nous serons à même d’utiliser l’outil de génération de table des matières de Sigil en nous basant sur les balises <h1>

Menu : Outils/Table des matières, puis Générer table des matières.  Une fois cette opération effectuée, il faut créer (automatiquement) la table des matières HTML :

Menu : Outils/Table des matières, puis Créer une table des matières HTML. Un fichier Toc.xhtml est généré par Sigil et contient la liste des images, chacune disposant d’un lien hypertexte valide. En effet, Sigil a généré des balises d’ancrage (signets) et les a associées à chaque image, en faisant pointer les liens de la table sous cette forme :

<a href= »../Text/Chapitre.xhtml#sigil_toc_id_1« >légende de l’image</a>

Côté image, le code est devenu <h1 id= »sigil_toc_id_1« ><span>>légende de l’image</span></h1>

Si nous voulons une liste des illustrations dans une page dédiée, il nous suffit à présent de supprimer les balises <h1> tout en préservant les signets afin de conserver la validité des liens hypertexte. Ceci s’accomplit avec une autre Regex :

<h1 id=« sigil_toc_id_1 »><span>>légende de l’image</span></h1> <h1 id=(.*)><span>(.*)</span></h1> est remplacé par <span id=\1>\2</span> devenant <span id= »sigil_toc_id_1« >légende de l’image</span> Il ne reste plus qu’à vérifier que toutes les images ont bien été indexées …

Cette procédure ne fonctionnera convenablement que si toutes les images ont été insérées avec le même code. Le principe, lui, demeure valable.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

un × un =