Nous souhaitons réaliser dans ce TP un
générateur de galerie d'images en bash.
Le script s'appellera
galerie.sh. Pour sa première version, il faudra le placer dans un dossier contenant des images ; il générera des miniatures à partir de ces dernières et un fichier HTML présentant toutes les images du dossier.
Concrètement, le script devra donc :
- créer une miniature de chaque image du dossier ;
- générer un fichier HTML et y insérer ces miniatures ;
- faire un lien vers les images en taille originale.
Le rendu final
La page web que vous devez arriver à générer devrait ressembler à la figure suivante.
Bien entendu, c'est un exemple
minimal. Il est possible de faire quelque chose de beaucoup plus joli : commencez déjà par faire en sorte que cela fonctionne, vous enjoliverez après. ;)
Le code HTML de base
Pour vous aider (enfin surtout pour ceux d'entre vous qui ne sont pas très à l'aise en HTML

), je vous propose de partir du code (minimaliste) suivant :
Code : Console | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Ma galerie</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
a img { border:0; }
</style>
</head>
<body>
<p>
<a href="alsamixer.png"><img src="miniatures/alsamixer.png" alt="" /></a>
<a href="icone_installer.png"> <img src="miniatures/icone_installer.png" alt="" />
</a>
<a href="installation.png"><img src="miniatures/installation.png" alt="" /></a>
</p>
</body>
</html> |
Vous pourrez réutiliser le début et la fin de ce code source pour chaque fichier HTML de galerie que vous créerez. Par contre, au milieu (les images
<img /> et les liens
<a>), il faudra adapter automatiquement le code en fonction des images présentes dans le dossier.
Vous afficherez des miniatures sur la page et ferez un lien vers leur version agrandie.
Comment générer des miniatures d'images ?
Bonne question. On n'a pas appris à faire cela en ligne de commande, tout simplement parce que ce n'est pas ce que j'appelle une commande « de base » de Linux. Néanmoins, vous devriez avoir le programme
convert, capable d'effectuer de nombreuses opérations sur des images. À vous d'afficher le manuel et de comprendre comment on l'utilise. :)
Bon : je vous aide quand même un peu parce que cette commande a énormément de paramètres. « Miniature » en anglais se dit
« thumbnail ».
Vous apprécierez probablement
l'aide en ligne, plus étoffée et plus lisible peut-être que le man.
Les paramètres
Notre programme devra accepter un paramètre optionnel : le nom du fichier HTML à générer. S'il n'est pas présent, on générera un fichier
galerie.html par défaut.